blob: de90c87db38e69a0a7582b6963781823ff7a7240 [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"));
900 _res = Interactive ( a , p -> arena );
901 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* $"));
947 _res = Expression ( a , p -> arena );
948 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* $"));
1006 _res = FunctionType ( a , b , p -> arena );
1007 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
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03001499 _res = ( asdl_stmt_seq * ) _PyPegen_singleton_seq ( p , CHECK ( stmt_ty , _Py_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
1695 _res = _Py_Expr ( e , EXTRA );
1696 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
1791 _res = _Py_Pass ( EXTRA );
1792 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
1887 _res = _Py_Break ( EXTRA );
1888 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
1920 _res = _Py_Continue ( EXTRA );
1921 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
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03002227 _res = CHECK_VERSION ( stmt_ty , 6 , "Variable annotation syntax is" , _Py_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
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03002269 _res = CHECK_VERSION ( stmt_ty , 6 , "Variable annotations syntax is" , _Py_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
2310 _res = _Py_Assign ( a , b , NEW_TYPE_COMMENT ( p , tc ) , EXTRA );
2311 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
2352 _res = _Py_AugAssign ( a , b -> kind , c , EXTRA );
2353 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
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03002779 _res = _Py_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
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03002841 _res = _Py_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
2900 _res = _Py_Expr ( y , EXTRA );
2901 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
2965 _res = _Py_Assert ( a , b , EXTRA );
2966 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
3029 _res = _Py_Delete ( a , EXTRA );
3030 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
3165 _res = _Py_Import ( a , EXTRA );
3166 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
3238 _res = _Py_ImportFrom ( b -> v . Name . id , c , _PyPegen_seq_count_dots ( a ) , EXTRA );
3239 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
3280 _res = _Py_ImportFrom ( NULL , b , _PyPegen_seq_count_dots ( a ) , EXTRA );
3281 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;
3313 { // '(' import_from_as_names ','? ')'
3314 if (p->error_indicator) {
3315 D(p->level--);
3316 return NULL;
3317 }
3318 D(fprintf(stderr, "%*c> import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' import_from_as_names ','? ')'"));
3319 Token * _literal;
3320 Token * _literal_1;
3321 void *_opt_var;
3322 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +01003323 asdl_alias_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003324 if (
3325 (_literal = _PyPegen_expect_token(p, 7)) // token='('
3326 &&
3327 (a = import_from_as_names_rule(p)) // import_from_as_names
3328 &&
3329 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
3330 &&
3331 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
3332 )
3333 {
3334 D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' import_from_as_names ','? ')'"));
3335 _res = a;
3336 if (_res == NULL && PyErr_Occurred()) {
3337 p->error_indicator = 1;
3338 D(p->level--);
3339 return NULL;
3340 }
3341 goto done;
3342 }
3343 p->mark = _mark;
3344 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3345 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' import_from_as_names ','? ')'"));
3346 }
3347 { // import_from_as_names !','
3348 if (p->error_indicator) {
3349 D(p->level--);
3350 return NULL;
3351 }
3352 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 +01003353 asdl_alias_seq* import_from_as_names_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003354 if (
3355 (import_from_as_names_var = import_from_as_names_rule(p)) // import_from_as_names
3356 &&
3357 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 12) // token=','
3358 )
3359 {
3360 D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_from_as_names !','"));
3361 _res = import_from_as_names_var;
3362 goto done;
3363 }
3364 p->mark = _mark;
3365 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3366 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from_as_names !','"));
3367 }
3368 { // '*'
3369 if (p->error_indicator) {
3370 D(p->level--);
3371 return NULL;
3372 }
3373 D(fprintf(stderr, "%*c> import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*'"));
3374 Token * _literal;
3375 if (
3376 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
3377 )
3378 {
3379 D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*'"));
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03003380 _res = ( asdl_alias_seq * ) _PyPegen_singleton_seq ( p , CHECK ( alias_ty , _PyPegen_alias_for_star ( p ) ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003381 if (_res == NULL && PyErr_Occurred()) {
3382 p->error_indicator = 1;
3383 D(p->level--);
3384 return NULL;
3385 }
3386 goto done;
3387 }
3388 p->mark = _mark;
3389 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3390 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*'"));
3391 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02003392 if (p->call_invalid_rules) { // invalid_import_from_targets
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003393 if (p->error_indicator) {
3394 D(p->level--);
3395 return NULL;
3396 }
3397 D(fprintf(stderr, "%*c> import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_import_from_targets"));
3398 void *invalid_import_from_targets_var;
3399 if (
3400 (invalid_import_from_targets_var = invalid_import_from_targets_rule(p)) // invalid_import_from_targets
3401 )
3402 {
3403 D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_import_from_targets"));
3404 _res = invalid_import_from_targets_var;
3405 goto done;
3406 }
3407 p->mark = _mark;
3408 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3409 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_import_from_targets"));
3410 }
3411 _res = NULL;
3412 done:
3413 D(p->level--);
3414 return _res;
3415}
3416
3417// import_from_as_names: ','.import_from_as_name+
Pablo Galindoa5634c42020-09-16 19:42:00 +01003418static asdl_alias_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003419import_from_as_names_rule(Parser *p)
3420{
3421 D(p->level++);
3422 if (p->error_indicator) {
3423 D(p->level--);
3424 return NULL;
3425 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01003426 asdl_alias_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003427 int _mark = p->mark;
3428 { // ','.import_from_as_name+
3429 if (p->error_indicator) {
3430 D(p->level--);
3431 return NULL;
3432 }
3433 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 +01003434 asdl_alias_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003435 if (
Pablo Galindoa5634c42020-09-16 19:42:00 +01003436 (a = (asdl_alias_seq*)_gather_33_rule(p)) // ','.import_from_as_name+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003437 )
3438 {
3439 D(fprintf(stderr, "%*c+ import_from_as_names[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.import_from_as_name+"));
3440 _res = a;
3441 if (_res == NULL && PyErr_Occurred()) {
3442 p->error_indicator = 1;
3443 D(p->level--);
3444 return NULL;
3445 }
3446 goto done;
3447 }
3448 p->mark = _mark;
3449 D(fprintf(stderr, "%*c%s import_from_as_names[%d-%d]: %s failed!\n", p->level, ' ',
3450 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.import_from_as_name+"));
3451 }
3452 _res = NULL;
3453 done:
3454 D(p->level--);
3455 return _res;
3456}
3457
3458// import_from_as_name: NAME ['as' NAME]
3459static alias_ty
3460import_from_as_name_rule(Parser *p)
3461{
3462 D(p->level++);
3463 if (p->error_indicator) {
3464 D(p->level--);
3465 return NULL;
3466 }
3467 alias_ty _res = NULL;
3468 int _mark = p->mark;
3469 { // NAME ['as' NAME]
3470 if (p->error_indicator) {
3471 D(p->level--);
3472 return NULL;
3473 }
3474 D(fprintf(stderr, "%*c> import_from_as_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME ['as' NAME]"));
3475 expr_ty a;
3476 void *b;
3477 if (
3478 (a = _PyPegen_name_token(p)) // NAME
3479 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003480 (b = _tmp_35_rule(p), 1) // ['as' NAME]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003481 )
3482 {
3483 D(fprintf(stderr, "%*c+ import_from_as_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME ['as' NAME]"));
3484 _res = _Py_alias ( a -> v . Name . id , ( b ) ? ( ( expr_ty ) b ) -> v . Name . id : NULL , p -> arena );
3485 if (_res == NULL && PyErr_Occurred()) {
3486 p->error_indicator = 1;
3487 D(p->level--);
3488 return NULL;
3489 }
3490 goto done;
3491 }
3492 p->mark = _mark;
3493 D(fprintf(stderr, "%*c%s import_from_as_name[%d-%d]: %s failed!\n", p->level, ' ',
3494 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME ['as' NAME]"));
3495 }
3496 _res = NULL;
3497 done:
3498 D(p->level--);
3499 return _res;
3500}
3501
3502// dotted_as_names: ','.dotted_as_name+
Pablo Galindoa5634c42020-09-16 19:42:00 +01003503static asdl_alias_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003504dotted_as_names_rule(Parser *p)
3505{
3506 D(p->level++);
3507 if (p->error_indicator) {
3508 D(p->level--);
3509 return NULL;
3510 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01003511 asdl_alias_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003512 int _mark = p->mark;
3513 { // ','.dotted_as_name+
3514 if (p->error_indicator) {
3515 D(p->level--);
3516 return NULL;
3517 }
3518 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 +01003519 asdl_alias_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003520 if (
Pablo Galindoa5634c42020-09-16 19:42:00 +01003521 (a = (asdl_alias_seq*)_gather_36_rule(p)) // ','.dotted_as_name+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003522 )
3523 {
3524 D(fprintf(stderr, "%*c+ dotted_as_names[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.dotted_as_name+"));
3525 _res = a;
3526 if (_res == NULL && PyErr_Occurred()) {
3527 p->error_indicator = 1;
3528 D(p->level--);
3529 return NULL;
3530 }
3531 goto done;
3532 }
3533 p->mark = _mark;
3534 D(fprintf(stderr, "%*c%s dotted_as_names[%d-%d]: %s failed!\n", p->level, ' ',
3535 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.dotted_as_name+"));
3536 }
3537 _res = NULL;
3538 done:
3539 D(p->level--);
3540 return _res;
3541}
3542
3543// dotted_as_name: dotted_name ['as' NAME]
3544static alias_ty
3545dotted_as_name_rule(Parser *p)
3546{
3547 D(p->level++);
3548 if (p->error_indicator) {
3549 D(p->level--);
3550 return NULL;
3551 }
3552 alias_ty _res = NULL;
3553 int _mark = p->mark;
3554 { // dotted_name ['as' NAME]
3555 if (p->error_indicator) {
3556 D(p->level--);
3557 return NULL;
3558 }
3559 D(fprintf(stderr, "%*c> dotted_as_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dotted_name ['as' NAME]"));
3560 expr_ty a;
3561 void *b;
3562 if (
3563 (a = dotted_name_rule(p)) // dotted_name
3564 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003565 (b = _tmp_38_rule(p), 1) // ['as' NAME]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003566 )
3567 {
3568 D(fprintf(stderr, "%*c+ dotted_as_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dotted_name ['as' NAME]"));
3569 _res = _Py_alias ( a -> v . Name . id , ( b ) ? ( ( expr_ty ) b ) -> v . Name . id : NULL , p -> arena );
3570 if (_res == NULL && PyErr_Occurred()) {
3571 p->error_indicator = 1;
3572 D(p->level--);
3573 return NULL;
3574 }
3575 goto done;
3576 }
3577 p->mark = _mark;
3578 D(fprintf(stderr, "%*c%s dotted_as_name[%d-%d]: %s failed!\n", p->level, ' ',
3579 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dotted_name ['as' NAME]"));
3580 }
3581 _res = NULL;
3582 done:
3583 D(p->level--);
3584 return _res;
3585}
3586
3587// Left-recursive
3588// dotted_name: dotted_name '.' NAME | NAME
3589static expr_ty dotted_name_raw(Parser *);
3590static expr_ty
3591dotted_name_rule(Parser *p)
3592{
3593 D(p->level++);
3594 expr_ty _res = NULL;
3595 if (_PyPegen_is_memoized(p, dotted_name_type, &_res)) {
3596 D(p->level--);
3597 return _res;
3598 }
3599 int _mark = p->mark;
3600 int _resmark = p->mark;
3601 while (1) {
3602 int tmpvar_0 = _PyPegen_update_memo(p, _mark, dotted_name_type, _res);
3603 if (tmpvar_0) {
3604 D(p->level--);
3605 return _res;
3606 }
3607 p->mark = _mark;
3608 void *_raw = dotted_name_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +02003609 if (p->error_indicator)
3610 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003611 if (_raw == NULL || p->mark <= _resmark)
3612 break;
3613 _resmark = p->mark;
3614 _res = _raw;
3615 }
3616 p->mark = _resmark;
3617 D(p->level--);
3618 return _res;
3619}
3620static expr_ty
3621dotted_name_raw(Parser *p)
3622{
3623 D(p->level++);
3624 if (p->error_indicator) {
3625 D(p->level--);
3626 return NULL;
3627 }
3628 expr_ty _res = NULL;
3629 int _mark = p->mark;
3630 { // dotted_name '.' NAME
3631 if (p->error_indicator) {
3632 D(p->level--);
3633 return NULL;
3634 }
3635 D(fprintf(stderr, "%*c> dotted_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dotted_name '.' NAME"));
3636 Token * _literal;
3637 expr_ty a;
3638 expr_ty b;
3639 if (
3640 (a = dotted_name_rule(p)) // dotted_name
3641 &&
3642 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
3643 &&
3644 (b = _PyPegen_name_token(p)) // NAME
3645 )
3646 {
3647 D(fprintf(stderr, "%*c+ dotted_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dotted_name '.' NAME"));
3648 _res = _PyPegen_join_names_with_dot ( p , a , b );
3649 if (_res == NULL && PyErr_Occurred()) {
3650 p->error_indicator = 1;
3651 D(p->level--);
3652 return NULL;
3653 }
3654 goto done;
3655 }
3656 p->mark = _mark;
3657 D(fprintf(stderr, "%*c%s dotted_name[%d-%d]: %s failed!\n", p->level, ' ',
3658 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dotted_name '.' NAME"));
3659 }
3660 { // NAME
3661 if (p->error_indicator) {
3662 D(p->level--);
3663 return NULL;
3664 }
3665 D(fprintf(stderr, "%*c> dotted_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
3666 expr_ty name_var;
3667 if (
3668 (name_var = _PyPegen_name_token(p)) // NAME
3669 )
3670 {
3671 D(fprintf(stderr, "%*c+ dotted_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
3672 _res = name_var;
3673 goto done;
3674 }
3675 p->mark = _mark;
3676 D(fprintf(stderr, "%*c%s dotted_name[%d-%d]: %s failed!\n", p->level, ' ',
3677 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
3678 }
3679 _res = NULL;
3680 done:
3681 D(p->level--);
3682 return _res;
3683}
3684
3685// if_stmt:
Pablo Galindo58fb1562021-02-02 19:54:22 +00003686// | 'if' named_expression &&':' block elif_stmt
3687// | 'if' named_expression &&':' block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003688static stmt_ty
3689if_stmt_rule(Parser *p)
3690{
3691 D(p->level++);
3692 if (p->error_indicator) {
3693 D(p->level--);
3694 return NULL;
3695 }
3696 stmt_ty _res = NULL;
3697 int _mark = p->mark;
3698 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3699 p->error_indicator = 1;
3700 D(p->level--);
3701 return NULL;
3702 }
3703 int _start_lineno = p->tokens[_mark]->lineno;
3704 UNUSED(_start_lineno); // Only used by EXTRA macro
3705 int _start_col_offset = p->tokens[_mark]->col_offset;
3706 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo58fb1562021-02-02 19:54:22 +00003707 { // 'if' named_expression &&':' block elif_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003708 if (p->error_indicator) {
3709 D(p->level--);
3710 return NULL;
3711 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00003712 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 +01003713 Token * _keyword;
3714 Token * _literal;
3715 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003716 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003717 stmt_ty c;
3718 if (
3719 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
3720 &&
3721 (a = named_expression_rule(p)) // named_expression
3722 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00003723 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003724 &&
3725 (b = block_rule(p)) // block
3726 &&
3727 (c = elif_stmt_rule(p)) // elif_stmt
3728 )
3729 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00003730 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 +01003731 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3732 if (_token == NULL) {
3733 D(p->level--);
3734 return NULL;
3735 }
3736 int _end_lineno = _token->end_lineno;
3737 UNUSED(_end_lineno); // Only used by EXTRA macro
3738 int _end_col_offset = _token->end_col_offset;
3739 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03003740 _res = _Py_If ( a , b , CHECK ( asdl_stmt_seq * , _PyPegen_singleton_seq ( p , c ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003741 if (_res == NULL && PyErr_Occurred()) {
3742 p->error_indicator = 1;
3743 D(p->level--);
3744 return NULL;
3745 }
3746 goto done;
3747 }
3748 p->mark = _mark;
3749 D(fprintf(stderr, "%*c%s if_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00003750 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression &&':' block elif_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003751 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00003752 { // 'if' named_expression &&':' block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003753 if (p->error_indicator) {
3754 D(p->level--);
3755 return NULL;
3756 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00003757 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 +01003758 Token * _keyword;
3759 Token * _literal;
3760 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003761 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003762 void *c;
3763 if (
3764 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
3765 &&
3766 (a = named_expression_rule(p)) // named_expression
3767 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00003768 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003769 &&
3770 (b = block_rule(p)) // block
3771 &&
3772 (c = else_block_rule(p), 1) // else_block?
3773 )
3774 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00003775 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 +01003776 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3777 if (_token == NULL) {
3778 D(p->level--);
3779 return NULL;
3780 }
3781 int _end_lineno = _token->end_lineno;
3782 UNUSED(_end_lineno); // Only used by EXTRA macro
3783 int _end_col_offset = _token->end_col_offset;
3784 UNUSED(_end_col_offset); // Only used by EXTRA macro
3785 _res = _Py_If ( a , b , c , EXTRA );
3786 if (_res == NULL && PyErr_Occurred()) {
3787 p->error_indicator = 1;
3788 D(p->level--);
3789 return NULL;
3790 }
3791 goto done;
3792 }
3793 p->mark = _mark;
3794 D(fprintf(stderr, "%*c%s if_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00003795 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression &&':' block else_block?"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003796 }
3797 _res = NULL;
3798 done:
3799 D(p->level--);
3800 return _res;
3801}
3802
3803// elif_stmt:
Pablo Galindo58fb1562021-02-02 19:54:22 +00003804// | 'elif' named_expression &&':' block elif_stmt
3805// | 'elif' named_expression &&':' block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003806static stmt_ty
3807elif_stmt_rule(Parser *p)
3808{
3809 D(p->level++);
3810 if (p->error_indicator) {
3811 D(p->level--);
3812 return NULL;
3813 }
3814 stmt_ty _res = NULL;
3815 int _mark = p->mark;
3816 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3817 p->error_indicator = 1;
3818 D(p->level--);
3819 return NULL;
3820 }
3821 int _start_lineno = p->tokens[_mark]->lineno;
3822 UNUSED(_start_lineno); // Only used by EXTRA macro
3823 int _start_col_offset = p->tokens[_mark]->col_offset;
3824 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo58fb1562021-02-02 19:54:22 +00003825 { // 'elif' named_expression &&':' block elif_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003826 if (p->error_indicator) {
3827 D(p->level--);
3828 return NULL;
3829 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00003830 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 +01003831 Token * _keyword;
3832 Token * _literal;
3833 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003834 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003835 stmt_ty c;
3836 if (
3837 (_keyword = _PyPegen_expect_token(p, 515)) // token='elif'
3838 &&
3839 (a = named_expression_rule(p)) // named_expression
3840 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00003841 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003842 &&
3843 (b = block_rule(p)) // block
3844 &&
3845 (c = elif_stmt_rule(p)) // elif_stmt
3846 )
3847 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00003848 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 +01003849 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3850 if (_token == NULL) {
3851 D(p->level--);
3852 return NULL;
3853 }
3854 int _end_lineno = _token->end_lineno;
3855 UNUSED(_end_lineno); // Only used by EXTRA macro
3856 int _end_col_offset = _token->end_col_offset;
3857 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03003858 _res = _Py_If ( a , b , CHECK ( asdl_stmt_seq * , _PyPegen_singleton_seq ( p , c ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003859 if (_res == NULL && PyErr_Occurred()) {
3860 p->error_indicator = 1;
3861 D(p->level--);
3862 return NULL;
3863 }
3864 goto done;
3865 }
3866 p->mark = _mark;
3867 D(fprintf(stderr, "%*c%s elif_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00003868 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'elif' named_expression &&':' block elif_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003869 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00003870 { // 'elif' named_expression &&':' block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003871 if (p->error_indicator) {
3872 D(p->level--);
3873 return NULL;
3874 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00003875 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 +01003876 Token * _keyword;
3877 Token * _literal;
3878 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003879 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003880 void *c;
3881 if (
3882 (_keyword = _PyPegen_expect_token(p, 515)) // token='elif'
3883 &&
3884 (a = named_expression_rule(p)) // named_expression
3885 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00003886 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003887 &&
3888 (b = block_rule(p)) // block
3889 &&
3890 (c = else_block_rule(p), 1) // else_block?
3891 )
3892 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00003893 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 +01003894 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3895 if (_token == NULL) {
3896 D(p->level--);
3897 return NULL;
3898 }
3899 int _end_lineno = _token->end_lineno;
3900 UNUSED(_end_lineno); // Only used by EXTRA macro
3901 int _end_col_offset = _token->end_col_offset;
3902 UNUSED(_end_col_offset); // Only used by EXTRA macro
3903 _res = _Py_If ( a , b , c , EXTRA );
3904 if (_res == NULL && PyErr_Occurred()) {
3905 p->error_indicator = 1;
3906 D(p->level--);
3907 return NULL;
3908 }
3909 goto done;
3910 }
3911 p->mark = _mark;
3912 D(fprintf(stderr, "%*c%s elif_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00003913 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'elif' named_expression &&':' block else_block?"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003914 }
3915 _res = NULL;
3916 done:
3917 D(p->level--);
3918 return _res;
3919}
3920
Pablo Galindo58fb1562021-02-02 19:54:22 +00003921// else_block: 'else' &&':' block
Pablo Galindoa5634c42020-09-16 19:42:00 +01003922static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003923else_block_rule(Parser *p)
3924{
3925 D(p->level++);
3926 if (p->error_indicator) {
3927 D(p->level--);
3928 return NULL;
3929 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01003930 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003931 int _mark = p->mark;
Pablo Galindo58fb1562021-02-02 19:54:22 +00003932 { // 'else' &&':' block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003933 if (p->error_indicator) {
3934 D(p->level--);
3935 return NULL;
3936 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00003937 D(fprintf(stderr, "%*c> else_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'else' &&':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003938 Token * _keyword;
3939 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003940 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003941 if (
3942 (_keyword = _PyPegen_expect_token(p, 516)) // token='else'
3943 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00003944 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003945 &&
3946 (b = block_rule(p)) // block
3947 )
3948 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00003949 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 +01003950 _res = b;
3951 if (_res == NULL && PyErr_Occurred()) {
3952 p->error_indicator = 1;
3953 D(p->level--);
3954 return NULL;
3955 }
3956 goto done;
3957 }
3958 p->mark = _mark;
3959 D(fprintf(stderr, "%*c%s else_block[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00003960 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'else' &&':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003961 }
3962 _res = NULL;
3963 done:
3964 D(p->level--);
3965 return _res;
3966}
3967
Pablo Galindo58fb1562021-02-02 19:54:22 +00003968// while_stmt: 'while' named_expression &&':' block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003969static stmt_ty
3970while_stmt_rule(Parser *p)
3971{
3972 D(p->level++);
3973 if (p->error_indicator) {
3974 D(p->level--);
3975 return NULL;
3976 }
3977 stmt_ty _res = NULL;
3978 int _mark = p->mark;
3979 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3980 p->error_indicator = 1;
3981 D(p->level--);
3982 return NULL;
3983 }
3984 int _start_lineno = p->tokens[_mark]->lineno;
3985 UNUSED(_start_lineno); // Only used by EXTRA macro
3986 int _start_col_offset = p->tokens[_mark]->col_offset;
3987 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo58fb1562021-02-02 19:54:22 +00003988 { // 'while' named_expression &&':' block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003989 if (p->error_indicator) {
3990 D(p->level--);
3991 return NULL;
3992 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00003993 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 +01003994 Token * _keyword;
3995 Token * _literal;
3996 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003997 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003998 void *c;
3999 if (
4000 (_keyword = _PyPegen_expect_token(p, 512)) // token='while'
4001 &&
4002 (a = named_expression_rule(p)) // named_expression
4003 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00004004 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004005 &&
4006 (b = block_rule(p)) // block
4007 &&
4008 (c = else_block_rule(p), 1) // else_block?
4009 )
4010 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00004011 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 +01004012 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4013 if (_token == NULL) {
4014 D(p->level--);
4015 return NULL;
4016 }
4017 int _end_lineno = _token->end_lineno;
4018 UNUSED(_end_lineno); // Only used by EXTRA macro
4019 int _end_col_offset = _token->end_col_offset;
4020 UNUSED(_end_col_offset); // Only used by EXTRA macro
4021 _res = _Py_While ( a , b , c , EXTRA );
4022 if (_res == NULL && PyErr_Occurred()) {
4023 p->error_indicator = 1;
4024 D(p->level--);
4025 return NULL;
4026 }
4027 goto done;
4028 }
4029 p->mark = _mark;
4030 D(fprintf(stderr, "%*c%s while_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00004031 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'while' named_expression &&':' block else_block?"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004032 }
4033 _res = NULL;
4034 done:
4035 D(p->level--);
4036 return _res;
4037}
4038
4039// for_stmt:
Pablo Galindo58fb1562021-02-02 19:54:22 +00004040// | 'for' star_targets 'in' ~ star_expressions &&':' TYPE_COMMENT? block else_block?
4041// | ASYNC 'for' star_targets 'in' ~ star_expressions &&':' TYPE_COMMENT? block else_block?
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004042// | invalid_for_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004043static stmt_ty
4044for_stmt_rule(Parser *p)
4045{
4046 D(p->level++);
4047 if (p->error_indicator) {
4048 D(p->level--);
4049 return NULL;
4050 }
4051 stmt_ty _res = NULL;
4052 int _mark = p->mark;
4053 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4054 p->error_indicator = 1;
4055 D(p->level--);
4056 return NULL;
4057 }
4058 int _start_lineno = p->tokens[_mark]->lineno;
4059 UNUSED(_start_lineno); // Only used by EXTRA macro
4060 int _start_col_offset = p->tokens[_mark]->col_offset;
4061 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo58fb1562021-02-02 19:54:22 +00004062 { // 'for' star_targets 'in' ~ star_expressions &&':' TYPE_COMMENT? block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004063 if (p->error_indicator) {
4064 D(p->level--);
4065 return NULL;
4066 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004067 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 +03004068 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004069 Token * _keyword;
4070 Token * _keyword_1;
4071 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004072 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004073 void *el;
4074 expr_ty ex;
4075 expr_ty t;
4076 void *tc;
4077 if (
4078 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
4079 &&
4080 (t = star_targets_rule(p)) // star_targets
4081 &&
4082 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
4083 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004084 (_cut_var = 1)
4085 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004086 (ex = star_expressions_rule(p)) // star_expressions
4087 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00004088 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004089 &&
4090 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
4091 &&
4092 (b = block_rule(p)) // block
4093 &&
4094 (el = else_block_rule(p), 1) // else_block?
4095 )
4096 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00004097 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 +01004098 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4099 if (_token == NULL) {
4100 D(p->level--);
4101 return NULL;
4102 }
4103 int _end_lineno = _token->end_lineno;
4104 UNUSED(_end_lineno); // Only used by EXTRA macro
4105 int _end_col_offset = _token->end_col_offset;
4106 UNUSED(_end_col_offset); // Only used by EXTRA macro
4107 _res = _Py_For ( t , ex , b , el , NEW_TYPE_COMMENT ( p , tc ) , EXTRA );
4108 if (_res == NULL && PyErr_Occurred()) {
4109 p->error_indicator = 1;
4110 D(p->level--);
4111 return NULL;
4112 }
4113 goto done;
4114 }
4115 p->mark = _mark;
4116 D(fprintf(stderr, "%*c%s for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00004117 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 +03004118 if (_cut_var) {
4119 D(p->level--);
4120 return NULL;
4121 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004122 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004123 { // ASYNC 'for' star_targets 'in' ~ star_expressions &&':' TYPE_COMMENT? block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004124 if (p->error_indicator) {
4125 D(p->level--);
4126 return NULL;
4127 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004128 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 +03004129 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004130 Token * _keyword;
4131 Token * _keyword_1;
4132 Token * _literal;
4133 Token * async_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004134 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004135 void *el;
4136 expr_ty ex;
4137 expr_ty t;
4138 void *tc;
4139 if (
4140 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
4141 &&
4142 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
4143 &&
4144 (t = star_targets_rule(p)) // star_targets
4145 &&
4146 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
4147 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004148 (_cut_var = 1)
4149 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004150 (ex = star_expressions_rule(p)) // star_expressions
4151 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00004152 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004153 &&
4154 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
4155 &&
4156 (b = block_rule(p)) // block
4157 &&
4158 (el = else_block_rule(p), 1) // else_block?
4159 )
4160 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00004161 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 +01004162 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4163 if (_token == NULL) {
4164 D(p->level--);
4165 return NULL;
4166 }
4167 int _end_lineno = _token->end_lineno;
4168 UNUSED(_end_lineno); // Only used by EXTRA macro
4169 int _end_col_offset = _token->end_col_offset;
4170 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03004171 _res = CHECK_VERSION ( stmt_ty , 5 , "Async for loops are" , _Py_AsyncFor ( t , ex , b , el , NEW_TYPE_COMMENT ( p , tc ) , EXTRA ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004172 if (_res == NULL && PyErr_Occurred()) {
4173 p->error_indicator = 1;
4174 D(p->level--);
4175 return NULL;
4176 }
4177 goto done;
4178 }
4179 p->mark = _mark;
4180 D(fprintf(stderr, "%*c%s for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00004181 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 +03004182 if (_cut_var) {
4183 D(p->level--);
4184 return NULL;
4185 }
4186 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02004187 if (p->call_invalid_rules) { // invalid_for_target
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004188 if (p->error_indicator) {
4189 D(p->level--);
4190 return NULL;
4191 }
4192 D(fprintf(stderr, "%*c> for_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
4193 void *invalid_for_target_var;
4194 if (
4195 (invalid_for_target_var = invalid_for_target_rule(p)) // invalid_for_target
4196 )
4197 {
4198 D(fprintf(stderr, "%*c+ for_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
4199 _res = invalid_for_target_var;
4200 goto done;
4201 }
4202 p->mark = _mark;
4203 D(fprintf(stderr, "%*c%s for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4204 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_for_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004205 }
4206 _res = NULL;
4207 done:
4208 D(p->level--);
4209 return _res;
4210}
4211
4212// with_stmt:
4213// | 'with' '(' ','.with_item+ ','? ')' ':' block
4214// | 'with' ','.with_item+ ':' TYPE_COMMENT? block
4215// | ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block
4216// | ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block
Pablo Galindo58fb1562021-02-02 19:54:22 +00004217// | invalid_with_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004218static stmt_ty
4219with_stmt_rule(Parser *p)
4220{
4221 D(p->level++);
4222 if (p->error_indicator) {
4223 D(p->level--);
4224 return NULL;
4225 }
4226 stmt_ty _res = NULL;
4227 int _mark = p->mark;
4228 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4229 p->error_indicator = 1;
4230 D(p->level--);
4231 return NULL;
4232 }
4233 int _start_lineno = p->tokens[_mark]->lineno;
4234 UNUSED(_start_lineno); // Only used by EXTRA macro
4235 int _start_col_offset = p->tokens[_mark]->col_offset;
4236 UNUSED(_start_col_offset); // Only used by EXTRA macro
4237 { // 'with' '(' ','.with_item+ ','? ')' ':' block
4238 if (p->error_indicator) {
4239 D(p->level--);
4240 return NULL;
4241 }
4242 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'with' '(' ','.with_item+ ','? ')' ':' block"));
4243 Token * _keyword;
4244 Token * _literal;
4245 Token * _literal_1;
4246 Token * _literal_2;
4247 void *_opt_var;
4248 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +01004249 asdl_withitem_seq* a;
4250 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004251 if (
4252 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
4253 &&
4254 (_literal = _PyPegen_expect_token(p, 7)) // token='('
4255 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01004256 (a = (asdl_withitem_seq*)_gather_39_rule(p)) // ','.with_item+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004257 &&
4258 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
4259 &&
4260 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
4261 &&
4262 (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':'
4263 &&
4264 (b = block_rule(p)) // block
4265 )
4266 {
4267 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'with' '(' ','.with_item+ ','? ')' ':' block"));
4268 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4269 if (_token == NULL) {
4270 D(p->level--);
4271 return NULL;
4272 }
4273 int _end_lineno = _token->end_lineno;
4274 UNUSED(_end_lineno); // Only used by EXTRA macro
4275 int _end_col_offset = _token->end_col_offset;
4276 UNUSED(_end_col_offset); // Only used by EXTRA macro
4277 _res = _Py_With ( a , b , NULL , EXTRA );
4278 if (_res == NULL && PyErr_Occurred()) {
4279 p->error_indicator = 1;
4280 D(p->level--);
4281 return NULL;
4282 }
4283 goto done;
4284 }
4285 p->mark = _mark;
4286 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4287 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'with' '(' ','.with_item+ ','? ')' ':' block"));
4288 }
4289 { // 'with' ','.with_item+ ':' TYPE_COMMENT? block
4290 if (p->error_indicator) {
4291 D(p->level--);
4292 return NULL;
4293 }
4294 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4295 Token * _keyword;
4296 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004297 asdl_withitem_seq* a;
4298 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004299 void *tc;
4300 if (
4301 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
4302 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01004303 (a = (asdl_withitem_seq*)_gather_41_rule(p)) // ','.with_item+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004304 &&
4305 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
4306 &&
4307 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
4308 &&
4309 (b = block_rule(p)) // block
4310 )
4311 {
4312 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4313 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4314 if (_token == NULL) {
4315 D(p->level--);
4316 return NULL;
4317 }
4318 int _end_lineno = _token->end_lineno;
4319 UNUSED(_end_lineno); // Only used by EXTRA macro
4320 int _end_col_offset = _token->end_col_offset;
4321 UNUSED(_end_col_offset); // Only used by EXTRA macro
4322 _res = _Py_With ( a , b , NEW_TYPE_COMMENT ( p , tc ) , EXTRA );
4323 if (_res == NULL && PyErr_Occurred()) {
4324 p->error_indicator = 1;
4325 D(p->level--);
4326 return NULL;
4327 }
4328 goto done;
4329 }
4330 p->mark = _mark;
4331 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4332 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4333 }
4334 { // ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block
4335 if (p->error_indicator) {
4336 D(p->level--);
4337 return NULL;
4338 }
4339 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block"));
4340 Token * _keyword;
4341 Token * _literal;
4342 Token * _literal_1;
4343 Token * _literal_2;
4344 void *_opt_var;
4345 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +01004346 asdl_withitem_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004347 Token * async_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004348 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004349 if (
4350 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
4351 &&
4352 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
4353 &&
4354 (_literal = _PyPegen_expect_token(p, 7)) // token='('
4355 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01004356 (a = (asdl_withitem_seq*)_gather_43_rule(p)) // ','.with_item+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004357 &&
4358 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
4359 &&
4360 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
4361 &&
4362 (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':'
4363 &&
4364 (b = block_rule(p)) // block
4365 )
4366 {
4367 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block"));
4368 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4369 if (_token == NULL) {
4370 D(p->level--);
4371 return NULL;
4372 }
4373 int _end_lineno = _token->end_lineno;
4374 UNUSED(_end_lineno); // Only used by EXTRA macro
4375 int _end_col_offset = _token->end_col_offset;
4376 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03004377 _res = CHECK_VERSION ( stmt_ty , 5 , "Async with statements are" , _Py_AsyncWith ( a , b , NULL , EXTRA ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004378 if (_res == NULL && PyErr_Occurred()) {
4379 p->error_indicator = 1;
4380 D(p->level--);
4381 return NULL;
4382 }
4383 goto done;
4384 }
4385 p->mark = _mark;
4386 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4387 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block"));
4388 }
4389 { // ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block
4390 if (p->error_indicator) {
4391 D(p->level--);
4392 return NULL;
4393 }
4394 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4395 Token * _keyword;
4396 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004397 asdl_withitem_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004398 Token * async_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004399 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004400 void *tc;
4401 if (
4402 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
4403 &&
4404 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
4405 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01004406 (a = (asdl_withitem_seq*)_gather_45_rule(p)) // ','.with_item+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004407 &&
4408 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
4409 &&
4410 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
4411 &&
4412 (b = block_rule(p)) // block
4413 )
4414 {
4415 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4416 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4417 if (_token == NULL) {
4418 D(p->level--);
4419 return NULL;
4420 }
4421 int _end_lineno = _token->end_lineno;
4422 UNUSED(_end_lineno); // Only used by EXTRA macro
4423 int _end_col_offset = _token->end_col_offset;
4424 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03004425 _res = CHECK_VERSION ( stmt_ty , 5 , "Async with statements are" , _Py_AsyncWith ( a , b , NEW_TYPE_COMMENT ( p , tc ) , EXTRA ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004426 if (_res == NULL && PyErr_Occurred()) {
4427 p->error_indicator = 1;
4428 D(p->level--);
4429 return NULL;
4430 }
4431 goto done;
4432 }
4433 p->mark = _mark;
4434 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4435 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4436 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004437 if (p->call_invalid_rules) { // invalid_with_stmt
4438 if (p->error_indicator) {
4439 D(p->level--);
4440 return NULL;
4441 }
4442 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_with_stmt"));
4443 void *invalid_with_stmt_var;
4444 if (
4445 (invalid_with_stmt_var = invalid_with_stmt_rule(p)) // invalid_with_stmt
4446 )
4447 {
4448 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_with_stmt"));
4449 _res = invalid_with_stmt_var;
4450 goto done;
4451 }
4452 p->mark = _mark;
4453 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4454 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_with_stmt"));
4455 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004456 _res = NULL;
4457 done:
4458 D(p->level--);
4459 return _res;
4460}
4461
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004462// with_item:
4463// | expression 'as' star_target &(',' | ')' | ':')
4464// | invalid_with_item
4465// | expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004466static withitem_ty
4467with_item_rule(Parser *p)
4468{
4469 D(p->level++);
4470 if (p->error_indicator) {
4471 D(p->level--);
4472 return NULL;
4473 }
4474 withitem_ty _res = NULL;
4475 int _mark = p->mark;
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004476 { // expression 'as' star_target &(',' | ')' | ':')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004477 if (p->error_indicator) {
4478 D(p->level--);
4479 return NULL;
4480 }
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004481 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 +03004482 Token * _keyword;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004483 expr_ty e;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004484 expr_ty t;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004485 if (
4486 (e = expression_rule(p)) // expression
4487 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004488 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
4489 &&
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004490 (t = star_target_rule(p)) // star_target
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004491 &&
4492 _PyPegen_lookahead(1, _tmp_47_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004493 )
4494 {
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004495 D(fprintf(stderr, "%*c+ with_item[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression 'as' star_target &(',' | ')' | ':')"));
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004496 _res = _Py_withitem ( e , t , p -> arena );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004497 if (_res == NULL && PyErr_Occurred()) {
4498 p->error_indicator = 1;
4499 D(p->level--);
4500 return NULL;
4501 }
4502 goto done;
4503 }
4504 p->mark = _mark;
4505 D(fprintf(stderr, "%*c%s with_item[%d-%d]: %s failed!\n", p->level, ' ',
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004506 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression 'as' star_target &(',' | ')' | ':')"));
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004507 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02004508 if (p->call_invalid_rules) { // invalid_with_item
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004509 if (p->error_indicator) {
4510 D(p->level--);
4511 return NULL;
4512 }
4513 D(fprintf(stderr, "%*c> with_item[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_with_item"));
4514 void *invalid_with_item_var;
4515 if (
4516 (invalid_with_item_var = invalid_with_item_rule(p)) // invalid_with_item
4517 )
4518 {
4519 D(fprintf(stderr, "%*c+ with_item[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_with_item"));
4520 _res = invalid_with_item_var;
4521 goto done;
4522 }
4523 p->mark = _mark;
4524 D(fprintf(stderr, "%*c%s with_item[%d-%d]: %s failed!\n", p->level, ' ',
4525 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_with_item"));
4526 }
4527 { // expression
4528 if (p->error_indicator) {
4529 D(p->level--);
4530 return NULL;
4531 }
4532 D(fprintf(stderr, "%*c> with_item[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression"));
4533 expr_ty e;
4534 if (
4535 (e = expression_rule(p)) // expression
4536 )
4537 {
4538 D(fprintf(stderr, "%*c+ with_item[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression"));
4539 _res = _Py_withitem ( e , NULL , p -> arena );
4540 if (_res == NULL && PyErr_Occurred()) {
4541 p->error_indicator = 1;
4542 D(p->level--);
4543 return NULL;
4544 }
4545 goto done;
4546 }
4547 p->mark = _mark;
4548 D(fprintf(stderr, "%*c%s with_item[%d-%d]: %s failed!\n", p->level, ' ',
4549 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004550 }
4551 _res = NULL;
4552 done:
4553 D(p->level--);
4554 return _res;
4555}
4556
4557// try_stmt:
Pablo Galindo58fb1562021-02-02 19:54:22 +00004558// | 'try' &&':' block finally_block
4559// | 'try' &&':' block except_block+ else_block? finally_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004560static stmt_ty
4561try_stmt_rule(Parser *p)
4562{
4563 D(p->level++);
4564 if (p->error_indicator) {
4565 D(p->level--);
4566 return NULL;
4567 }
4568 stmt_ty _res = NULL;
4569 int _mark = p->mark;
4570 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4571 p->error_indicator = 1;
4572 D(p->level--);
4573 return NULL;
4574 }
4575 int _start_lineno = p->tokens[_mark]->lineno;
4576 UNUSED(_start_lineno); // Only used by EXTRA macro
4577 int _start_col_offset = p->tokens[_mark]->col_offset;
4578 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo58fb1562021-02-02 19:54:22 +00004579 { // 'try' &&':' block finally_block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004580 if (p->error_indicator) {
4581 D(p->level--);
4582 return NULL;
4583 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004584 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 +01004585 Token * _keyword;
4586 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004587 asdl_stmt_seq* b;
4588 asdl_stmt_seq* f;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004589 if (
4590 (_keyword = _PyPegen_expect_token(p, 511)) // token='try'
4591 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00004592 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004593 &&
4594 (b = block_rule(p)) // block
4595 &&
4596 (f = finally_block_rule(p)) // finally_block
4597 )
4598 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00004599 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 +01004600 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4601 if (_token == NULL) {
4602 D(p->level--);
4603 return NULL;
4604 }
4605 int _end_lineno = _token->end_lineno;
4606 UNUSED(_end_lineno); // Only used by EXTRA macro
4607 int _end_col_offset = _token->end_col_offset;
4608 UNUSED(_end_col_offset); // Only used by EXTRA macro
4609 _res = _Py_Try ( b , NULL , NULL , f , EXTRA );
4610 if (_res == NULL && PyErr_Occurred()) {
4611 p->error_indicator = 1;
4612 D(p->level--);
4613 return NULL;
4614 }
4615 goto done;
4616 }
4617 p->mark = _mark;
4618 D(fprintf(stderr, "%*c%s try_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00004619 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'try' &&':' block finally_block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004620 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004621 { // 'try' &&':' block except_block+ else_block? finally_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004622 if (p->error_indicator) {
4623 D(p->level--);
4624 return NULL;
4625 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004626 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 +01004627 Token * _keyword;
4628 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004629 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004630 void *el;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004631 asdl_excepthandler_seq* ex;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004632 void *f;
4633 if (
4634 (_keyword = _PyPegen_expect_token(p, 511)) // token='try'
4635 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00004636 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004637 &&
4638 (b = block_rule(p)) // block
4639 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01004640 (ex = (asdl_excepthandler_seq*)_loop1_48_rule(p)) // except_block+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004641 &&
4642 (el = else_block_rule(p), 1) // else_block?
4643 &&
4644 (f = finally_block_rule(p), 1) // finally_block?
4645 )
4646 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00004647 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 +01004648 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4649 if (_token == NULL) {
4650 D(p->level--);
4651 return NULL;
4652 }
4653 int _end_lineno = _token->end_lineno;
4654 UNUSED(_end_lineno); // Only used by EXTRA macro
4655 int _end_col_offset = _token->end_col_offset;
4656 UNUSED(_end_col_offset); // Only used by EXTRA macro
4657 _res = _Py_Try ( b , ex , el , f , EXTRA );
4658 if (_res == NULL && PyErr_Occurred()) {
4659 p->error_indicator = 1;
4660 D(p->level--);
4661 return NULL;
4662 }
4663 goto done;
4664 }
4665 p->mark = _mark;
4666 D(fprintf(stderr, "%*c%s try_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00004667 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'try' &&':' block except_block+ else_block? finally_block?"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004668 }
4669 _res = NULL;
4670 done:
4671 D(p->level--);
4672 return _res;
4673}
4674
Pablo Galindo206cbda2021-02-07 18:42:21 +00004675// except_block:
4676// | 'except' expression ['as' NAME] ':' block
4677// | 'except' ':' block
4678// | invalid_except_block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004679static excepthandler_ty
4680except_block_rule(Parser *p)
4681{
4682 D(p->level++);
4683 if (p->error_indicator) {
4684 D(p->level--);
4685 return NULL;
4686 }
4687 excepthandler_ty _res = NULL;
4688 int _mark = p->mark;
4689 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4690 p->error_indicator = 1;
4691 D(p->level--);
4692 return NULL;
4693 }
4694 int _start_lineno = p->tokens[_mark]->lineno;
4695 UNUSED(_start_lineno); // Only used by EXTRA macro
4696 int _start_col_offset = p->tokens[_mark]->col_offset;
4697 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo206cbda2021-02-07 18:42:21 +00004698 { // 'except' expression ['as' NAME] ':' block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004699 if (p->error_indicator) {
4700 D(p->level--);
4701 return NULL;
4702 }
Pablo Galindo206cbda2021-02-07 18:42:21 +00004703 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 +01004704 Token * _keyword;
4705 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004706 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004707 expr_ty e;
4708 void *t;
4709 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004710 (_keyword = _PyPegen_expect_token(p, 521)) // token='except'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004711 &&
4712 (e = expression_rule(p)) // expression
4713 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004714 (t = _tmp_49_rule(p), 1) // ['as' NAME]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004715 &&
Pablo Galindo206cbda2021-02-07 18:42:21 +00004716 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004717 &&
4718 (b = block_rule(p)) // block
4719 )
4720 {
Pablo Galindo206cbda2021-02-07 18:42:21 +00004721 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 +01004722 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4723 if (_token == NULL) {
4724 D(p->level--);
4725 return NULL;
4726 }
4727 int _end_lineno = _token->end_lineno;
4728 UNUSED(_end_lineno); // Only used by EXTRA macro
4729 int _end_col_offset = _token->end_col_offset;
4730 UNUSED(_end_col_offset); // Only used by EXTRA macro
4731 _res = _Py_ExceptHandler ( e , ( t ) ? ( ( expr_ty ) t ) -> v . Name . id : NULL , b , EXTRA );
4732 if (_res == NULL && PyErr_Occurred()) {
4733 p->error_indicator = 1;
4734 D(p->level--);
4735 return NULL;
4736 }
4737 goto done;
4738 }
4739 p->mark = _mark;
4740 D(fprintf(stderr, "%*c%s except_block[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo206cbda2021-02-07 18:42:21 +00004741 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' expression ['as' NAME] ':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004742 }
Pablo Galindo206cbda2021-02-07 18:42:21 +00004743 { // 'except' ':' block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004744 if (p->error_indicator) {
4745 D(p->level--);
4746 return NULL;
4747 }
Pablo Galindo206cbda2021-02-07 18:42:21 +00004748 D(fprintf(stderr, "%*c> except_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' ':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004749 Token * _keyword;
4750 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004751 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004752 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004753 (_keyword = _PyPegen_expect_token(p, 521)) // token='except'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004754 &&
Pablo Galindo206cbda2021-02-07 18:42:21 +00004755 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004756 &&
4757 (b = block_rule(p)) // block
4758 )
4759 {
Pablo Galindo206cbda2021-02-07 18:42:21 +00004760 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 +01004761 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4762 if (_token == NULL) {
4763 D(p->level--);
4764 return NULL;
4765 }
4766 int _end_lineno = _token->end_lineno;
4767 UNUSED(_end_lineno); // Only used by EXTRA macro
4768 int _end_col_offset = _token->end_col_offset;
4769 UNUSED(_end_col_offset); // Only used by EXTRA macro
4770 _res = _Py_ExceptHandler ( NULL , NULL , b , EXTRA );
4771 if (_res == NULL && PyErr_Occurred()) {
4772 p->error_indicator = 1;
4773 D(p->level--);
4774 return NULL;
4775 }
4776 goto done;
4777 }
4778 p->mark = _mark;
4779 D(fprintf(stderr, "%*c%s except_block[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo206cbda2021-02-07 18:42:21 +00004780 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' ':' block"));
4781 }
4782 if (p->call_invalid_rules) { // invalid_except_block
4783 if (p->error_indicator) {
4784 D(p->level--);
4785 return NULL;
4786 }
4787 D(fprintf(stderr, "%*c> except_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_except_block"));
4788 void *invalid_except_block_var;
4789 if (
4790 (invalid_except_block_var = invalid_except_block_rule(p)) // invalid_except_block
4791 )
4792 {
4793 D(fprintf(stderr, "%*c+ except_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_except_block"));
4794 _res = invalid_except_block_var;
4795 goto done;
4796 }
4797 p->mark = _mark;
4798 D(fprintf(stderr, "%*c%s except_block[%d-%d]: %s failed!\n", p->level, ' ',
4799 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_except_block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004800 }
4801 _res = NULL;
4802 done:
4803 D(p->level--);
4804 return _res;
4805}
4806
4807// finally_block: 'finally' ':' block
Pablo Galindoa5634c42020-09-16 19:42:00 +01004808static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004809finally_block_rule(Parser *p)
4810{
4811 D(p->level++);
4812 if (p->error_indicator) {
4813 D(p->level--);
4814 return NULL;
4815 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01004816 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004817 int _mark = p->mark;
4818 { // 'finally' ':' block
4819 if (p->error_indicator) {
4820 D(p->level--);
4821 return NULL;
4822 }
4823 D(fprintf(stderr, "%*c> finally_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'finally' ':' block"));
4824 Token * _keyword;
4825 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004826 asdl_stmt_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004827 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004828 (_keyword = _PyPegen_expect_token(p, 522)) // token='finally'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004829 &&
4830 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
4831 &&
4832 (a = block_rule(p)) // block
4833 )
4834 {
4835 D(fprintf(stderr, "%*c+ finally_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'finally' ':' block"));
4836 _res = a;
4837 if (_res == NULL && PyErr_Occurred()) {
4838 p->error_indicator = 1;
4839 D(p->level--);
4840 return NULL;
4841 }
4842 goto done;
4843 }
4844 p->mark = _mark;
4845 D(fprintf(stderr, "%*c%s finally_block[%d-%d]: %s failed!\n", p->level, ' ',
4846 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'finally' ':' block"));
4847 }
4848 _res = NULL;
4849 done:
4850 D(p->level--);
4851 return _res;
4852}
4853
Pablo Galindo08fb8ac2021-03-18 01:03:11 +00004854// match_stmt:
4855// | "match" subject_expr ':' NEWLINE INDENT case_block+ DEDENT
4856// | invalid_match_stmt
Brandt Bucher145bf262021-02-26 14:51:55 -08004857static stmt_ty
4858match_stmt_rule(Parser *p)
4859{
4860 D(p->level++);
4861 if (p->error_indicator) {
4862 D(p->level--);
4863 return NULL;
4864 }
4865 stmt_ty _res = NULL;
4866 int _mark = p->mark;
4867 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4868 p->error_indicator = 1;
4869 D(p->level--);
4870 return NULL;
4871 }
4872 int _start_lineno = p->tokens[_mark]->lineno;
4873 UNUSED(_start_lineno); // Only used by EXTRA macro
4874 int _start_col_offset = p->tokens[_mark]->col_offset;
4875 UNUSED(_start_col_offset); // Only used by EXTRA macro
4876 { // "match" subject_expr ':' NEWLINE INDENT case_block+ DEDENT
4877 if (p->error_indicator) {
4878 D(p->level--);
4879 return NULL;
4880 }
4881 D(fprintf(stderr, "%*c> match_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"match\" subject_expr ':' NEWLINE INDENT case_block+ DEDENT"));
4882 expr_ty _keyword;
4883 Token * _literal;
4884 asdl_match_case_seq* cases;
4885 Token * dedent_var;
4886 Token * indent_var;
4887 Token * newline_var;
4888 expr_ty subject;
4889 if (
4890 (_keyword = _PyPegen_expect_soft_keyword(p, "match")) // soft_keyword='"match"'
4891 &&
4892 (subject = subject_expr_rule(p)) // subject_expr
4893 &&
4894 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
4895 &&
4896 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
4897 &&
4898 (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
4899 &&
4900 (cases = (asdl_match_case_seq*)_loop1_50_rule(p)) // case_block+
4901 &&
4902 (dedent_var = _PyPegen_expect_token(p, DEDENT)) // token='DEDENT'
4903 )
4904 {
4905 D(fprintf(stderr, "%*c+ match_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"match\" subject_expr ':' NEWLINE INDENT case_block+ DEDENT"));
4906 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4907 if (_token == NULL) {
4908 D(p->level--);
4909 return NULL;
4910 }
4911 int _end_lineno = _token->end_lineno;
4912 UNUSED(_end_lineno); // Only used by EXTRA macro
4913 int _end_col_offset = _token->end_col_offset;
4914 UNUSED(_end_col_offset); // Only used by EXTRA macro
4915 _res = CHECK_VERSION ( stmt_ty , 10 , "Pattern matching is" , _Py_Match ( subject , cases , EXTRA ) );
4916 if (_res == NULL && PyErr_Occurred()) {
4917 p->error_indicator = 1;
4918 D(p->level--);
4919 return NULL;
4920 }
4921 goto done;
4922 }
4923 p->mark = _mark;
4924 D(fprintf(stderr, "%*c%s match_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4925 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"match\" subject_expr ':' NEWLINE INDENT case_block+ DEDENT"));
4926 }
Pablo Galindo08fb8ac2021-03-18 01:03:11 +00004927 if (p->call_invalid_rules) { // invalid_match_stmt
4928 if (p->error_indicator) {
4929 D(p->level--);
4930 return NULL;
4931 }
4932 D(fprintf(stderr, "%*c> match_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_match_stmt"));
4933 void *invalid_match_stmt_var;
4934 if (
4935 (invalid_match_stmt_var = invalid_match_stmt_rule(p)) // invalid_match_stmt
4936 )
4937 {
4938 D(fprintf(stderr, "%*c+ match_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_match_stmt"));
4939 _res = invalid_match_stmt_var;
4940 goto done;
4941 }
4942 p->mark = _mark;
4943 D(fprintf(stderr, "%*c%s match_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4944 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_match_stmt"));
4945 }
Brandt Bucher145bf262021-02-26 14:51:55 -08004946 _res = NULL;
4947 done:
4948 D(p->level--);
4949 return _res;
4950}
4951
4952// subject_expr: star_named_expression ',' star_named_expressions? | named_expression
4953static expr_ty
4954subject_expr_rule(Parser *p)
4955{
4956 D(p->level++);
4957 if (p->error_indicator) {
4958 D(p->level--);
4959 return NULL;
4960 }
4961 expr_ty _res = NULL;
4962 int _mark = p->mark;
4963 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4964 p->error_indicator = 1;
4965 D(p->level--);
4966 return NULL;
4967 }
4968 int _start_lineno = p->tokens[_mark]->lineno;
4969 UNUSED(_start_lineno); // Only used by EXTRA macro
4970 int _start_col_offset = p->tokens[_mark]->col_offset;
4971 UNUSED(_start_col_offset); // Only used by EXTRA macro
4972 { // star_named_expression ',' star_named_expressions?
4973 if (p->error_indicator) {
4974 D(p->level--);
4975 return NULL;
4976 }
4977 D(fprintf(stderr, "%*c> subject_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_named_expression ',' star_named_expressions?"));
4978 Token * _literal;
4979 expr_ty value;
4980 void *values;
4981 if (
4982 (value = star_named_expression_rule(p)) // star_named_expression
4983 &&
4984 (_literal = _PyPegen_expect_token(p, 12)) // token=','
4985 &&
4986 (values = star_named_expressions_rule(p), 1) // star_named_expressions?
4987 )
4988 {
4989 D(fprintf(stderr, "%*c+ subject_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_named_expression ',' star_named_expressions?"));
4990 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4991 if (_token == NULL) {
4992 D(p->level--);
4993 return NULL;
4994 }
4995 int _end_lineno = _token->end_lineno;
4996 UNUSED(_end_lineno); // Only used by EXTRA macro
4997 int _end_col_offset = _token->end_col_offset;
4998 UNUSED(_end_col_offset); // Only used by EXTRA macro
4999 _res = _Py_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , value , values ) ) , Load , EXTRA );
5000 if (_res == NULL && PyErr_Occurred()) {
5001 p->error_indicator = 1;
5002 D(p->level--);
5003 return NULL;
5004 }
5005 goto done;
5006 }
5007 p->mark = _mark;
5008 D(fprintf(stderr, "%*c%s subject_expr[%d-%d]: %s failed!\n", p->level, ' ',
5009 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression ',' star_named_expressions?"));
5010 }
5011 { // named_expression
5012 if (p->error_indicator) {
5013 D(p->level--);
5014 return NULL;
5015 }
5016 D(fprintf(stderr, "%*c> subject_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression"));
5017 expr_ty named_expression_var;
5018 if (
5019 (named_expression_var = named_expression_rule(p)) // named_expression
5020 )
5021 {
5022 D(fprintf(stderr, "%*c+ subject_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "named_expression"));
5023 _res = named_expression_var;
5024 goto done;
5025 }
5026 p->mark = _mark;
5027 D(fprintf(stderr, "%*c%s subject_expr[%d-%d]: %s failed!\n", p->level, ' ',
5028 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression"));
5029 }
5030 _res = NULL;
5031 done:
5032 D(p->level--);
5033 return _res;
5034}
5035
Pablo Galindo08fb8ac2021-03-18 01:03:11 +00005036// case_block: "case" patterns guard? ':' block | invalid_case_block
Brandt Bucher145bf262021-02-26 14:51:55 -08005037static match_case_ty
5038case_block_rule(Parser *p)
5039{
5040 D(p->level++);
5041 if (p->error_indicator) {
5042 D(p->level--);
5043 return NULL;
5044 }
5045 match_case_ty _res = NULL;
5046 int _mark = p->mark;
5047 { // "case" patterns guard? ':' block
5048 if (p->error_indicator) {
5049 D(p->level--);
5050 return NULL;
5051 }
5052 D(fprintf(stderr, "%*c> case_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"case\" patterns guard? ':' block"));
5053 expr_ty _keyword;
5054 Token * _literal;
5055 asdl_stmt_seq* body;
5056 void *guard;
5057 expr_ty pattern;
5058 if (
5059 (_keyword = _PyPegen_expect_soft_keyword(p, "case")) // soft_keyword='"case"'
5060 &&
5061 (pattern = patterns_rule(p)) // patterns
5062 &&
5063 (guard = guard_rule(p), 1) // guard?
5064 &&
5065 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
5066 &&
5067 (body = block_rule(p)) // block
5068 )
5069 {
5070 D(fprintf(stderr, "%*c+ case_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"case\" patterns guard? ':' block"));
5071 _res = _Py_match_case ( pattern , guard , body , p -> arena );
5072 if (_res == NULL && PyErr_Occurred()) {
5073 p->error_indicator = 1;
5074 D(p->level--);
5075 return NULL;
5076 }
5077 goto done;
5078 }
5079 p->mark = _mark;
5080 D(fprintf(stderr, "%*c%s case_block[%d-%d]: %s failed!\n", p->level, ' ',
5081 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"case\" patterns guard? ':' block"));
5082 }
Pablo Galindo08fb8ac2021-03-18 01:03:11 +00005083 if (p->call_invalid_rules) { // invalid_case_block
5084 if (p->error_indicator) {
5085 D(p->level--);
5086 return NULL;
5087 }
5088 D(fprintf(stderr, "%*c> case_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_case_block"));
5089 void *invalid_case_block_var;
5090 if (
5091 (invalid_case_block_var = invalid_case_block_rule(p)) // invalid_case_block
5092 )
5093 {
5094 D(fprintf(stderr, "%*c+ case_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_case_block"));
5095 _res = invalid_case_block_var;
5096 goto done;
5097 }
5098 p->mark = _mark;
5099 D(fprintf(stderr, "%*c%s case_block[%d-%d]: %s failed!\n", p->level, ' ',
5100 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_case_block"));
5101 }
Brandt Bucher145bf262021-02-26 14:51:55 -08005102 _res = NULL;
5103 done:
5104 D(p->level--);
5105 return _res;
5106}
5107
5108// guard: 'if' named_expression
5109static expr_ty
5110guard_rule(Parser *p)
5111{
5112 D(p->level++);
5113 if (p->error_indicator) {
5114 D(p->level--);
5115 return NULL;
5116 }
5117 expr_ty _res = NULL;
5118 int _mark = p->mark;
5119 { // 'if' named_expression
5120 if (p->error_indicator) {
5121 D(p->level--);
5122 return NULL;
5123 }
5124 D(fprintf(stderr, "%*c> guard[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' named_expression"));
5125 Token * _keyword;
5126 expr_ty guard;
5127 if (
5128 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
5129 &&
5130 (guard = named_expression_rule(p)) // named_expression
5131 )
5132 {
5133 D(fprintf(stderr, "%*c+ guard[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' named_expression"));
5134 _res = guard;
5135 if (_res == NULL && PyErr_Occurred()) {
5136 p->error_indicator = 1;
5137 D(p->level--);
5138 return NULL;
5139 }
5140 goto done;
5141 }
5142 p->mark = _mark;
5143 D(fprintf(stderr, "%*c%s guard[%d-%d]: %s failed!\n", p->level, ' ',
5144 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression"));
5145 }
5146 _res = NULL;
5147 done:
5148 D(p->level--);
5149 return _res;
5150}
5151
5152// patterns: open_sequence_pattern | pattern
5153static expr_ty
5154patterns_rule(Parser *p)
5155{
5156 D(p->level++);
5157 if (p->error_indicator) {
5158 D(p->level--);
5159 return NULL;
5160 }
5161 expr_ty _res = NULL;
5162 int _mark = p->mark;
5163 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
5164 p->error_indicator = 1;
5165 D(p->level--);
5166 return NULL;
5167 }
5168 int _start_lineno = p->tokens[_mark]->lineno;
5169 UNUSED(_start_lineno); // Only used by EXTRA macro
5170 int _start_col_offset = p->tokens[_mark]->col_offset;
5171 UNUSED(_start_col_offset); // Only used by EXTRA macro
5172 { // open_sequence_pattern
5173 if (p->error_indicator) {
5174 D(p->level--);
5175 return NULL;
5176 }
5177 D(fprintf(stderr, "%*c> patterns[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "open_sequence_pattern"));
5178 asdl_expr_seq* values;
5179 if (
5180 (values = (asdl_expr_seq*)open_sequence_pattern_rule(p)) // open_sequence_pattern
5181 )
5182 {
5183 D(fprintf(stderr, "%*c+ patterns[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "open_sequence_pattern"));
5184 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5185 if (_token == NULL) {
5186 D(p->level--);
5187 return NULL;
5188 }
5189 int _end_lineno = _token->end_lineno;
5190 UNUSED(_end_lineno); // Only used by EXTRA macro
5191 int _end_col_offset = _token->end_col_offset;
5192 UNUSED(_end_col_offset); // Only used by EXTRA macro
5193 _res = _Py_Tuple ( values , Load , EXTRA );
5194 if (_res == NULL && PyErr_Occurred()) {
5195 p->error_indicator = 1;
5196 D(p->level--);
5197 return NULL;
5198 }
5199 goto done;
5200 }
5201 p->mark = _mark;
5202 D(fprintf(stderr, "%*c%s patterns[%d-%d]: %s failed!\n", p->level, ' ',
5203 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "open_sequence_pattern"));
5204 }
5205 { // pattern
5206 if (p->error_indicator) {
5207 D(p->level--);
5208 return NULL;
5209 }
5210 D(fprintf(stderr, "%*c> patterns[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "pattern"));
5211 expr_ty pattern_var;
5212 if (
5213 (pattern_var = pattern_rule(p)) // pattern
5214 )
5215 {
5216 D(fprintf(stderr, "%*c+ patterns[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "pattern"));
5217 _res = pattern_var;
5218 goto done;
5219 }
5220 p->mark = _mark;
5221 D(fprintf(stderr, "%*c%s patterns[%d-%d]: %s failed!\n", p->level, ' ',
5222 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "pattern"));
5223 }
5224 _res = NULL;
5225 done:
5226 D(p->level--);
5227 return _res;
5228}
5229
5230// pattern: as_pattern | or_pattern
5231static expr_ty
5232pattern_rule(Parser *p)
5233{
5234 D(p->level++);
5235 if (p->error_indicator) {
5236 D(p->level--);
5237 return NULL;
5238 }
5239 expr_ty _res = NULL;
5240 int _mark = p->mark;
5241 { // as_pattern
5242 if (p->error_indicator) {
5243 D(p->level--);
5244 return NULL;
5245 }
5246 D(fprintf(stderr, "%*c> pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "as_pattern"));
5247 expr_ty as_pattern_var;
5248 if (
5249 (as_pattern_var = as_pattern_rule(p)) // as_pattern
5250 )
5251 {
5252 D(fprintf(stderr, "%*c+ pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "as_pattern"));
5253 _res = as_pattern_var;
5254 goto done;
5255 }
5256 p->mark = _mark;
5257 D(fprintf(stderr, "%*c%s pattern[%d-%d]: %s failed!\n", p->level, ' ',
5258 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "as_pattern"));
5259 }
5260 { // or_pattern
5261 if (p->error_indicator) {
5262 D(p->level--);
5263 return NULL;
5264 }
5265 D(fprintf(stderr, "%*c> pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "or_pattern"));
5266 expr_ty or_pattern_var;
5267 if (
5268 (or_pattern_var = or_pattern_rule(p)) // or_pattern
5269 )
5270 {
5271 D(fprintf(stderr, "%*c+ pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "or_pattern"));
5272 _res = or_pattern_var;
5273 goto done;
5274 }
5275 p->mark = _mark;
5276 D(fprintf(stderr, "%*c%s pattern[%d-%d]: %s failed!\n", p->level, ' ',
5277 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "or_pattern"));
5278 }
5279 _res = NULL;
5280 done:
5281 D(p->level--);
5282 return _res;
5283}
5284
5285// as_pattern: or_pattern 'as' capture_pattern
5286static expr_ty
5287as_pattern_rule(Parser *p)
5288{
5289 D(p->level++);
5290 if (p->error_indicator) {
5291 D(p->level--);
5292 return NULL;
5293 }
5294 expr_ty _res = NULL;
5295 int _mark = p->mark;
5296 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
5297 p->error_indicator = 1;
5298 D(p->level--);
5299 return NULL;
5300 }
5301 int _start_lineno = p->tokens[_mark]->lineno;
5302 UNUSED(_start_lineno); // Only used by EXTRA macro
5303 int _start_col_offset = p->tokens[_mark]->col_offset;
5304 UNUSED(_start_col_offset); // Only used by EXTRA macro
5305 { // or_pattern 'as' capture_pattern
5306 if (p->error_indicator) {
5307 D(p->level--);
5308 return NULL;
5309 }
5310 D(fprintf(stderr, "%*c> as_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "or_pattern 'as' capture_pattern"));
5311 Token * _keyword;
5312 expr_ty pattern;
5313 expr_ty target;
5314 if (
5315 (pattern = or_pattern_rule(p)) // or_pattern
5316 &&
5317 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
5318 &&
5319 (target = capture_pattern_rule(p)) // capture_pattern
5320 )
5321 {
5322 D(fprintf(stderr, "%*c+ as_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "or_pattern 'as' capture_pattern"));
5323 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5324 if (_token == NULL) {
5325 D(p->level--);
5326 return NULL;
5327 }
5328 int _end_lineno = _token->end_lineno;
5329 UNUSED(_end_lineno); // Only used by EXTRA macro
5330 int _end_col_offset = _token->end_col_offset;
5331 UNUSED(_end_col_offset); // Only used by EXTRA macro
5332 _res = _Py_MatchAs ( pattern , target -> v . Name . id , EXTRA );
5333 if (_res == NULL && PyErr_Occurred()) {
5334 p->error_indicator = 1;
5335 D(p->level--);
5336 return NULL;
5337 }
5338 goto done;
5339 }
5340 p->mark = _mark;
5341 D(fprintf(stderr, "%*c%s as_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5342 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "or_pattern 'as' capture_pattern"));
5343 }
5344 _res = NULL;
5345 done:
5346 D(p->level--);
5347 return _res;
5348}
5349
5350// or_pattern: '|'.closed_pattern+
5351static expr_ty
5352or_pattern_rule(Parser *p)
5353{
5354 D(p->level++);
5355 if (p->error_indicator) {
5356 D(p->level--);
5357 return NULL;
5358 }
5359 expr_ty _res = NULL;
5360 int _mark = p->mark;
5361 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
5362 p->error_indicator = 1;
5363 D(p->level--);
5364 return NULL;
5365 }
5366 int _start_lineno = p->tokens[_mark]->lineno;
5367 UNUSED(_start_lineno); // Only used by EXTRA macro
5368 int _start_col_offset = p->tokens[_mark]->col_offset;
5369 UNUSED(_start_col_offset); // Only used by EXTRA macro
5370 { // '|'.closed_pattern+
5371 if (p->error_indicator) {
5372 D(p->level--);
5373 return NULL;
5374 }
5375 D(fprintf(stderr, "%*c> or_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'|'.closed_pattern+"));
5376 asdl_expr_seq* patterns;
5377 if (
5378 (patterns = (asdl_expr_seq*)_gather_51_rule(p)) // '|'.closed_pattern+
5379 )
5380 {
5381 D(fprintf(stderr, "%*c+ or_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'|'.closed_pattern+"));
5382 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5383 if (_token == NULL) {
5384 D(p->level--);
5385 return NULL;
5386 }
5387 int _end_lineno = _token->end_lineno;
5388 UNUSED(_end_lineno); // Only used by EXTRA macro
5389 int _end_col_offset = _token->end_col_offset;
5390 UNUSED(_end_col_offset); // Only used by EXTRA macro
5391 _res = asdl_seq_LEN ( patterns ) == 1 ? asdl_seq_GET ( patterns , 0 ) : _Py_MatchOr ( patterns , EXTRA );
5392 if (_res == NULL && PyErr_Occurred()) {
5393 p->error_indicator = 1;
5394 D(p->level--);
5395 return NULL;
5396 }
5397 goto done;
5398 }
5399 p->mark = _mark;
5400 D(fprintf(stderr, "%*c%s or_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5401 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'|'.closed_pattern+"));
5402 }
5403 _res = NULL;
5404 done:
5405 D(p->level--);
5406 return _res;
5407}
5408
5409// closed_pattern:
5410// | literal_pattern
5411// | capture_pattern
5412// | wildcard_pattern
5413// | value_pattern
5414// | group_pattern
5415// | sequence_pattern
5416// | mapping_pattern
5417// | class_pattern
5418static expr_ty
5419closed_pattern_rule(Parser *p)
5420{
5421 D(p->level++);
5422 if (p->error_indicator) {
5423 D(p->level--);
5424 return NULL;
5425 }
5426 expr_ty _res = NULL;
5427 int _mark = p->mark;
5428 { // literal_pattern
5429 if (p->error_indicator) {
5430 D(p->level--);
5431 return NULL;
5432 }
5433 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "literal_pattern"));
5434 expr_ty literal_pattern_var;
5435 if (
5436 (literal_pattern_var = literal_pattern_rule(p)) // literal_pattern
5437 )
5438 {
5439 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "literal_pattern"));
5440 _res = literal_pattern_var;
5441 goto done;
5442 }
5443 p->mark = _mark;
5444 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5445 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "literal_pattern"));
5446 }
5447 { // capture_pattern
5448 if (p->error_indicator) {
5449 D(p->level--);
5450 return NULL;
5451 }
5452 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "capture_pattern"));
5453 expr_ty capture_pattern_var;
5454 if (
5455 (capture_pattern_var = capture_pattern_rule(p)) // capture_pattern
5456 )
5457 {
5458 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "capture_pattern"));
5459 _res = capture_pattern_var;
5460 goto done;
5461 }
5462 p->mark = _mark;
5463 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5464 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "capture_pattern"));
5465 }
5466 { // wildcard_pattern
5467 if (p->error_indicator) {
5468 D(p->level--);
5469 return NULL;
5470 }
5471 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "wildcard_pattern"));
5472 expr_ty wildcard_pattern_var;
5473 if (
5474 (wildcard_pattern_var = wildcard_pattern_rule(p)) // wildcard_pattern
5475 )
5476 {
5477 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "wildcard_pattern"));
5478 _res = wildcard_pattern_var;
5479 goto done;
5480 }
5481 p->mark = _mark;
5482 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5483 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "wildcard_pattern"));
5484 }
5485 { // value_pattern
5486 if (p->error_indicator) {
5487 D(p->level--);
5488 return NULL;
5489 }
5490 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "value_pattern"));
5491 expr_ty value_pattern_var;
5492 if (
5493 (value_pattern_var = value_pattern_rule(p)) // value_pattern
5494 )
5495 {
5496 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "value_pattern"));
5497 _res = value_pattern_var;
5498 goto done;
5499 }
5500 p->mark = _mark;
5501 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5502 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "value_pattern"));
5503 }
5504 { // group_pattern
5505 if (p->error_indicator) {
5506 D(p->level--);
5507 return NULL;
5508 }
5509 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "group_pattern"));
5510 expr_ty group_pattern_var;
5511 if (
5512 (group_pattern_var = group_pattern_rule(p)) // group_pattern
5513 )
5514 {
5515 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "group_pattern"));
5516 _res = group_pattern_var;
5517 goto done;
5518 }
5519 p->mark = _mark;
5520 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5521 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "group_pattern"));
5522 }
5523 { // sequence_pattern
5524 if (p->error_indicator) {
5525 D(p->level--);
5526 return NULL;
5527 }
5528 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sequence_pattern"));
5529 expr_ty sequence_pattern_var;
5530 if (
5531 (sequence_pattern_var = sequence_pattern_rule(p)) // sequence_pattern
5532 )
5533 {
5534 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sequence_pattern"));
5535 _res = sequence_pattern_var;
5536 goto done;
5537 }
5538 p->mark = _mark;
5539 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5540 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sequence_pattern"));
5541 }
5542 { // mapping_pattern
5543 if (p->error_indicator) {
5544 D(p->level--);
5545 return NULL;
5546 }
5547 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "mapping_pattern"));
5548 expr_ty mapping_pattern_var;
5549 if (
5550 (mapping_pattern_var = mapping_pattern_rule(p)) // mapping_pattern
5551 )
5552 {
5553 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "mapping_pattern"));
5554 _res = mapping_pattern_var;
5555 goto done;
5556 }
5557 p->mark = _mark;
5558 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5559 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "mapping_pattern"));
5560 }
5561 { // class_pattern
5562 if (p->error_indicator) {
5563 D(p->level--);
5564 return NULL;
5565 }
5566 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "class_pattern"));
5567 expr_ty class_pattern_var;
5568 if (
5569 (class_pattern_var = class_pattern_rule(p)) // class_pattern
5570 )
5571 {
5572 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "class_pattern"));
5573 _res = class_pattern_var;
5574 goto done;
5575 }
5576 p->mark = _mark;
5577 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5578 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "class_pattern"));
5579 }
5580 _res = NULL;
5581 done:
5582 D(p->level--);
5583 return _res;
5584}
5585
5586// literal_pattern:
5587// | signed_number !('+' | '-')
5588// | signed_number '+' NUMBER
5589// | signed_number '-' NUMBER
5590// | strings
5591// | 'None'
5592// | 'True'
5593// | 'False'
5594static expr_ty
5595literal_pattern_rule(Parser *p)
5596{
5597 D(p->level++);
5598 if (p->error_indicator) {
5599 D(p->level--);
5600 return NULL;
5601 }
5602 expr_ty _res = NULL;
5603 int _mark = p->mark;
5604 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
5605 p->error_indicator = 1;
5606 D(p->level--);
5607 return NULL;
5608 }
5609 int _start_lineno = p->tokens[_mark]->lineno;
5610 UNUSED(_start_lineno); // Only used by EXTRA macro
5611 int _start_col_offset = p->tokens[_mark]->col_offset;
5612 UNUSED(_start_col_offset); // Only used by EXTRA macro
5613 { // signed_number !('+' | '-')
5614 if (p->error_indicator) {
5615 D(p->level--);
5616 return NULL;
5617 }
5618 D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "signed_number !('+' | '-')"));
5619 expr_ty signed_number_var;
5620 if (
5621 (signed_number_var = signed_number_rule(p)) // signed_number
5622 &&
5623 _PyPegen_lookahead(0, _tmp_53_rule, p)
5624 )
5625 {
5626 D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "signed_number !('+' | '-')"));
5627 _res = signed_number_var;
5628 goto done;
5629 }
5630 p->mark = _mark;
5631 D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5632 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "signed_number !('+' | '-')"));
5633 }
5634 { // signed_number '+' NUMBER
5635 if (p->error_indicator) {
5636 D(p->level--);
5637 return NULL;
5638 }
5639 D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "signed_number '+' NUMBER"));
5640 Token * _literal;
5641 expr_ty imag;
5642 expr_ty real;
5643 if (
5644 (real = signed_number_rule(p)) // signed_number
5645 &&
5646 (_literal = _PyPegen_expect_token(p, 14)) // token='+'
5647 &&
5648 (imag = _PyPegen_number_token(p)) // NUMBER
5649 )
5650 {
5651 D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "signed_number '+' NUMBER"));
5652 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5653 if (_token == NULL) {
5654 D(p->level--);
5655 return NULL;
5656 }
5657 int _end_lineno = _token->end_lineno;
5658 UNUSED(_end_lineno); // Only used by EXTRA macro
5659 int _end_col_offset = _token->end_col_offset;
5660 UNUSED(_end_col_offset); // Only used by EXTRA macro
5661 _res = _Py_BinOp ( real , Add , imag , EXTRA );
5662 if (_res == NULL && PyErr_Occurred()) {
5663 p->error_indicator = 1;
5664 D(p->level--);
5665 return NULL;
5666 }
5667 goto done;
5668 }
5669 p->mark = _mark;
5670 D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5671 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "signed_number '+' NUMBER"));
5672 }
5673 { // signed_number '-' NUMBER
5674 if (p->error_indicator) {
5675 D(p->level--);
5676 return NULL;
5677 }
5678 D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "signed_number '-' NUMBER"));
5679 Token * _literal;
5680 expr_ty imag;
5681 expr_ty real;
5682 if (
5683 (real = signed_number_rule(p)) // signed_number
5684 &&
5685 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
5686 &&
5687 (imag = _PyPegen_number_token(p)) // NUMBER
5688 )
5689 {
5690 D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "signed_number '-' NUMBER"));
5691 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5692 if (_token == NULL) {
5693 D(p->level--);
5694 return NULL;
5695 }
5696 int _end_lineno = _token->end_lineno;
5697 UNUSED(_end_lineno); // Only used by EXTRA macro
5698 int _end_col_offset = _token->end_col_offset;
5699 UNUSED(_end_col_offset); // Only used by EXTRA macro
5700 _res = _Py_BinOp ( real , Sub , imag , EXTRA );
5701 if (_res == NULL && PyErr_Occurred()) {
5702 p->error_indicator = 1;
5703 D(p->level--);
5704 return NULL;
5705 }
5706 goto done;
5707 }
5708 p->mark = _mark;
5709 D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5710 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "signed_number '-' NUMBER"));
5711 }
5712 { // strings
5713 if (p->error_indicator) {
5714 D(p->level--);
5715 return NULL;
5716 }
5717 D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "strings"));
5718 expr_ty strings_var;
5719 if (
5720 (strings_var = strings_rule(p)) // strings
5721 )
5722 {
5723 D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "strings"));
5724 _res = strings_var;
5725 goto done;
5726 }
5727 p->mark = _mark;
5728 D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5729 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "strings"));
5730 }
5731 { // 'None'
5732 if (p->error_indicator) {
5733 D(p->level--);
5734 return NULL;
5735 }
5736 D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'"));
5737 Token * _keyword;
5738 if (
5739 (_keyword = _PyPegen_expect_token(p, 523)) // token='None'
5740 )
5741 {
5742 D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'"));
5743 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5744 if (_token == NULL) {
5745 D(p->level--);
5746 return NULL;
5747 }
5748 int _end_lineno = _token->end_lineno;
5749 UNUSED(_end_lineno); // Only used by EXTRA macro
5750 int _end_col_offset = _token->end_col_offset;
5751 UNUSED(_end_col_offset); // Only used by EXTRA macro
5752 _res = _Py_Constant ( Py_None , NULL , EXTRA );
5753 if (_res == NULL && PyErr_Occurred()) {
5754 p->error_indicator = 1;
5755 D(p->level--);
5756 return NULL;
5757 }
5758 goto done;
5759 }
5760 p->mark = _mark;
5761 D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5762 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'None'"));
5763 }
5764 { // 'True'
5765 if (p->error_indicator) {
5766 D(p->level--);
5767 return NULL;
5768 }
5769 D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'"));
5770 Token * _keyword;
5771 if (
5772 (_keyword = _PyPegen_expect_token(p, 524)) // token='True'
5773 )
5774 {
5775 D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'"));
5776 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5777 if (_token == NULL) {
5778 D(p->level--);
5779 return NULL;
5780 }
5781 int _end_lineno = _token->end_lineno;
5782 UNUSED(_end_lineno); // Only used by EXTRA macro
5783 int _end_col_offset = _token->end_col_offset;
5784 UNUSED(_end_col_offset); // Only used by EXTRA macro
5785 _res = _Py_Constant ( Py_True , NULL , EXTRA );
5786 if (_res == NULL && PyErr_Occurred()) {
5787 p->error_indicator = 1;
5788 D(p->level--);
5789 return NULL;
5790 }
5791 goto done;
5792 }
5793 p->mark = _mark;
5794 D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5795 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'True'"));
5796 }
5797 { // 'False'
5798 if (p->error_indicator) {
5799 D(p->level--);
5800 return NULL;
5801 }
5802 D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'"));
5803 Token * _keyword;
5804 if (
5805 (_keyword = _PyPegen_expect_token(p, 525)) // token='False'
5806 )
5807 {
5808 D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'"));
5809 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5810 if (_token == NULL) {
5811 D(p->level--);
5812 return NULL;
5813 }
5814 int _end_lineno = _token->end_lineno;
5815 UNUSED(_end_lineno); // Only used by EXTRA macro
5816 int _end_col_offset = _token->end_col_offset;
5817 UNUSED(_end_col_offset); // Only used by EXTRA macro
5818 _res = _Py_Constant ( Py_False , NULL , EXTRA );
5819 if (_res == NULL && PyErr_Occurred()) {
5820 p->error_indicator = 1;
5821 D(p->level--);
5822 return NULL;
5823 }
5824 goto done;
5825 }
5826 p->mark = _mark;
5827 D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5828 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'False'"));
5829 }
5830 _res = NULL;
5831 done:
5832 D(p->level--);
5833 return _res;
5834}
5835
5836// signed_number: NUMBER | '-' NUMBER
5837static expr_ty
5838signed_number_rule(Parser *p)
5839{
5840 D(p->level++);
5841 if (p->error_indicator) {
5842 D(p->level--);
5843 return NULL;
5844 }
5845 expr_ty _res = NULL;
5846 int _mark = p->mark;
5847 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
5848 p->error_indicator = 1;
5849 D(p->level--);
5850 return NULL;
5851 }
5852 int _start_lineno = p->tokens[_mark]->lineno;
5853 UNUSED(_start_lineno); // Only used by EXTRA macro
5854 int _start_col_offset = p->tokens[_mark]->col_offset;
5855 UNUSED(_start_col_offset); // Only used by EXTRA macro
5856 { // NUMBER
5857 if (p->error_indicator) {
5858 D(p->level--);
5859 return NULL;
5860 }
5861 D(fprintf(stderr, "%*c> signed_number[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NUMBER"));
5862 expr_ty number_var;
5863 if (
5864 (number_var = _PyPegen_number_token(p)) // NUMBER
5865 )
5866 {
5867 D(fprintf(stderr, "%*c+ signed_number[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NUMBER"));
5868 _res = number_var;
5869 goto done;
5870 }
5871 p->mark = _mark;
5872 D(fprintf(stderr, "%*c%s signed_number[%d-%d]: %s failed!\n", p->level, ' ',
5873 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NUMBER"));
5874 }
5875 { // '-' NUMBER
5876 if (p->error_indicator) {
5877 D(p->level--);
5878 return NULL;
5879 }
5880 D(fprintf(stderr, "%*c> signed_number[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-' NUMBER"));
5881 Token * _literal;
5882 expr_ty number;
5883 if (
5884 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
5885 &&
5886 (number = _PyPegen_number_token(p)) // NUMBER
5887 )
5888 {
5889 D(fprintf(stderr, "%*c+ signed_number[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-' NUMBER"));
5890 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5891 if (_token == NULL) {
5892 D(p->level--);
5893 return NULL;
5894 }
5895 int _end_lineno = _token->end_lineno;
5896 UNUSED(_end_lineno); // Only used by EXTRA macro
5897 int _end_col_offset = _token->end_col_offset;
5898 UNUSED(_end_col_offset); // Only used by EXTRA macro
5899 _res = _Py_UnaryOp ( USub , number , EXTRA );
5900 if (_res == NULL && PyErr_Occurred()) {
5901 p->error_indicator = 1;
5902 D(p->level--);
5903 return NULL;
5904 }
5905 goto done;
5906 }
5907 p->mark = _mark;
5908 D(fprintf(stderr, "%*c%s signed_number[%d-%d]: %s failed!\n", p->level, ' ',
5909 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-' NUMBER"));
5910 }
5911 _res = NULL;
5912 done:
5913 D(p->level--);
5914 return _res;
5915}
5916
5917// capture_pattern: !"_" NAME !('.' | '(' | '=')
5918static expr_ty
5919capture_pattern_rule(Parser *p)
5920{
5921 D(p->level++);
5922 if (p->error_indicator) {
5923 D(p->level--);
5924 return NULL;
5925 }
5926 expr_ty _res = NULL;
5927 int _mark = p->mark;
5928 { // !"_" NAME !('.' | '(' | '=')
5929 if (p->error_indicator) {
5930 D(p->level--);
5931 return NULL;
5932 }
5933 D(fprintf(stderr, "%*c> capture_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "!\"_\" NAME !('.' | '(' | '=')"));
5934 expr_ty name;
5935 if (
5936 _PyPegen_lookahead_with_string(0, _PyPegen_expect_soft_keyword, p, "_")
5937 &&
5938 (name = _PyPegen_name_token(p)) // NAME
5939 &&
5940 _PyPegen_lookahead(0, _tmp_54_rule, p)
5941 )
5942 {
5943 D(fprintf(stderr, "%*c+ capture_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "!\"_\" NAME !('.' | '(' | '=')"));
5944 _res = _PyPegen_set_expr_context ( p , name , Store );
5945 if (_res == NULL && PyErr_Occurred()) {
5946 p->error_indicator = 1;
5947 D(p->level--);
5948 return NULL;
5949 }
5950 goto done;
5951 }
5952 p->mark = _mark;
5953 D(fprintf(stderr, "%*c%s capture_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5954 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "!\"_\" NAME !('.' | '(' | '=')"));
5955 }
5956 _res = NULL;
5957 done:
5958 D(p->level--);
5959 return _res;
5960}
5961
5962// wildcard_pattern: "_"
5963static expr_ty
5964wildcard_pattern_rule(Parser *p)
5965{
5966 D(p->level++);
5967 if (p->error_indicator) {
5968 D(p->level--);
5969 return NULL;
5970 }
5971 expr_ty _res = NULL;
5972 int _mark = p->mark;
5973 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
5974 p->error_indicator = 1;
5975 D(p->level--);
5976 return NULL;
5977 }
5978 int _start_lineno = p->tokens[_mark]->lineno;
5979 UNUSED(_start_lineno); // Only used by EXTRA macro
5980 int _start_col_offset = p->tokens[_mark]->col_offset;
5981 UNUSED(_start_col_offset); // Only used by EXTRA macro
5982 { // "_"
5983 if (p->error_indicator) {
5984 D(p->level--);
5985 return NULL;
5986 }
5987 D(fprintf(stderr, "%*c> wildcard_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"_\""));
5988 expr_ty _keyword;
5989 if (
5990 (_keyword = _PyPegen_expect_soft_keyword(p, "_")) // soft_keyword='"_"'
5991 )
5992 {
5993 D(fprintf(stderr, "%*c+ wildcard_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"_\""));
5994 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5995 if (_token == NULL) {
5996 D(p->level--);
5997 return NULL;
5998 }
5999 int _end_lineno = _token->end_lineno;
6000 UNUSED(_end_lineno); // Only used by EXTRA macro
6001 int _end_col_offset = _token->end_col_offset;
6002 UNUSED(_end_col_offset); // Only used by EXTRA macro
6003 _res = _Py_Name ( CHECK ( PyObject * , _PyPegen_new_identifier ( p , "_" ) ) , Store , EXTRA );
6004 if (_res == NULL && PyErr_Occurred()) {
6005 p->error_indicator = 1;
6006 D(p->level--);
6007 return NULL;
6008 }
6009 goto done;
6010 }
6011 p->mark = _mark;
6012 D(fprintf(stderr, "%*c%s wildcard_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6013 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"_\""));
6014 }
6015 _res = NULL;
6016 done:
6017 D(p->level--);
6018 return _res;
6019}
6020
6021// value_pattern: attr !('.' | '(' | '=')
6022static expr_ty
6023value_pattern_rule(Parser *p)
6024{
6025 D(p->level++);
6026 if (p->error_indicator) {
6027 D(p->level--);
6028 return NULL;
6029 }
6030 expr_ty _res = NULL;
6031 int _mark = p->mark;
6032 { // attr !('.' | '(' | '=')
6033 if (p->error_indicator) {
6034 D(p->level--);
6035 return NULL;
6036 }
6037 D(fprintf(stderr, "%*c> value_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "attr !('.' | '(' | '=')"));
6038 expr_ty attr;
6039 if (
6040 (attr = attr_rule(p)) // attr
6041 &&
6042 _PyPegen_lookahead(0, _tmp_55_rule, p)
6043 )
6044 {
6045 D(fprintf(stderr, "%*c+ value_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "attr !('.' | '(' | '=')"));
6046 _res = attr;
6047 if (_res == NULL && PyErr_Occurred()) {
6048 p->error_indicator = 1;
6049 D(p->level--);
6050 return NULL;
6051 }
6052 goto done;
6053 }
6054 p->mark = _mark;
6055 D(fprintf(stderr, "%*c%s value_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6056 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "attr !('.' | '(' | '=')"));
6057 }
6058 _res = NULL;
6059 done:
6060 D(p->level--);
6061 return _res;
6062}
6063
6064// Left-recursive
6065// attr: name_or_attr '.' NAME
6066static expr_ty attr_raw(Parser *);
6067static expr_ty
6068attr_rule(Parser *p)
6069{
6070 D(p->level++);
6071 expr_ty _res = NULL;
6072 if (_PyPegen_is_memoized(p, attr_type, &_res)) {
6073 D(p->level--);
6074 return _res;
6075 }
6076 int _mark = p->mark;
6077 int _resmark = p->mark;
6078 while (1) {
6079 int tmpvar_1 = _PyPegen_update_memo(p, _mark, attr_type, _res);
6080 if (tmpvar_1) {
6081 D(p->level--);
6082 return _res;
6083 }
6084 p->mark = _mark;
6085 void *_raw = attr_raw(p);
6086 if (p->error_indicator)
6087 return NULL;
6088 if (_raw == NULL || p->mark <= _resmark)
6089 break;
6090 _resmark = p->mark;
6091 _res = _raw;
6092 }
6093 p->mark = _resmark;
6094 D(p->level--);
6095 return _res;
6096}
6097static expr_ty
6098attr_raw(Parser *p)
6099{
6100 D(p->level++);
6101 if (p->error_indicator) {
6102 D(p->level--);
6103 return NULL;
6104 }
6105 expr_ty _res = NULL;
6106 int _mark = p->mark;
6107 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6108 p->error_indicator = 1;
6109 D(p->level--);
6110 return NULL;
6111 }
6112 int _start_lineno = p->tokens[_mark]->lineno;
6113 UNUSED(_start_lineno); // Only used by EXTRA macro
6114 int _start_col_offset = p->tokens[_mark]->col_offset;
6115 UNUSED(_start_col_offset); // Only used by EXTRA macro
6116 { // name_or_attr '.' NAME
6117 if (p->error_indicator) {
6118 D(p->level--);
6119 return NULL;
6120 }
6121 D(fprintf(stderr, "%*c> attr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "name_or_attr '.' NAME"));
6122 Token * _literal;
6123 expr_ty attr;
6124 expr_ty value;
6125 if (
6126 (value = name_or_attr_rule(p)) // name_or_attr
6127 &&
6128 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
6129 &&
6130 (attr = _PyPegen_name_token(p)) // NAME
6131 )
6132 {
6133 D(fprintf(stderr, "%*c+ attr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "name_or_attr '.' NAME"));
6134 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6135 if (_token == NULL) {
6136 D(p->level--);
6137 return NULL;
6138 }
6139 int _end_lineno = _token->end_lineno;
6140 UNUSED(_end_lineno); // Only used by EXTRA macro
6141 int _end_col_offset = _token->end_col_offset;
6142 UNUSED(_end_col_offset); // Only used by EXTRA macro
6143 _res = _Py_Attribute ( value , attr -> v . Name . id , Load , EXTRA );
6144 if (_res == NULL && PyErr_Occurred()) {
6145 p->error_indicator = 1;
6146 D(p->level--);
6147 return NULL;
6148 }
6149 goto done;
6150 }
6151 p->mark = _mark;
6152 D(fprintf(stderr, "%*c%s attr[%d-%d]: %s failed!\n", p->level, ' ',
6153 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "name_or_attr '.' NAME"));
6154 }
6155 _res = NULL;
6156 done:
6157 D(p->level--);
6158 return _res;
6159}
6160
6161// Left-recursive
6162// name_or_attr: attr | NAME
6163static expr_ty
6164name_or_attr_rule(Parser *p)
6165{
6166 D(p->level++);
6167 if (p->error_indicator) {
6168 D(p->level--);
6169 return NULL;
6170 }
6171 expr_ty _res = NULL;
6172 int _mark = p->mark;
6173 { // attr
6174 if (p->error_indicator) {
6175 D(p->level--);
6176 return NULL;
6177 }
6178 D(fprintf(stderr, "%*c> name_or_attr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "attr"));
6179 expr_ty attr_var;
6180 if (
6181 (attr_var = attr_rule(p)) // attr
6182 )
6183 {
6184 D(fprintf(stderr, "%*c+ name_or_attr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "attr"));
6185 _res = attr_var;
6186 goto done;
6187 }
6188 p->mark = _mark;
6189 D(fprintf(stderr, "%*c%s name_or_attr[%d-%d]: %s failed!\n", p->level, ' ',
6190 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "attr"));
6191 }
6192 { // NAME
6193 if (p->error_indicator) {
6194 D(p->level--);
6195 return NULL;
6196 }
6197 D(fprintf(stderr, "%*c> name_or_attr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
6198 expr_ty name_var;
6199 if (
6200 (name_var = _PyPegen_name_token(p)) // NAME
6201 )
6202 {
6203 D(fprintf(stderr, "%*c+ name_or_attr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
6204 _res = name_var;
6205 goto done;
6206 }
6207 p->mark = _mark;
6208 D(fprintf(stderr, "%*c%s name_or_attr[%d-%d]: %s failed!\n", p->level, ' ',
6209 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
6210 }
6211 _res = NULL;
6212 done:
6213 D(p->level--);
6214 return _res;
6215}
6216
6217// group_pattern: '(' pattern ')'
6218static expr_ty
6219group_pattern_rule(Parser *p)
6220{
6221 D(p->level++);
6222 if (p->error_indicator) {
6223 D(p->level--);
6224 return NULL;
6225 }
6226 expr_ty _res = NULL;
6227 int _mark = p->mark;
6228 { // '(' pattern ')'
6229 if (p->error_indicator) {
6230 D(p->level--);
6231 return NULL;
6232 }
6233 D(fprintf(stderr, "%*c> group_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' pattern ')'"));
6234 Token * _literal;
6235 Token * _literal_1;
6236 expr_ty pattern;
6237 if (
6238 (_literal = _PyPegen_expect_token(p, 7)) // token='('
6239 &&
6240 (pattern = pattern_rule(p)) // pattern
6241 &&
6242 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
6243 )
6244 {
6245 D(fprintf(stderr, "%*c+ group_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' pattern ')'"));
6246 _res = pattern;
6247 if (_res == NULL && PyErr_Occurred()) {
6248 p->error_indicator = 1;
6249 D(p->level--);
6250 return NULL;
6251 }
6252 goto done;
6253 }
6254 p->mark = _mark;
6255 D(fprintf(stderr, "%*c%s group_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6256 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' pattern ')'"));
6257 }
6258 _res = NULL;
6259 done:
6260 D(p->level--);
6261 return _res;
6262}
6263
6264// sequence_pattern: '[' maybe_sequence_pattern? ']' | '(' open_sequence_pattern? ')'
6265static expr_ty
6266sequence_pattern_rule(Parser *p)
6267{
6268 D(p->level++);
6269 if (p->error_indicator) {
6270 D(p->level--);
6271 return NULL;
6272 }
6273 expr_ty _res = NULL;
6274 int _mark = p->mark;
6275 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6276 p->error_indicator = 1;
6277 D(p->level--);
6278 return NULL;
6279 }
6280 int _start_lineno = p->tokens[_mark]->lineno;
6281 UNUSED(_start_lineno); // Only used by EXTRA macro
6282 int _start_col_offset = p->tokens[_mark]->col_offset;
6283 UNUSED(_start_col_offset); // Only used by EXTRA macro
6284 { // '[' maybe_sequence_pattern? ']'
6285 if (p->error_indicator) {
6286 D(p->level--);
6287 return NULL;
6288 }
6289 D(fprintf(stderr, "%*c> sequence_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' maybe_sequence_pattern? ']'"));
6290 Token * _literal;
6291 Token * _literal_1;
6292 void *values;
6293 if (
6294 (_literal = _PyPegen_expect_token(p, 9)) // token='['
6295 &&
6296 (values = maybe_sequence_pattern_rule(p), 1) // maybe_sequence_pattern?
6297 &&
6298 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
6299 )
6300 {
6301 D(fprintf(stderr, "%*c+ sequence_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' maybe_sequence_pattern? ']'"));
6302 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6303 if (_token == NULL) {
6304 D(p->level--);
6305 return NULL;
6306 }
6307 int _end_lineno = _token->end_lineno;
6308 UNUSED(_end_lineno); // Only used by EXTRA macro
6309 int _end_col_offset = _token->end_col_offset;
6310 UNUSED(_end_col_offset); // Only used by EXTRA macro
6311 _res = _Py_List ( values , Load , EXTRA );
6312 if (_res == NULL && PyErr_Occurred()) {
6313 p->error_indicator = 1;
6314 D(p->level--);
6315 return NULL;
6316 }
6317 goto done;
6318 }
6319 p->mark = _mark;
6320 D(fprintf(stderr, "%*c%s sequence_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6321 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' maybe_sequence_pattern? ']'"));
6322 }
6323 { // '(' open_sequence_pattern? ')'
6324 if (p->error_indicator) {
6325 D(p->level--);
6326 return NULL;
6327 }
6328 D(fprintf(stderr, "%*c> sequence_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' open_sequence_pattern? ')'"));
6329 Token * _literal;
6330 Token * _literal_1;
6331 void *values;
6332 if (
6333 (_literal = _PyPegen_expect_token(p, 7)) // token='('
6334 &&
6335 (values = open_sequence_pattern_rule(p), 1) // open_sequence_pattern?
6336 &&
6337 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
6338 )
6339 {
6340 D(fprintf(stderr, "%*c+ sequence_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' open_sequence_pattern? ')'"));
6341 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6342 if (_token == NULL) {
6343 D(p->level--);
6344 return NULL;
6345 }
6346 int _end_lineno = _token->end_lineno;
6347 UNUSED(_end_lineno); // Only used by EXTRA macro
6348 int _end_col_offset = _token->end_col_offset;
6349 UNUSED(_end_col_offset); // Only used by EXTRA macro
6350 _res = _Py_Tuple ( values , Load , EXTRA );
6351 if (_res == NULL && PyErr_Occurred()) {
6352 p->error_indicator = 1;
6353 D(p->level--);
6354 return NULL;
6355 }
6356 goto done;
6357 }
6358 p->mark = _mark;
6359 D(fprintf(stderr, "%*c%s sequence_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6360 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' open_sequence_pattern? ')'"));
6361 }
6362 _res = NULL;
6363 done:
6364 D(p->level--);
6365 return _res;
6366}
6367
6368// open_sequence_pattern: maybe_star_pattern ',' maybe_sequence_pattern?
6369static asdl_seq*
6370open_sequence_pattern_rule(Parser *p)
6371{
6372 D(p->level++);
6373 if (p->error_indicator) {
6374 D(p->level--);
6375 return NULL;
6376 }
6377 asdl_seq* _res = NULL;
6378 int _mark = p->mark;
6379 { // maybe_star_pattern ',' maybe_sequence_pattern?
6380 if (p->error_indicator) {
6381 D(p->level--);
6382 return NULL;
6383 }
6384 D(fprintf(stderr, "%*c> open_sequence_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "maybe_star_pattern ',' maybe_sequence_pattern?"));
6385 Token * _literal;
6386 expr_ty value;
6387 void *values;
6388 if (
6389 (value = maybe_star_pattern_rule(p)) // maybe_star_pattern
6390 &&
6391 (_literal = _PyPegen_expect_token(p, 12)) // token=','
6392 &&
6393 (values = maybe_sequence_pattern_rule(p), 1) // maybe_sequence_pattern?
6394 )
6395 {
6396 D(fprintf(stderr, "%*c+ open_sequence_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "maybe_star_pattern ',' maybe_sequence_pattern?"));
6397 _res = _PyPegen_seq_insert_in_front ( p , value , values );
6398 if (_res == NULL && PyErr_Occurred()) {
6399 p->error_indicator = 1;
6400 D(p->level--);
6401 return NULL;
6402 }
6403 goto done;
6404 }
6405 p->mark = _mark;
6406 D(fprintf(stderr, "%*c%s open_sequence_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6407 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "maybe_star_pattern ',' maybe_sequence_pattern?"));
6408 }
6409 _res = NULL;
6410 done:
6411 D(p->level--);
6412 return _res;
6413}
6414
6415// maybe_sequence_pattern: ','.maybe_star_pattern+ ','?
6416static asdl_seq*
6417maybe_sequence_pattern_rule(Parser *p)
6418{
6419 D(p->level++);
6420 if (p->error_indicator) {
6421 D(p->level--);
6422 return NULL;
6423 }
6424 asdl_seq* _res = NULL;
6425 int _mark = p->mark;
6426 { // ','.maybe_star_pattern+ ','?
6427 if (p->error_indicator) {
6428 D(p->level--);
6429 return NULL;
6430 }
6431 D(fprintf(stderr, "%*c> maybe_sequence_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.maybe_star_pattern+ ','?"));
6432 void *_opt_var;
6433 UNUSED(_opt_var); // Silence compiler warnings
6434 asdl_seq * values;
6435 if (
6436 (values = _gather_56_rule(p)) // ','.maybe_star_pattern+
6437 &&
6438 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
6439 )
6440 {
6441 D(fprintf(stderr, "%*c+ maybe_sequence_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.maybe_star_pattern+ ','?"));
6442 _res = values;
6443 if (_res == NULL && PyErr_Occurred()) {
6444 p->error_indicator = 1;
6445 D(p->level--);
6446 return NULL;
6447 }
6448 goto done;
6449 }
6450 p->mark = _mark;
6451 D(fprintf(stderr, "%*c%s maybe_sequence_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6452 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.maybe_star_pattern+ ','?"));
6453 }
6454 _res = NULL;
6455 done:
6456 D(p->level--);
6457 return _res;
6458}
6459
6460// maybe_star_pattern: star_pattern | pattern
6461static expr_ty
6462maybe_star_pattern_rule(Parser *p)
6463{
6464 D(p->level++);
6465 if (p->error_indicator) {
6466 D(p->level--);
6467 return NULL;
6468 }
6469 expr_ty _res = NULL;
6470 int _mark = p->mark;
6471 { // star_pattern
6472 if (p->error_indicator) {
6473 D(p->level--);
6474 return NULL;
6475 }
6476 D(fprintf(stderr, "%*c> maybe_star_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_pattern"));
6477 expr_ty star_pattern_var;
6478 if (
6479 (star_pattern_var = star_pattern_rule(p)) // star_pattern
6480 )
6481 {
6482 D(fprintf(stderr, "%*c+ maybe_star_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_pattern"));
6483 _res = star_pattern_var;
6484 goto done;
6485 }
6486 p->mark = _mark;
6487 D(fprintf(stderr, "%*c%s maybe_star_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6488 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_pattern"));
6489 }
6490 { // pattern
6491 if (p->error_indicator) {
6492 D(p->level--);
6493 return NULL;
6494 }
6495 D(fprintf(stderr, "%*c> maybe_star_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "pattern"));
6496 expr_ty pattern_var;
6497 if (
6498 (pattern_var = pattern_rule(p)) // pattern
6499 )
6500 {
6501 D(fprintf(stderr, "%*c+ maybe_star_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "pattern"));
6502 _res = pattern_var;
6503 goto done;
6504 }
6505 p->mark = _mark;
6506 D(fprintf(stderr, "%*c%s maybe_star_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6507 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "pattern"));
6508 }
6509 _res = NULL;
6510 done:
6511 D(p->level--);
6512 return _res;
6513}
6514
6515// star_pattern: '*' (capture_pattern | wildcard_pattern)
6516static expr_ty
6517star_pattern_rule(Parser *p)
6518{
6519 D(p->level++);
6520 if (p->error_indicator) {
6521 D(p->level--);
6522 return NULL;
6523 }
6524 expr_ty _res = NULL;
6525 int _mark = p->mark;
6526 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6527 p->error_indicator = 1;
6528 D(p->level--);
6529 return NULL;
6530 }
6531 int _start_lineno = p->tokens[_mark]->lineno;
6532 UNUSED(_start_lineno); // Only used by EXTRA macro
6533 int _start_col_offset = p->tokens[_mark]->col_offset;
6534 UNUSED(_start_col_offset); // Only used by EXTRA macro
6535 { // '*' (capture_pattern | wildcard_pattern)
6536 if (p->error_indicator) {
6537 D(p->level--);
6538 return NULL;
6539 }
6540 D(fprintf(stderr, "%*c> star_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (capture_pattern | wildcard_pattern)"));
6541 Token * _literal;
6542 void *value;
6543 if (
6544 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
6545 &&
6546 (value = _tmp_58_rule(p)) // capture_pattern | wildcard_pattern
6547 )
6548 {
6549 D(fprintf(stderr, "%*c+ star_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (capture_pattern | wildcard_pattern)"));
6550 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6551 if (_token == NULL) {
6552 D(p->level--);
6553 return NULL;
6554 }
6555 int _end_lineno = _token->end_lineno;
6556 UNUSED(_end_lineno); // Only used by EXTRA macro
6557 int _end_col_offset = _token->end_col_offset;
6558 UNUSED(_end_col_offset); // Only used by EXTRA macro
6559 _res = _Py_Starred ( value , Store , EXTRA );
6560 if (_res == NULL && PyErr_Occurred()) {
6561 p->error_indicator = 1;
6562 D(p->level--);
6563 return NULL;
6564 }
6565 goto done;
6566 }
6567 p->mark = _mark;
6568 D(fprintf(stderr, "%*c%s star_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6569 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' (capture_pattern | wildcard_pattern)"));
6570 }
6571 _res = NULL;
6572 done:
6573 D(p->level--);
6574 return _res;
6575}
6576
6577// mapping_pattern: '{' items_pattern? '}'
6578static expr_ty
6579mapping_pattern_rule(Parser *p)
6580{
6581 D(p->level++);
6582 if (p->error_indicator) {
6583 D(p->level--);
6584 return NULL;
6585 }
6586 expr_ty _res = NULL;
6587 int _mark = p->mark;
6588 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6589 p->error_indicator = 1;
6590 D(p->level--);
6591 return NULL;
6592 }
6593 int _start_lineno = p->tokens[_mark]->lineno;
6594 UNUSED(_start_lineno); // Only used by EXTRA macro
6595 int _start_col_offset = p->tokens[_mark]->col_offset;
6596 UNUSED(_start_col_offset); // Only used by EXTRA macro
6597 { // '{' items_pattern? '}'
6598 if (p->error_indicator) {
6599 D(p->level--);
6600 return NULL;
6601 }
6602 D(fprintf(stderr, "%*c> mapping_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' items_pattern? '}'"));
6603 Token * _literal;
6604 Token * _literal_1;
6605 void *items;
6606 if (
6607 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
6608 &&
6609 (items = items_pattern_rule(p), 1) // items_pattern?
6610 &&
6611 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
6612 )
6613 {
6614 D(fprintf(stderr, "%*c+ mapping_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' items_pattern? '}'"));
6615 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6616 if (_token == NULL) {
6617 D(p->level--);
6618 return NULL;
6619 }
6620 int _end_lineno = _token->end_lineno;
6621 UNUSED(_end_lineno); // Only used by EXTRA macro
6622 int _end_col_offset = _token->end_col_offset;
6623 UNUSED(_end_col_offset); // Only used by EXTRA macro
6624 _res = _Py_Dict ( CHECK ( asdl_expr_seq * , _PyPegen_get_keys ( p , items ) ) , CHECK ( asdl_expr_seq * , _PyPegen_get_values ( p , items ) ) , EXTRA );
6625 if (_res == NULL && PyErr_Occurred()) {
6626 p->error_indicator = 1;
6627 D(p->level--);
6628 return NULL;
6629 }
6630 goto done;
6631 }
6632 p->mark = _mark;
6633 D(fprintf(stderr, "%*c%s mapping_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6634 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' items_pattern? '}'"));
6635 }
6636 _res = NULL;
6637 done:
6638 D(p->level--);
6639 return _res;
6640}
6641
6642// items_pattern: ','.key_value_pattern+ ','?
6643static asdl_seq*
6644items_pattern_rule(Parser *p)
6645{
6646 D(p->level++);
6647 if (p->error_indicator) {
6648 D(p->level--);
6649 return NULL;
6650 }
6651 asdl_seq* _res = NULL;
6652 int _mark = p->mark;
6653 { // ','.key_value_pattern+ ','?
6654 if (p->error_indicator) {
6655 D(p->level--);
6656 return NULL;
6657 }
6658 D(fprintf(stderr, "%*c> items_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.key_value_pattern+ ','?"));
6659 void *_opt_var;
6660 UNUSED(_opt_var); // Silence compiler warnings
6661 asdl_seq * items;
6662 if (
6663 (items = _gather_59_rule(p)) // ','.key_value_pattern+
6664 &&
6665 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
6666 )
6667 {
6668 D(fprintf(stderr, "%*c+ items_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.key_value_pattern+ ','?"));
6669 _res = items;
6670 if (_res == NULL && PyErr_Occurred()) {
6671 p->error_indicator = 1;
6672 D(p->level--);
6673 return NULL;
6674 }
6675 goto done;
6676 }
6677 p->mark = _mark;
6678 D(fprintf(stderr, "%*c%s items_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6679 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.key_value_pattern+ ','?"));
6680 }
6681 _res = NULL;
6682 done:
6683 D(p->level--);
6684 return _res;
6685}
6686
6687// key_value_pattern: (literal_pattern | value_pattern) ':' pattern | double_star_pattern
6688static KeyValuePair*
6689key_value_pattern_rule(Parser *p)
6690{
6691 D(p->level++);
6692 if (p->error_indicator) {
6693 D(p->level--);
6694 return NULL;
6695 }
6696 KeyValuePair* _res = NULL;
6697 int _mark = p->mark;
6698 { // (literal_pattern | value_pattern) ':' pattern
6699 if (p->error_indicator) {
6700 D(p->level--);
6701 return NULL;
6702 }
6703 D(fprintf(stderr, "%*c> key_value_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(literal_pattern | value_pattern) ':' pattern"));
6704 Token * _literal;
6705 void *key;
6706 expr_ty value;
6707 if (
6708 (key = _tmp_61_rule(p)) // literal_pattern | value_pattern
6709 &&
6710 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
6711 &&
6712 (value = pattern_rule(p)) // pattern
6713 )
6714 {
6715 D(fprintf(stderr, "%*c+ key_value_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(literal_pattern | value_pattern) ':' pattern"));
6716 _res = _PyPegen_key_value_pair ( p , key , value );
6717 if (_res == NULL && PyErr_Occurred()) {
6718 p->error_indicator = 1;
6719 D(p->level--);
6720 return NULL;
6721 }
6722 goto done;
6723 }
6724 p->mark = _mark;
6725 D(fprintf(stderr, "%*c%s key_value_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6726 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(literal_pattern | value_pattern) ':' pattern"));
6727 }
6728 { // double_star_pattern
6729 if (p->error_indicator) {
6730 D(p->level--);
6731 return NULL;
6732 }
6733 D(fprintf(stderr, "%*c> key_value_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "double_star_pattern"));
6734 KeyValuePair* double_star_pattern_var;
6735 if (
6736 (double_star_pattern_var = double_star_pattern_rule(p)) // double_star_pattern
6737 )
6738 {
6739 D(fprintf(stderr, "%*c+ key_value_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "double_star_pattern"));
6740 _res = double_star_pattern_var;
6741 goto done;
6742 }
6743 p->mark = _mark;
6744 D(fprintf(stderr, "%*c%s key_value_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6745 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "double_star_pattern"));
6746 }
6747 _res = NULL;
6748 done:
6749 D(p->level--);
6750 return _res;
6751}
6752
6753// double_star_pattern: '**' capture_pattern
6754static KeyValuePair*
6755double_star_pattern_rule(Parser *p)
6756{
6757 D(p->level++);
6758 if (p->error_indicator) {
6759 D(p->level--);
6760 return NULL;
6761 }
6762 KeyValuePair* _res = NULL;
6763 int _mark = p->mark;
6764 { // '**' capture_pattern
6765 if (p->error_indicator) {
6766 D(p->level--);
6767 return NULL;
6768 }
6769 D(fprintf(stderr, "%*c> double_star_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' capture_pattern"));
6770 Token * _literal;
6771 expr_ty value;
6772 if (
6773 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
6774 &&
6775 (value = capture_pattern_rule(p)) // capture_pattern
6776 )
6777 {
6778 D(fprintf(stderr, "%*c+ double_star_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' capture_pattern"));
6779 _res = _PyPegen_key_value_pair ( p , NULL , value );
6780 if (_res == NULL && PyErr_Occurred()) {
6781 p->error_indicator = 1;
6782 D(p->level--);
6783 return NULL;
6784 }
6785 goto done;
6786 }
6787 p->mark = _mark;
6788 D(fprintf(stderr, "%*c%s double_star_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6789 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' capture_pattern"));
6790 }
6791 _res = NULL;
6792 done:
6793 D(p->level--);
6794 return _res;
6795}
6796
6797// class_pattern:
6798// | name_or_attr '(' ')'
6799// | name_or_attr '(' positional_patterns ','? ')'
6800// | name_or_attr '(' keyword_patterns ','? ')'
6801// | name_or_attr '(' positional_patterns ',' keyword_patterns ','? ')'
6802static expr_ty
6803class_pattern_rule(Parser *p)
6804{
6805 D(p->level++);
6806 if (p->error_indicator) {
6807 D(p->level--);
6808 return NULL;
6809 }
6810 expr_ty _res = NULL;
6811 int _mark = p->mark;
6812 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6813 p->error_indicator = 1;
6814 D(p->level--);
6815 return NULL;
6816 }
6817 int _start_lineno = p->tokens[_mark]->lineno;
6818 UNUSED(_start_lineno); // Only used by EXTRA macro
6819 int _start_col_offset = p->tokens[_mark]->col_offset;
6820 UNUSED(_start_col_offset); // Only used by EXTRA macro
6821 { // name_or_attr '(' ')'
6822 if (p->error_indicator) {
6823 D(p->level--);
6824 return NULL;
6825 }
6826 D(fprintf(stderr, "%*c> class_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' ')'"));
6827 Token * _literal;
6828 Token * _literal_1;
6829 expr_ty func;
6830 if (
6831 (func = name_or_attr_rule(p)) // name_or_attr
6832 &&
6833 (_literal = _PyPegen_expect_token(p, 7)) // token='('
6834 &&
6835 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
6836 )
6837 {
6838 D(fprintf(stderr, "%*c+ class_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' ')'"));
6839 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6840 if (_token == NULL) {
6841 D(p->level--);
6842 return NULL;
6843 }
6844 int _end_lineno = _token->end_lineno;
6845 UNUSED(_end_lineno); // Only used by EXTRA macro
6846 int _end_col_offset = _token->end_col_offset;
6847 UNUSED(_end_col_offset); // Only used by EXTRA macro
6848 _res = _Py_Call ( func , NULL , NULL , EXTRA );
6849 if (_res == NULL && PyErr_Occurred()) {
6850 p->error_indicator = 1;
6851 D(p->level--);
6852 return NULL;
6853 }
6854 goto done;
6855 }
6856 p->mark = _mark;
6857 D(fprintf(stderr, "%*c%s class_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6858 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "name_or_attr '(' ')'"));
6859 }
6860 { // name_or_attr '(' positional_patterns ','? ')'
6861 if (p->error_indicator) {
6862 D(p->level--);
6863 return NULL;
6864 }
6865 D(fprintf(stderr, "%*c> class_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' positional_patterns ','? ')'"));
6866 Token * _literal;
6867 Token * _literal_1;
6868 void *_opt_var;
6869 UNUSED(_opt_var); // Silence compiler warnings
6870 asdl_expr_seq* args;
6871 expr_ty func;
6872 if (
6873 (func = name_or_attr_rule(p)) // name_or_attr
6874 &&
6875 (_literal = _PyPegen_expect_token(p, 7)) // token='('
6876 &&
6877 (args = positional_patterns_rule(p)) // positional_patterns
6878 &&
6879 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
6880 &&
6881 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
6882 )
6883 {
6884 D(fprintf(stderr, "%*c+ class_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' positional_patterns ','? ')'"));
6885 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6886 if (_token == NULL) {
6887 D(p->level--);
6888 return NULL;
6889 }
6890 int _end_lineno = _token->end_lineno;
6891 UNUSED(_end_lineno); // Only used by EXTRA macro
6892 int _end_col_offset = _token->end_col_offset;
6893 UNUSED(_end_col_offset); // Only used by EXTRA macro
6894 _res = _Py_Call ( func , args , NULL , EXTRA );
6895 if (_res == NULL && PyErr_Occurred()) {
6896 p->error_indicator = 1;
6897 D(p->level--);
6898 return NULL;
6899 }
6900 goto done;
6901 }
6902 p->mark = _mark;
6903 D(fprintf(stderr, "%*c%s class_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6904 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "name_or_attr '(' positional_patterns ','? ')'"));
6905 }
6906 { // name_or_attr '(' keyword_patterns ','? ')'
6907 if (p->error_indicator) {
6908 D(p->level--);
6909 return NULL;
6910 }
6911 D(fprintf(stderr, "%*c> class_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' keyword_patterns ','? ')'"));
6912 Token * _literal;
6913 Token * _literal_1;
6914 void *_opt_var;
6915 UNUSED(_opt_var); // Silence compiler warnings
6916 expr_ty func;
6917 asdl_keyword_seq* keywords;
6918 if (
6919 (func = name_or_attr_rule(p)) // name_or_attr
6920 &&
6921 (_literal = _PyPegen_expect_token(p, 7)) // token='('
6922 &&
6923 (keywords = keyword_patterns_rule(p)) // keyword_patterns
6924 &&
6925 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
6926 &&
6927 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
6928 )
6929 {
6930 D(fprintf(stderr, "%*c+ class_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' keyword_patterns ','? ')'"));
6931 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6932 if (_token == NULL) {
6933 D(p->level--);
6934 return NULL;
6935 }
6936 int _end_lineno = _token->end_lineno;
6937 UNUSED(_end_lineno); // Only used by EXTRA macro
6938 int _end_col_offset = _token->end_col_offset;
6939 UNUSED(_end_col_offset); // Only used by EXTRA macro
6940 _res = _Py_Call ( func , NULL , keywords , EXTRA );
6941 if (_res == NULL && PyErr_Occurred()) {
6942 p->error_indicator = 1;
6943 D(p->level--);
6944 return NULL;
6945 }
6946 goto done;
6947 }
6948 p->mark = _mark;
6949 D(fprintf(stderr, "%*c%s class_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6950 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "name_or_attr '(' keyword_patterns ','? ')'"));
6951 }
6952 { // name_or_attr '(' positional_patterns ',' keyword_patterns ','? ')'
6953 if (p->error_indicator) {
6954 D(p->level--);
6955 return NULL;
6956 }
6957 D(fprintf(stderr, "%*c> class_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' positional_patterns ',' keyword_patterns ','? ')'"));
6958 Token * _literal;
6959 Token * _literal_1;
6960 Token * _literal_2;
6961 void *_opt_var;
6962 UNUSED(_opt_var); // Silence compiler warnings
6963 asdl_expr_seq* args;
6964 expr_ty func;
6965 asdl_keyword_seq* keywords;
6966 if (
6967 (func = name_or_attr_rule(p)) // name_or_attr
6968 &&
6969 (_literal = _PyPegen_expect_token(p, 7)) // token='('
6970 &&
6971 (args = positional_patterns_rule(p)) // positional_patterns
6972 &&
6973 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
6974 &&
6975 (keywords = keyword_patterns_rule(p)) // keyword_patterns
6976 &&
6977 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
6978 &&
6979 (_literal_2 = _PyPegen_expect_token(p, 8)) // token=')'
6980 )
6981 {
6982 D(fprintf(stderr, "%*c+ class_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' positional_patterns ',' keyword_patterns ','? ')'"));
6983 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6984 if (_token == NULL) {
6985 D(p->level--);
6986 return NULL;
6987 }
6988 int _end_lineno = _token->end_lineno;
6989 UNUSED(_end_lineno); // Only used by EXTRA macro
6990 int _end_col_offset = _token->end_col_offset;
6991 UNUSED(_end_col_offset); // Only used by EXTRA macro
6992 _res = _Py_Call ( func , args , keywords , EXTRA );
6993 if (_res == NULL && PyErr_Occurred()) {
6994 p->error_indicator = 1;
6995 D(p->level--);
6996 return NULL;
6997 }
6998 goto done;
6999 }
7000 p->mark = _mark;
7001 D(fprintf(stderr, "%*c%s class_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7002 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "name_or_attr '(' positional_patterns ',' keyword_patterns ','? ')'"));
7003 }
7004 _res = NULL;
7005 done:
7006 D(p->level--);
7007 return _res;
7008}
7009
7010// positional_patterns: ','.pattern+
7011static asdl_expr_seq*
7012positional_patterns_rule(Parser *p)
7013{
7014 D(p->level++);
7015 if (p->error_indicator) {
7016 D(p->level--);
7017 return NULL;
7018 }
7019 asdl_expr_seq* _res = NULL;
7020 int _mark = p->mark;
7021 { // ','.pattern+
7022 if (p->error_indicator) {
7023 D(p->level--);
7024 return NULL;
7025 }
7026 D(fprintf(stderr, "%*c> positional_patterns[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.pattern+"));
7027 asdl_expr_seq* args;
7028 if (
7029 (args = (asdl_expr_seq*)_gather_62_rule(p)) // ','.pattern+
7030 )
7031 {
7032 D(fprintf(stderr, "%*c+ positional_patterns[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.pattern+"));
7033 _res = args;
7034 if (_res == NULL && PyErr_Occurred()) {
7035 p->error_indicator = 1;
7036 D(p->level--);
7037 return NULL;
7038 }
7039 goto done;
7040 }
7041 p->mark = _mark;
7042 D(fprintf(stderr, "%*c%s positional_patterns[%d-%d]: %s failed!\n", p->level, ' ',
7043 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.pattern+"));
7044 }
7045 _res = NULL;
7046 done:
7047 D(p->level--);
7048 return _res;
7049}
7050
7051// keyword_patterns: ','.keyword_pattern+
7052static asdl_keyword_seq*
7053keyword_patterns_rule(Parser *p)
7054{
7055 D(p->level++);
7056 if (p->error_indicator) {
7057 D(p->level--);
7058 return NULL;
7059 }
7060 asdl_keyword_seq* _res = NULL;
7061 int _mark = p->mark;
7062 { // ','.keyword_pattern+
7063 if (p->error_indicator) {
7064 D(p->level--);
7065 return NULL;
7066 }
7067 D(fprintf(stderr, "%*c> keyword_patterns[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.keyword_pattern+"));
7068 asdl_keyword_seq* keywords;
7069 if (
7070 (keywords = (asdl_keyword_seq*)_gather_64_rule(p)) // ','.keyword_pattern+
7071 )
7072 {
7073 D(fprintf(stderr, "%*c+ keyword_patterns[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.keyword_pattern+"));
7074 _res = keywords;
7075 if (_res == NULL && PyErr_Occurred()) {
7076 p->error_indicator = 1;
7077 D(p->level--);
7078 return NULL;
7079 }
7080 goto done;
7081 }
7082 p->mark = _mark;
7083 D(fprintf(stderr, "%*c%s keyword_patterns[%d-%d]: %s failed!\n", p->level, ' ',
7084 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.keyword_pattern+"));
7085 }
7086 _res = NULL;
7087 done:
7088 D(p->level--);
7089 return _res;
7090}
7091
7092// keyword_pattern: NAME '=' pattern
7093static keyword_ty
7094keyword_pattern_rule(Parser *p)
7095{
7096 D(p->level++);
7097 if (p->error_indicator) {
7098 D(p->level--);
7099 return NULL;
7100 }
7101 keyword_ty _res = NULL;
7102 int _mark = p->mark;
7103 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
7104 p->error_indicator = 1;
7105 D(p->level--);
7106 return NULL;
7107 }
7108 int _start_lineno = p->tokens[_mark]->lineno;
7109 UNUSED(_start_lineno); // Only used by EXTRA macro
7110 int _start_col_offset = p->tokens[_mark]->col_offset;
7111 UNUSED(_start_col_offset); // Only used by EXTRA macro
7112 { // NAME '=' pattern
7113 if (p->error_indicator) {
7114 D(p->level--);
7115 return NULL;
7116 }
7117 D(fprintf(stderr, "%*c> keyword_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '=' pattern"));
7118 Token * _literal;
7119 expr_ty arg;
7120 expr_ty value;
7121 if (
7122 (arg = _PyPegen_name_token(p)) // NAME
7123 &&
7124 (_literal = _PyPegen_expect_token(p, 22)) // token='='
7125 &&
7126 (value = pattern_rule(p)) // pattern
7127 )
7128 {
7129 D(fprintf(stderr, "%*c+ keyword_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '=' pattern"));
7130 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7131 if (_token == NULL) {
7132 D(p->level--);
7133 return NULL;
7134 }
7135 int _end_lineno = _token->end_lineno;
7136 UNUSED(_end_lineno); // Only used by EXTRA macro
7137 int _end_col_offset = _token->end_col_offset;
7138 UNUSED(_end_col_offset); // Only used by EXTRA macro
7139 _res = _Py_keyword ( arg -> v . Name . id , value , EXTRA );
7140 if (_res == NULL && PyErr_Occurred()) {
7141 p->error_indicator = 1;
7142 D(p->level--);
7143 return NULL;
7144 }
7145 goto done;
7146 }
7147 p->mark = _mark;
7148 D(fprintf(stderr, "%*c%s keyword_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7149 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' pattern"));
7150 }
7151 _res = NULL;
7152 done:
7153 D(p->level--);
7154 return _res;
7155}
7156
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007157// return_stmt: 'return' star_expressions?
7158static stmt_ty
7159return_stmt_rule(Parser *p)
7160{
7161 D(p->level++);
7162 if (p->error_indicator) {
7163 D(p->level--);
7164 return NULL;
7165 }
7166 stmt_ty _res = NULL;
7167 int _mark = p->mark;
7168 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
7169 p->error_indicator = 1;
7170 D(p->level--);
7171 return NULL;
7172 }
7173 int _start_lineno = p->tokens[_mark]->lineno;
7174 UNUSED(_start_lineno); // Only used by EXTRA macro
7175 int _start_col_offset = p->tokens[_mark]->col_offset;
7176 UNUSED(_start_col_offset); // Only used by EXTRA macro
7177 { // 'return' star_expressions?
7178 if (p->error_indicator) {
7179 D(p->level--);
7180 return NULL;
7181 }
7182 D(fprintf(stderr, "%*c> return_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'return' star_expressions?"));
7183 Token * _keyword;
7184 void *a;
7185 if (
7186 (_keyword = _PyPegen_expect_token(p, 500)) // token='return'
7187 &&
7188 (a = star_expressions_rule(p), 1) // star_expressions?
7189 )
7190 {
7191 D(fprintf(stderr, "%*c+ return_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'return' star_expressions?"));
7192 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7193 if (_token == NULL) {
7194 D(p->level--);
7195 return NULL;
7196 }
7197 int _end_lineno = _token->end_lineno;
7198 UNUSED(_end_lineno); // Only used by EXTRA macro
7199 int _end_col_offset = _token->end_col_offset;
7200 UNUSED(_end_col_offset); // Only used by EXTRA macro
7201 _res = _Py_Return ( a , EXTRA );
7202 if (_res == NULL && PyErr_Occurred()) {
7203 p->error_indicator = 1;
7204 D(p->level--);
7205 return NULL;
7206 }
7207 goto done;
7208 }
7209 p->mark = _mark;
7210 D(fprintf(stderr, "%*c%s return_stmt[%d-%d]: %s failed!\n", p->level, ' ',
7211 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'return' star_expressions?"));
7212 }
7213 _res = NULL;
7214 done:
7215 D(p->level--);
7216 return _res;
7217}
7218
7219// raise_stmt: 'raise' expression ['from' expression] | 'raise'
7220static stmt_ty
7221raise_stmt_rule(Parser *p)
7222{
7223 D(p->level++);
7224 if (p->error_indicator) {
7225 D(p->level--);
7226 return NULL;
7227 }
7228 stmt_ty _res = NULL;
7229 int _mark = p->mark;
7230 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
7231 p->error_indicator = 1;
7232 D(p->level--);
7233 return NULL;
7234 }
7235 int _start_lineno = p->tokens[_mark]->lineno;
7236 UNUSED(_start_lineno); // Only used by EXTRA macro
7237 int _start_col_offset = p->tokens[_mark]->col_offset;
7238 UNUSED(_start_col_offset); // Only used by EXTRA macro
7239 { // 'raise' expression ['from' expression]
7240 if (p->error_indicator) {
7241 D(p->level--);
7242 return NULL;
7243 }
7244 D(fprintf(stderr, "%*c> raise_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'raise' expression ['from' expression]"));
7245 Token * _keyword;
7246 expr_ty a;
7247 void *b;
7248 if (
7249 (_keyword = _PyPegen_expect_token(p, 501)) // token='raise'
7250 &&
7251 (a = expression_rule(p)) // expression
7252 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08007253 (b = _tmp_66_rule(p), 1) // ['from' expression]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007254 )
7255 {
7256 D(fprintf(stderr, "%*c+ raise_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'raise' expression ['from' expression]"));
7257 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7258 if (_token == NULL) {
7259 D(p->level--);
7260 return NULL;
7261 }
7262 int _end_lineno = _token->end_lineno;
7263 UNUSED(_end_lineno); // Only used by EXTRA macro
7264 int _end_col_offset = _token->end_col_offset;
7265 UNUSED(_end_col_offset); // Only used by EXTRA macro
7266 _res = _Py_Raise ( a , b , EXTRA );
7267 if (_res == NULL && PyErr_Occurred()) {
7268 p->error_indicator = 1;
7269 D(p->level--);
7270 return NULL;
7271 }
7272 goto done;
7273 }
7274 p->mark = _mark;
7275 D(fprintf(stderr, "%*c%s raise_stmt[%d-%d]: %s failed!\n", p->level, ' ',
7276 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'raise' expression ['from' expression]"));
7277 }
7278 { // 'raise'
7279 if (p->error_indicator) {
7280 D(p->level--);
7281 return NULL;
7282 }
7283 D(fprintf(stderr, "%*c> raise_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'raise'"));
7284 Token * _keyword;
7285 if (
7286 (_keyword = _PyPegen_expect_token(p, 501)) // token='raise'
7287 )
7288 {
7289 D(fprintf(stderr, "%*c+ raise_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'raise'"));
7290 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7291 if (_token == NULL) {
7292 D(p->level--);
7293 return NULL;
7294 }
7295 int _end_lineno = _token->end_lineno;
7296 UNUSED(_end_lineno); // Only used by EXTRA macro
7297 int _end_col_offset = _token->end_col_offset;
7298 UNUSED(_end_col_offset); // Only used by EXTRA macro
7299 _res = _Py_Raise ( NULL , NULL , EXTRA );
7300 if (_res == NULL && PyErr_Occurred()) {
7301 p->error_indicator = 1;
7302 D(p->level--);
7303 return NULL;
7304 }
7305 goto done;
7306 }
7307 p->mark = _mark;
7308 D(fprintf(stderr, "%*c%s raise_stmt[%d-%d]: %s failed!\n", p->level, ' ',
7309 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'raise'"));
7310 }
7311 _res = NULL;
7312 done:
7313 D(p->level--);
7314 return _res;
7315}
7316
7317// function_def: decorators function_def_raw | function_def_raw
7318static stmt_ty
7319function_def_rule(Parser *p)
7320{
7321 D(p->level++);
7322 if (p->error_indicator) {
7323 D(p->level--);
7324 return NULL;
7325 }
7326 stmt_ty _res = NULL;
7327 int _mark = p->mark;
7328 { // decorators function_def_raw
7329 if (p->error_indicator) {
7330 D(p->level--);
7331 return NULL;
7332 }
7333 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 +01007334 asdl_expr_seq* d;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007335 stmt_ty f;
7336 if (
7337 (d = decorators_rule(p)) // decorators
7338 &&
7339 (f = function_def_raw_rule(p)) // function_def_raw
7340 )
7341 {
7342 D(fprintf(stderr, "%*c+ function_def[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "decorators function_def_raw"));
7343 _res = _PyPegen_function_def_decorators ( p , d , f );
7344 if (_res == NULL && PyErr_Occurred()) {
7345 p->error_indicator = 1;
7346 D(p->level--);
7347 return NULL;
7348 }
7349 goto done;
7350 }
7351 p->mark = _mark;
7352 D(fprintf(stderr, "%*c%s function_def[%d-%d]: %s failed!\n", p->level, ' ',
7353 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "decorators function_def_raw"));
7354 }
7355 { // function_def_raw
7356 if (p->error_indicator) {
7357 D(p->level--);
7358 return NULL;
7359 }
7360 D(fprintf(stderr, "%*c> function_def[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "function_def_raw"));
7361 stmt_ty function_def_raw_var;
7362 if (
7363 (function_def_raw_var = function_def_raw_rule(p)) // function_def_raw
7364 )
7365 {
7366 D(fprintf(stderr, "%*c+ function_def[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "function_def_raw"));
7367 _res = function_def_raw_var;
7368 goto done;
7369 }
7370 p->mark = _mark;
7371 D(fprintf(stderr, "%*c%s function_def[%d-%d]: %s failed!\n", p->level, ' ',
7372 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "function_def_raw"));
7373 }
7374 _res = NULL;
7375 done:
7376 D(p->level--);
7377 return _res;
7378}
7379
7380// function_def_raw:
Pablo Galindo58fb1562021-02-02 19:54:22 +00007381// | 'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block
7382// | ASYNC 'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007383static stmt_ty
7384function_def_raw_rule(Parser *p)
7385{
7386 D(p->level++);
7387 if (p->error_indicator) {
7388 D(p->level--);
7389 return NULL;
7390 }
7391 stmt_ty _res = NULL;
7392 int _mark = p->mark;
7393 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
7394 p->error_indicator = 1;
7395 D(p->level--);
7396 return NULL;
7397 }
7398 int _start_lineno = p->tokens[_mark]->lineno;
7399 UNUSED(_start_lineno); // Only used by EXTRA macro
7400 int _start_col_offset = p->tokens[_mark]->col_offset;
7401 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo58fb1562021-02-02 19:54:22 +00007402 { // 'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007403 if (p->error_indicator) {
7404 D(p->level--);
7405 return NULL;
7406 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00007407 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 +01007408 Token * _keyword;
7409 Token * _literal;
7410 Token * _literal_1;
7411 Token * _literal_2;
7412 void *a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01007413 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007414 expr_ty n;
7415 void *params;
7416 void *tc;
7417 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08007418 (_keyword = _PyPegen_expect_token(p, 526)) // token='def'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007419 &&
7420 (n = _PyPegen_name_token(p)) // NAME
7421 &&
7422 (_literal = _PyPegen_expect_token(p, 7)) // token='('
7423 &&
7424 (params = params_rule(p), 1) // params?
7425 &&
7426 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
7427 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08007428 (a = _tmp_67_rule(p), 1) // ['->' expression]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007429 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00007430 (_literal_2 = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007431 &&
7432 (tc = func_type_comment_rule(p), 1) // func_type_comment?
7433 &&
7434 (b = block_rule(p)) // block
7435 )
7436 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00007437 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 +01007438 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7439 if (_token == NULL) {
7440 D(p->level--);
7441 return NULL;
7442 }
7443 int _end_lineno = _token->end_lineno;
7444 UNUSED(_end_lineno); // Only used by EXTRA macro
7445 int _end_col_offset = _token->end_col_offset;
7446 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03007447 _res = _Py_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 +01007448 if (_res == NULL && PyErr_Occurred()) {
7449 p->error_indicator = 1;
7450 D(p->level--);
7451 return NULL;
7452 }
7453 goto done;
7454 }
7455 p->mark = _mark;
7456 D(fprintf(stderr, "%*c%s function_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00007457 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007458 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00007459 { // ASYNC 'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007460 if (p->error_indicator) {
7461 D(p->level--);
7462 return NULL;
7463 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00007464 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 +01007465 Token * _keyword;
7466 Token * _literal;
7467 Token * _literal_1;
7468 Token * _literal_2;
7469 void *a;
7470 Token * async_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +01007471 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007472 expr_ty n;
7473 void *params;
7474 void *tc;
7475 if (
7476 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
7477 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08007478 (_keyword = _PyPegen_expect_token(p, 526)) // token='def'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007479 &&
7480 (n = _PyPegen_name_token(p)) // NAME
7481 &&
7482 (_literal = _PyPegen_expect_token(p, 7)) // token='('
7483 &&
7484 (params = params_rule(p), 1) // params?
7485 &&
7486 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
7487 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08007488 (a = _tmp_68_rule(p), 1) // ['->' expression]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007489 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00007490 (_literal_2 = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007491 &&
7492 (tc = func_type_comment_rule(p), 1) // func_type_comment?
7493 &&
7494 (b = block_rule(p)) // block
7495 )
7496 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00007497 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 +01007498 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7499 if (_token == NULL) {
7500 D(p->level--);
7501 return NULL;
7502 }
7503 int _end_lineno = _token->end_lineno;
7504 UNUSED(_end_lineno); // Only used by EXTRA macro
7505 int _end_col_offset = _token->end_col_offset;
7506 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03007507 _res = CHECK_VERSION ( stmt_ty , 5 , "Async functions are" , _Py_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 +01007508 if (_res == NULL && PyErr_Occurred()) {
7509 p->error_indicator = 1;
7510 D(p->level--);
7511 return NULL;
7512 }
7513 goto done;
7514 }
7515 p->mark = _mark;
7516 D(fprintf(stderr, "%*c%s function_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00007517 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007518 }
7519 _res = NULL;
7520 done:
7521 D(p->level--);
7522 return _res;
7523}
7524
7525// func_type_comment:
7526// | NEWLINE TYPE_COMMENT &(NEWLINE INDENT)
7527// | invalid_double_type_comments
7528// | TYPE_COMMENT
7529static Token*
7530func_type_comment_rule(Parser *p)
7531{
7532 D(p->level++);
7533 if (p->error_indicator) {
7534 D(p->level--);
7535 return NULL;
7536 }
7537 Token* _res = NULL;
7538 int _mark = p->mark;
7539 { // NEWLINE TYPE_COMMENT &(NEWLINE INDENT)
7540 if (p->error_indicator) {
7541 D(p->level--);
7542 return NULL;
7543 }
7544 D(fprintf(stderr, "%*c> func_type_comment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE TYPE_COMMENT &(NEWLINE INDENT)"));
7545 Token * newline_var;
7546 Token * t;
7547 if (
7548 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
7549 &&
7550 (t = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
7551 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08007552 _PyPegen_lookahead(1, _tmp_69_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007553 )
7554 {
7555 D(fprintf(stderr, "%*c+ func_type_comment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE TYPE_COMMENT &(NEWLINE INDENT)"));
7556 _res = t;
7557 if (_res == NULL && PyErr_Occurred()) {
7558 p->error_indicator = 1;
7559 D(p->level--);
7560 return NULL;
7561 }
7562 goto done;
7563 }
7564 p->mark = _mark;
7565 D(fprintf(stderr, "%*c%s func_type_comment[%d-%d]: %s failed!\n", p->level, ' ',
7566 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE TYPE_COMMENT &(NEWLINE INDENT)"));
7567 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02007568 if (p->call_invalid_rules) { // invalid_double_type_comments
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007569 if (p->error_indicator) {
7570 D(p->level--);
7571 return NULL;
7572 }
7573 D(fprintf(stderr, "%*c> func_type_comment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_double_type_comments"));
7574 void *invalid_double_type_comments_var;
7575 if (
7576 (invalid_double_type_comments_var = invalid_double_type_comments_rule(p)) // invalid_double_type_comments
7577 )
7578 {
7579 D(fprintf(stderr, "%*c+ func_type_comment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_double_type_comments"));
7580 _res = invalid_double_type_comments_var;
7581 goto done;
7582 }
7583 p->mark = _mark;
7584 D(fprintf(stderr, "%*c%s func_type_comment[%d-%d]: %s failed!\n", p->level, ' ',
7585 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_double_type_comments"));
7586 }
7587 { // TYPE_COMMENT
7588 if (p->error_indicator) {
7589 D(p->level--);
7590 return NULL;
7591 }
7592 D(fprintf(stderr, "%*c> func_type_comment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "TYPE_COMMENT"));
7593 Token * type_comment_var;
7594 if (
7595 (type_comment_var = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
7596 )
7597 {
7598 D(fprintf(stderr, "%*c+ func_type_comment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "TYPE_COMMENT"));
7599 _res = type_comment_var;
7600 goto done;
7601 }
7602 p->mark = _mark;
7603 D(fprintf(stderr, "%*c%s func_type_comment[%d-%d]: %s failed!\n", p->level, ' ',
7604 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "TYPE_COMMENT"));
7605 }
7606 _res = NULL;
7607 done:
7608 D(p->level--);
7609 return _res;
7610}
7611
7612// params: invalid_parameters | parameters
7613static arguments_ty
7614params_rule(Parser *p)
7615{
7616 D(p->level++);
7617 if (p->error_indicator) {
7618 D(p->level--);
7619 return NULL;
7620 }
7621 arguments_ty _res = NULL;
7622 int _mark = p->mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02007623 if (p->call_invalid_rules) { // invalid_parameters
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007624 if (p->error_indicator) {
7625 D(p->level--);
7626 return NULL;
7627 }
7628 D(fprintf(stderr, "%*c> params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_parameters"));
7629 void *invalid_parameters_var;
7630 if (
7631 (invalid_parameters_var = invalid_parameters_rule(p)) // invalid_parameters
7632 )
7633 {
7634 D(fprintf(stderr, "%*c+ params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_parameters"));
7635 _res = invalid_parameters_var;
7636 goto done;
7637 }
7638 p->mark = _mark;
7639 D(fprintf(stderr, "%*c%s params[%d-%d]: %s failed!\n", p->level, ' ',
7640 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_parameters"));
7641 }
7642 { // parameters
7643 if (p->error_indicator) {
7644 D(p->level--);
7645 return NULL;
7646 }
7647 D(fprintf(stderr, "%*c> params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "parameters"));
7648 arguments_ty parameters_var;
7649 if (
7650 (parameters_var = parameters_rule(p)) // parameters
7651 )
7652 {
7653 D(fprintf(stderr, "%*c+ params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "parameters"));
7654 _res = parameters_var;
7655 goto done;
7656 }
7657 p->mark = _mark;
7658 D(fprintf(stderr, "%*c%s params[%d-%d]: %s failed!\n", p->level, ' ',
7659 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "parameters"));
7660 }
7661 _res = NULL;
7662 done:
7663 D(p->level--);
7664 return _res;
7665}
7666
7667// parameters:
7668// | slash_no_default param_no_default* param_with_default* star_etc?
7669// | slash_with_default param_with_default* star_etc?
7670// | param_no_default+ param_with_default* star_etc?
7671// | param_with_default+ star_etc?
7672// | star_etc
7673static arguments_ty
7674parameters_rule(Parser *p)
7675{
7676 D(p->level++);
7677 if (p->error_indicator) {
7678 D(p->level--);
7679 return NULL;
7680 }
7681 arguments_ty _res = NULL;
7682 int _mark = p->mark;
7683 { // slash_no_default param_no_default* param_with_default* star_etc?
7684 if (p->error_indicator) {
7685 D(p->level--);
7686 return NULL;
7687 }
7688 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 +01007689 asdl_arg_seq* a;
7690 asdl_arg_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007691 asdl_seq * c;
7692 void *d;
7693 if (
7694 (a = slash_no_default_rule(p)) // slash_no_default
7695 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08007696 (b = (asdl_arg_seq*)_loop0_70_rule(p)) // param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007697 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08007698 (c = _loop0_71_rule(p)) // param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007699 &&
7700 (d = star_etc_rule(p), 1) // star_etc?
7701 )
7702 {
7703 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?"));
7704 _res = _PyPegen_make_arguments ( p , a , NULL , b , c , d );
7705 if (_res == NULL && PyErr_Occurred()) {
7706 p->error_indicator = 1;
7707 D(p->level--);
7708 return NULL;
7709 }
7710 goto done;
7711 }
7712 p->mark = _mark;
7713 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
7714 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_no_default param_no_default* param_with_default* star_etc?"));
7715 }
7716 { // slash_with_default param_with_default* star_etc?
7717 if (p->error_indicator) {
7718 D(p->level--);
7719 return NULL;
7720 }
7721 D(fprintf(stderr, "%*c> parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slash_with_default param_with_default* star_etc?"));
7722 SlashWithDefault* a;
7723 asdl_seq * b;
7724 void *c;
7725 if (
7726 (a = slash_with_default_rule(p)) // slash_with_default
7727 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08007728 (b = _loop0_72_rule(p)) // param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007729 &&
7730 (c = star_etc_rule(p), 1) // star_etc?
7731 )
7732 {
7733 D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slash_with_default param_with_default* star_etc?"));
7734 _res = _PyPegen_make_arguments ( p , NULL , a , NULL , b , c );
7735 if (_res == NULL && PyErr_Occurred()) {
7736 p->error_indicator = 1;
7737 D(p->level--);
7738 return NULL;
7739 }
7740 goto done;
7741 }
7742 p->mark = _mark;
7743 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
7744 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_with_default param_with_default* star_etc?"));
7745 }
7746 { // param_no_default+ param_with_default* star_etc?
7747 if (p->error_indicator) {
7748 D(p->level--);
7749 return NULL;
7750 }
7751 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 +01007752 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007753 asdl_seq * b;
7754 void *c;
7755 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08007756 (a = (asdl_arg_seq*)_loop1_73_rule(p)) // param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007757 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08007758 (b = _loop0_74_rule(p)) // param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007759 &&
7760 (c = star_etc_rule(p), 1) // star_etc?
7761 )
7762 {
7763 D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default+ param_with_default* star_etc?"));
7764 _res = _PyPegen_make_arguments ( p , NULL , NULL , a , b , c );
7765 if (_res == NULL && PyErr_Occurred()) {
7766 p->error_indicator = 1;
7767 D(p->level--);
7768 return NULL;
7769 }
7770 goto done;
7771 }
7772 p->mark = _mark;
7773 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
7774 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default+ param_with_default* star_etc?"));
7775 }
7776 { // param_with_default+ star_etc?
7777 if (p->error_indicator) {
7778 D(p->level--);
7779 return NULL;
7780 }
7781 D(fprintf(stderr, "%*c> parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default+ star_etc?"));
7782 asdl_seq * a;
7783 void *b;
7784 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08007785 (a = _loop1_75_rule(p)) // param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007786 &&
7787 (b = star_etc_rule(p), 1) // star_etc?
7788 )
7789 {
7790 D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_with_default+ star_etc?"));
7791 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , a , b );
7792 if (_res == NULL && PyErr_Occurred()) {
7793 p->error_indicator = 1;
7794 D(p->level--);
7795 return NULL;
7796 }
7797 goto done;
7798 }
7799 p->mark = _mark;
7800 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
7801 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default+ star_etc?"));
7802 }
7803 { // star_etc
7804 if (p->error_indicator) {
7805 D(p->level--);
7806 return NULL;
7807 }
7808 D(fprintf(stderr, "%*c> parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_etc"));
7809 StarEtc* a;
7810 if (
7811 (a = star_etc_rule(p)) // star_etc
7812 )
7813 {
7814 D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_etc"));
7815 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , NULL , a );
7816 if (_res == NULL && PyErr_Occurred()) {
7817 p->error_indicator = 1;
7818 D(p->level--);
7819 return NULL;
7820 }
7821 goto done;
7822 }
7823 p->mark = _mark;
7824 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
7825 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_etc"));
7826 }
7827 _res = NULL;
7828 done:
7829 D(p->level--);
7830 return _res;
7831}
7832
7833// slash_no_default: param_no_default+ '/' ',' | param_no_default+ '/' &')'
Pablo Galindoa5634c42020-09-16 19:42:00 +01007834static asdl_arg_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007835slash_no_default_rule(Parser *p)
7836{
7837 D(p->level++);
7838 if (p->error_indicator) {
7839 D(p->level--);
7840 return NULL;
7841 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01007842 asdl_arg_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007843 int _mark = p->mark;
7844 { // param_no_default+ '/' ','
7845 if (p->error_indicator) {
7846 D(p->level--);
7847 return NULL;
7848 }
7849 D(fprintf(stderr, "%*c> slash_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default+ '/' ','"));
7850 Token * _literal;
7851 Token * _literal_1;
Pablo Galindoa5634c42020-09-16 19:42:00 +01007852 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007853 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08007854 (a = (asdl_arg_seq*)_loop1_76_rule(p)) // param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007855 &&
7856 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
7857 &&
7858 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
7859 )
7860 {
7861 D(fprintf(stderr, "%*c+ slash_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default+ '/' ','"));
7862 _res = a;
7863 if (_res == NULL && PyErr_Occurred()) {
7864 p->error_indicator = 1;
7865 D(p->level--);
7866 return NULL;
7867 }
7868 goto done;
7869 }
7870 p->mark = _mark;
7871 D(fprintf(stderr, "%*c%s slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
7872 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default+ '/' ','"));
7873 }
7874 { // param_no_default+ '/' &')'
7875 if (p->error_indicator) {
7876 D(p->level--);
7877 return NULL;
7878 }
7879 D(fprintf(stderr, "%*c> slash_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default+ '/' &')'"));
7880 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01007881 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007882 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08007883 (a = (asdl_arg_seq*)_loop1_77_rule(p)) // param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007884 &&
7885 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
7886 &&
7887 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
7888 )
7889 {
7890 D(fprintf(stderr, "%*c+ slash_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default+ '/' &')'"));
7891 _res = a;
7892 if (_res == NULL && PyErr_Occurred()) {
7893 p->error_indicator = 1;
7894 D(p->level--);
7895 return NULL;
7896 }
7897 goto done;
7898 }
7899 p->mark = _mark;
7900 D(fprintf(stderr, "%*c%s slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
7901 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default+ '/' &')'"));
7902 }
7903 _res = NULL;
7904 done:
7905 D(p->level--);
7906 return _res;
7907}
7908
7909// slash_with_default:
7910// | param_no_default* param_with_default+ '/' ','
7911// | param_no_default* param_with_default+ '/' &')'
7912static SlashWithDefault*
7913slash_with_default_rule(Parser *p)
7914{
7915 D(p->level++);
7916 if (p->error_indicator) {
7917 D(p->level--);
7918 return NULL;
7919 }
7920 SlashWithDefault* _res = NULL;
7921 int _mark = p->mark;
7922 { // param_no_default* param_with_default+ '/' ','
7923 if (p->error_indicator) {
7924 D(p->level--);
7925 return NULL;
7926 }
7927 D(fprintf(stderr, "%*c> slash_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default* param_with_default+ '/' ','"));
7928 Token * _literal;
7929 Token * _literal_1;
7930 asdl_seq * a;
7931 asdl_seq * b;
7932 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08007933 (a = _loop0_78_rule(p)) // param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007934 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08007935 (b = _loop1_79_rule(p)) // param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007936 &&
7937 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
7938 &&
7939 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
7940 )
7941 {
7942 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 +01007943 _res = _PyPegen_slash_with_default ( p , ( asdl_arg_seq * ) a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007944 if (_res == NULL && PyErr_Occurred()) {
7945 p->error_indicator = 1;
7946 D(p->level--);
7947 return NULL;
7948 }
7949 goto done;
7950 }
7951 p->mark = _mark;
7952 D(fprintf(stderr, "%*c%s slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
7953 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default* param_with_default+ '/' ','"));
7954 }
7955 { // param_no_default* param_with_default+ '/' &')'
7956 if (p->error_indicator) {
7957 D(p->level--);
7958 return NULL;
7959 }
7960 D(fprintf(stderr, "%*c> slash_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default* param_with_default+ '/' &')'"));
7961 Token * _literal;
7962 asdl_seq * a;
7963 asdl_seq * b;
7964 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08007965 (a = _loop0_80_rule(p)) // param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007966 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08007967 (b = _loop1_81_rule(p)) // param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007968 &&
7969 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
7970 &&
7971 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
7972 )
7973 {
7974 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 +01007975 _res = _PyPegen_slash_with_default ( p , ( asdl_arg_seq * ) a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007976 if (_res == NULL && PyErr_Occurred()) {
7977 p->error_indicator = 1;
7978 D(p->level--);
7979 return NULL;
7980 }
7981 goto done;
7982 }
7983 p->mark = _mark;
7984 D(fprintf(stderr, "%*c%s slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
7985 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default* param_with_default+ '/' &')'"));
7986 }
7987 _res = NULL;
7988 done:
7989 D(p->level--);
7990 return _res;
7991}
7992
7993// star_etc:
7994// | '*' param_no_default param_maybe_default* kwds?
7995// | '*' ',' param_maybe_default+ kwds?
7996// | kwds
7997// | invalid_star_etc
7998static StarEtc*
7999star_etc_rule(Parser *p)
8000{
8001 D(p->level++);
8002 if (p->error_indicator) {
8003 D(p->level--);
8004 return NULL;
8005 }
8006 StarEtc* _res = NULL;
8007 int _mark = p->mark;
8008 { // '*' param_no_default param_maybe_default* kwds?
8009 if (p->error_indicator) {
8010 D(p->level--);
8011 return NULL;
8012 }
8013 D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' param_no_default param_maybe_default* kwds?"));
8014 Token * _literal;
8015 arg_ty a;
8016 asdl_seq * b;
8017 void *c;
8018 if (
8019 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
8020 &&
8021 (a = param_no_default_rule(p)) // param_no_default
8022 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008023 (b = _loop0_82_rule(p)) // param_maybe_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008024 &&
8025 (c = kwds_rule(p), 1) // kwds?
8026 )
8027 {
8028 D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' param_no_default param_maybe_default* kwds?"));
8029 _res = _PyPegen_star_etc ( p , a , b , c );
8030 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 star_etc[%d-%d]: %s failed!\n", p->level, ' ',
8039 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' param_no_default param_maybe_default* kwds?"));
8040 }
8041 { // '*' ',' param_maybe_default+ kwds?
8042 if (p->error_indicator) {
8043 D(p->level--);
8044 return NULL;
8045 }
8046 D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' ',' param_maybe_default+ kwds?"));
8047 Token * _literal;
8048 Token * _literal_1;
8049 asdl_seq * b;
8050 void *c;
8051 if (
8052 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
8053 &&
8054 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
8055 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008056 (b = _loop1_83_rule(p)) // param_maybe_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008057 &&
8058 (c = kwds_rule(p), 1) // kwds?
8059 )
8060 {
8061 D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' ',' param_maybe_default+ kwds?"));
8062 _res = _PyPegen_star_etc ( p , NULL , b , c );
8063 if (_res == NULL && PyErr_Occurred()) {
8064 p->error_indicator = 1;
8065 D(p->level--);
8066 return NULL;
8067 }
8068 goto done;
8069 }
8070 p->mark = _mark;
8071 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
8072 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' ',' param_maybe_default+ kwds?"));
8073 }
8074 { // kwds
8075 if (p->error_indicator) {
8076 D(p->level--);
8077 return NULL;
8078 }
8079 D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwds"));
8080 arg_ty a;
8081 if (
8082 (a = kwds_rule(p)) // kwds
8083 )
8084 {
8085 D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwds"));
8086 _res = _PyPegen_star_etc ( p , NULL , NULL , a );
8087 if (_res == NULL && PyErr_Occurred()) {
8088 p->error_indicator = 1;
8089 D(p->level--);
8090 return NULL;
8091 }
8092 goto done;
8093 }
8094 p->mark = _mark;
8095 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
8096 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwds"));
8097 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02008098 if (p->call_invalid_rules) { // invalid_star_etc
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008099 if (p->error_indicator) {
8100 D(p->level--);
8101 return NULL;
8102 }
8103 D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_star_etc"));
8104 void *invalid_star_etc_var;
8105 if (
8106 (invalid_star_etc_var = invalid_star_etc_rule(p)) // invalid_star_etc
8107 )
8108 {
8109 D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_star_etc"));
8110 _res = invalid_star_etc_var;
8111 goto done;
8112 }
8113 p->mark = _mark;
8114 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
8115 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_star_etc"));
8116 }
8117 _res = NULL;
8118 done:
8119 D(p->level--);
8120 return _res;
8121}
8122
8123// kwds: '**' param_no_default
8124static arg_ty
8125kwds_rule(Parser *p)
8126{
8127 D(p->level++);
8128 if (p->error_indicator) {
8129 D(p->level--);
8130 return NULL;
8131 }
8132 arg_ty _res = NULL;
8133 int _mark = p->mark;
8134 { // '**' param_no_default
8135 if (p->error_indicator) {
8136 D(p->level--);
8137 return NULL;
8138 }
8139 D(fprintf(stderr, "%*c> kwds[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' param_no_default"));
8140 Token * _literal;
8141 arg_ty a;
8142 if (
8143 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
8144 &&
8145 (a = param_no_default_rule(p)) // param_no_default
8146 )
8147 {
8148 D(fprintf(stderr, "%*c+ kwds[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' param_no_default"));
8149 _res = a;
8150 if (_res == NULL && PyErr_Occurred()) {
8151 p->error_indicator = 1;
8152 D(p->level--);
8153 return NULL;
8154 }
8155 goto done;
8156 }
8157 p->mark = _mark;
8158 D(fprintf(stderr, "%*c%s kwds[%d-%d]: %s failed!\n", p->level, ' ',
8159 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' param_no_default"));
8160 }
8161 _res = NULL;
8162 done:
8163 D(p->level--);
8164 return _res;
8165}
8166
8167// param_no_default: param ',' TYPE_COMMENT? | param TYPE_COMMENT? &')'
8168static arg_ty
8169param_no_default_rule(Parser *p)
8170{
8171 D(p->level++);
8172 if (p->error_indicator) {
8173 D(p->level--);
8174 return NULL;
8175 }
8176 arg_ty _res = NULL;
8177 int _mark = p->mark;
8178 { // param ',' TYPE_COMMENT?
8179 if (p->error_indicator) {
8180 D(p->level--);
8181 return NULL;
8182 }
8183 D(fprintf(stderr, "%*c> param_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param ',' TYPE_COMMENT?"));
8184 Token * _literal;
8185 arg_ty a;
8186 void *tc;
8187 if (
8188 (a = param_rule(p)) // param
8189 &&
8190 (_literal = _PyPegen_expect_token(p, 12)) // token=','
8191 &&
8192 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
8193 )
8194 {
8195 D(fprintf(stderr, "%*c+ param_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param ',' TYPE_COMMENT?"));
8196 _res = _PyPegen_add_type_comment_to_arg ( p , a , tc );
8197 if (_res == NULL && PyErr_Occurred()) {
8198 p->error_indicator = 1;
8199 D(p->level--);
8200 return NULL;
8201 }
8202 goto done;
8203 }
8204 p->mark = _mark;
8205 D(fprintf(stderr, "%*c%s param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
8206 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param ',' TYPE_COMMENT?"));
8207 }
8208 { // param TYPE_COMMENT? &')'
8209 if (p->error_indicator) {
8210 D(p->level--);
8211 return NULL;
8212 }
8213 D(fprintf(stderr, "%*c> param_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param TYPE_COMMENT? &')'"));
8214 arg_ty a;
8215 void *tc;
8216 if (
8217 (a = param_rule(p)) // param
8218 &&
8219 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
8220 &&
8221 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
8222 )
8223 {
8224 D(fprintf(stderr, "%*c+ param_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param TYPE_COMMENT? &')'"));
8225 _res = _PyPegen_add_type_comment_to_arg ( p , a , tc );
8226 if (_res == NULL && PyErr_Occurred()) {
8227 p->error_indicator = 1;
8228 D(p->level--);
8229 return NULL;
8230 }
8231 goto done;
8232 }
8233 p->mark = _mark;
8234 D(fprintf(stderr, "%*c%s param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
8235 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param TYPE_COMMENT? &')'"));
8236 }
8237 _res = NULL;
8238 done:
8239 D(p->level--);
8240 return _res;
8241}
8242
8243// param_with_default: param default ',' TYPE_COMMENT? | param default TYPE_COMMENT? &')'
8244static NameDefaultPair*
8245param_with_default_rule(Parser *p)
8246{
8247 D(p->level++);
8248 if (p->error_indicator) {
8249 D(p->level--);
8250 return NULL;
8251 }
8252 NameDefaultPair* _res = NULL;
8253 int _mark = p->mark;
8254 { // param default ',' TYPE_COMMENT?
8255 if (p->error_indicator) {
8256 D(p->level--);
8257 return NULL;
8258 }
8259 D(fprintf(stderr, "%*c> param_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param default ',' TYPE_COMMENT?"));
8260 Token * _literal;
8261 arg_ty a;
8262 expr_ty c;
8263 void *tc;
8264 if (
8265 (a = param_rule(p)) // param
8266 &&
8267 (c = default_rule(p)) // default
8268 &&
8269 (_literal = _PyPegen_expect_token(p, 12)) // token=','
8270 &&
8271 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
8272 )
8273 {
8274 D(fprintf(stderr, "%*c+ param_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param default ',' TYPE_COMMENT?"));
8275 _res = _PyPegen_name_default_pair ( p , a , c , tc );
8276 if (_res == NULL && PyErr_Occurred()) {
8277 p->error_indicator = 1;
8278 D(p->level--);
8279 return NULL;
8280 }
8281 goto done;
8282 }
8283 p->mark = _mark;
8284 D(fprintf(stderr, "%*c%s param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
8285 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default ',' TYPE_COMMENT?"));
8286 }
8287 { // param default TYPE_COMMENT? &')'
8288 if (p->error_indicator) {
8289 D(p->level--);
8290 return NULL;
8291 }
8292 D(fprintf(stderr, "%*c> param_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param default TYPE_COMMENT? &')'"));
8293 arg_ty a;
8294 expr_ty c;
8295 void *tc;
8296 if (
8297 (a = param_rule(p)) // param
8298 &&
8299 (c = default_rule(p)) // default
8300 &&
8301 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
8302 &&
8303 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
8304 )
8305 {
8306 D(fprintf(stderr, "%*c+ param_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param default TYPE_COMMENT? &')'"));
8307 _res = _PyPegen_name_default_pair ( p , a , c , tc );
8308 if (_res == NULL && PyErr_Occurred()) {
8309 p->error_indicator = 1;
8310 D(p->level--);
8311 return NULL;
8312 }
8313 goto done;
8314 }
8315 p->mark = _mark;
8316 D(fprintf(stderr, "%*c%s param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
8317 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default TYPE_COMMENT? &')'"));
8318 }
8319 _res = NULL;
8320 done:
8321 D(p->level--);
8322 return _res;
8323}
8324
8325// param_maybe_default:
8326// | param default? ',' TYPE_COMMENT?
8327// | param default? TYPE_COMMENT? &')'
8328static NameDefaultPair*
8329param_maybe_default_rule(Parser *p)
8330{
8331 D(p->level++);
8332 if (p->error_indicator) {
8333 D(p->level--);
8334 return NULL;
8335 }
8336 NameDefaultPair* _res = NULL;
8337 int _mark = p->mark;
8338 { // param default? ',' TYPE_COMMENT?
8339 if (p->error_indicator) {
8340 D(p->level--);
8341 return NULL;
8342 }
8343 D(fprintf(stderr, "%*c> param_maybe_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param default? ',' TYPE_COMMENT?"));
8344 Token * _literal;
8345 arg_ty a;
8346 void *c;
8347 void *tc;
8348 if (
8349 (a = param_rule(p)) // param
8350 &&
8351 (c = default_rule(p), 1) // default?
8352 &&
8353 (_literal = _PyPegen_expect_token(p, 12)) // token=','
8354 &&
8355 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
8356 )
8357 {
8358 D(fprintf(stderr, "%*c+ param_maybe_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param default? ',' TYPE_COMMENT?"));
8359 _res = _PyPegen_name_default_pair ( p , a , c , tc );
8360 if (_res == NULL && PyErr_Occurred()) {
8361 p->error_indicator = 1;
8362 D(p->level--);
8363 return NULL;
8364 }
8365 goto done;
8366 }
8367 p->mark = _mark;
8368 D(fprintf(stderr, "%*c%s param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
8369 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default? ',' TYPE_COMMENT?"));
8370 }
8371 { // param default? TYPE_COMMENT? &')'
8372 if (p->error_indicator) {
8373 D(p->level--);
8374 return NULL;
8375 }
8376 D(fprintf(stderr, "%*c> param_maybe_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param default? TYPE_COMMENT? &')'"));
8377 arg_ty a;
8378 void *c;
8379 void *tc;
8380 if (
8381 (a = param_rule(p)) // param
8382 &&
8383 (c = default_rule(p), 1) // default?
8384 &&
8385 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
8386 &&
8387 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
8388 )
8389 {
8390 D(fprintf(stderr, "%*c+ param_maybe_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param default? TYPE_COMMENT? &')'"));
8391 _res = _PyPegen_name_default_pair ( p , a , c , tc );
8392 if (_res == NULL && PyErr_Occurred()) {
8393 p->error_indicator = 1;
8394 D(p->level--);
8395 return NULL;
8396 }
8397 goto done;
8398 }
8399 p->mark = _mark;
8400 D(fprintf(stderr, "%*c%s param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
8401 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default? TYPE_COMMENT? &')'"));
8402 }
8403 _res = NULL;
8404 done:
8405 D(p->level--);
8406 return _res;
8407}
8408
8409// param: NAME annotation?
8410static arg_ty
8411param_rule(Parser *p)
8412{
8413 D(p->level++);
8414 if (p->error_indicator) {
8415 D(p->level--);
8416 return NULL;
8417 }
8418 arg_ty _res = NULL;
8419 int _mark = p->mark;
8420 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
8421 p->error_indicator = 1;
8422 D(p->level--);
8423 return NULL;
8424 }
8425 int _start_lineno = p->tokens[_mark]->lineno;
8426 UNUSED(_start_lineno); // Only used by EXTRA macro
8427 int _start_col_offset = p->tokens[_mark]->col_offset;
8428 UNUSED(_start_col_offset); // Only used by EXTRA macro
8429 { // NAME annotation?
8430 if (p->error_indicator) {
8431 D(p->level--);
8432 return NULL;
8433 }
8434 D(fprintf(stderr, "%*c> param[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME annotation?"));
8435 expr_ty a;
8436 void *b;
8437 if (
8438 (a = _PyPegen_name_token(p)) // NAME
8439 &&
8440 (b = annotation_rule(p), 1) // annotation?
8441 )
8442 {
8443 D(fprintf(stderr, "%*c+ param[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME annotation?"));
8444 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8445 if (_token == NULL) {
8446 D(p->level--);
8447 return NULL;
8448 }
8449 int _end_lineno = _token->end_lineno;
8450 UNUSED(_end_lineno); // Only used by EXTRA macro
8451 int _end_col_offset = _token->end_col_offset;
8452 UNUSED(_end_col_offset); // Only used by EXTRA macro
8453 _res = _Py_arg ( a -> v . Name . id , b , NULL , EXTRA );
8454 if (_res == NULL && PyErr_Occurred()) {
8455 p->error_indicator = 1;
8456 D(p->level--);
8457 return NULL;
8458 }
8459 goto done;
8460 }
8461 p->mark = _mark;
8462 D(fprintf(stderr, "%*c%s param[%d-%d]: %s failed!\n", p->level, ' ',
8463 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME annotation?"));
8464 }
8465 _res = NULL;
8466 done:
8467 D(p->level--);
8468 return _res;
8469}
8470
8471// annotation: ':' expression
8472static expr_ty
8473annotation_rule(Parser *p)
8474{
8475 D(p->level++);
8476 if (p->error_indicator) {
8477 D(p->level--);
8478 return NULL;
8479 }
8480 expr_ty _res = NULL;
8481 int _mark = p->mark;
8482 { // ':' expression
8483 if (p->error_indicator) {
8484 D(p->level--);
8485 return NULL;
8486 }
8487 D(fprintf(stderr, "%*c> annotation[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':' expression"));
8488 Token * _literal;
8489 expr_ty a;
8490 if (
8491 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
8492 &&
8493 (a = expression_rule(p)) // expression
8494 )
8495 {
8496 D(fprintf(stderr, "%*c+ annotation[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':' expression"));
8497 _res = a;
8498 if (_res == NULL && PyErr_Occurred()) {
8499 p->error_indicator = 1;
8500 D(p->level--);
8501 return NULL;
8502 }
8503 goto done;
8504 }
8505 p->mark = _mark;
8506 D(fprintf(stderr, "%*c%s annotation[%d-%d]: %s failed!\n", p->level, ' ',
8507 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':' expression"));
8508 }
8509 _res = NULL;
8510 done:
8511 D(p->level--);
8512 return _res;
8513}
8514
8515// default: '=' expression
8516static expr_ty
8517default_rule(Parser *p)
8518{
8519 D(p->level++);
8520 if (p->error_indicator) {
8521 D(p->level--);
8522 return NULL;
8523 }
8524 expr_ty _res = NULL;
8525 int _mark = p->mark;
8526 { // '=' expression
8527 if (p->error_indicator) {
8528 D(p->level--);
8529 return NULL;
8530 }
8531 D(fprintf(stderr, "%*c> default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'=' expression"));
8532 Token * _literal;
8533 expr_ty a;
8534 if (
8535 (_literal = _PyPegen_expect_token(p, 22)) // token='='
8536 &&
8537 (a = expression_rule(p)) // expression
8538 )
8539 {
8540 D(fprintf(stderr, "%*c+ default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'=' expression"));
8541 _res = a;
8542 if (_res == NULL && PyErr_Occurred()) {
8543 p->error_indicator = 1;
8544 D(p->level--);
8545 return NULL;
8546 }
8547 goto done;
8548 }
8549 p->mark = _mark;
8550 D(fprintf(stderr, "%*c%s default[%d-%d]: %s failed!\n", p->level, ' ',
8551 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'=' expression"));
8552 }
8553 _res = NULL;
8554 done:
8555 D(p->level--);
8556 return _res;
8557}
8558
8559// decorators: (('@' named_expression NEWLINE))+
Pablo Galindoa5634c42020-09-16 19:42:00 +01008560static asdl_expr_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008561decorators_rule(Parser *p)
8562{
8563 D(p->level++);
8564 if (p->error_indicator) {
8565 D(p->level--);
8566 return NULL;
8567 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01008568 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008569 int _mark = p->mark;
8570 { // (('@' named_expression NEWLINE))+
8571 if (p->error_indicator) {
8572 D(p->level--);
8573 return NULL;
8574 }
8575 D(fprintf(stderr, "%*c> decorators[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(('@' named_expression NEWLINE))+"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01008576 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008577 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08008578 (a = (asdl_expr_seq*)_loop1_84_rule(p)) // (('@' named_expression NEWLINE))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008579 )
8580 {
8581 D(fprintf(stderr, "%*c+ decorators[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(('@' named_expression NEWLINE))+"));
8582 _res = a;
8583 if (_res == NULL && PyErr_Occurred()) {
8584 p->error_indicator = 1;
8585 D(p->level--);
8586 return NULL;
8587 }
8588 goto done;
8589 }
8590 p->mark = _mark;
8591 D(fprintf(stderr, "%*c%s decorators[%d-%d]: %s failed!\n", p->level, ' ',
8592 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(('@' named_expression NEWLINE))+"));
8593 }
8594 _res = NULL;
8595 done:
8596 D(p->level--);
8597 return _res;
8598}
8599
8600// class_def: decorators class_def_raw | class_def_raw
8601static stmt_ty
8602class_def_rule(Parser *p)
8603{
8604 D(p->level++);
8605 if (p->error_indicator) {
8606 D(p->level--);
8607 return NULL;
8608 }
8609 stmt_ty _res = NULL;
8610 int _mark = p->mark;
8611 { // decorators class_def_raw
8612 if (p->error_indicator) {
8613 D(p->level--);
8614 return NULL;
8615 }
8616 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 +01008617 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008618 stmt_ty b;
8619 if (
8620 (a = decorators_rule(p)) // decorators
8621 &&
8622 (b = class_def_raw_rule(p)) // class_def_raw
8623 )
8624 {
8625 D(fprintf(stderr, "%*c+ class_def[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "decorators class_def_raw"));
8626 _res = _PyPegen_class_def_decorators ( p , a , b );
8627 if (_res == NULL && PyErr_Occurred()) {
8628 p->error_indicator = 1;
8629 D(p->level--);
8630 return NULL;
8631 }
8632 goto done;
8633 }
8634 p->mark = _mark;
8635 D(fprintf(stderr, "%*c%s class_def[%d-%d]: %s failed!\n", p->level, ' ',
8636 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "decorators class_def_raw"));
8637 }
8638 { // class_def_raw
8639 if (p->error_indicator) {
8640 D(p->level--);
8641 return NULL;
8642 }
8643 D(fprintf(stderr, "%*c> class_def[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "class_def_raw"));
8644 stmt_ty class_def_raw_var;
8645 if (
8646 (class_def_raw_var = class_def_raw_rule(p)) // class_def_raw
8647 )
8648 {
8649 D(fprintf(stderr, "%*c+ class_def[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "class_def_raw"));
8650 _res = class_def_raw_var;
8651 goto done;
8652 }
8653 p->mark = _mark;
8654 D(fprintf(stderr, "%*c%s class_def[%d-%d]: %s failed!\n", p->level, ' ',
8655 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "class_def_raw"));
8656 }
8657 _res = NULL;
8658 done:
8659 D(p->level--);
8660 return _res;
8661}
8662
Pablo Galindo58fb1562021-02-02 19:54:22 +00008663// class_def_raw: 'class' NAME ['(' arguments? ')'] &&':' block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008664static stmt_ty
8665class_def_raw_rule(Parser *p)
8666{
8667 D(p->level++);
8668 if (p->error_indicator) {
8669 D(p->level--);
8670 return NULL;
8671 }
8672 stmt_ty _res = NULL;
8673 int _mark = p->mark;
8674 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
8675 p->error_indicator = 1;
8676 D(p->level--);
8677 return NULL;
8678 }
8679 int _start_lineno = p->tokens[_mark]->lineno;
8680 UNUSED(_start_lineno); // Only used by EXTRA macro
8681 int _start_col_offset = p->tokens[_mark]->col_offset;
8682 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo58fb1562021-02-02 19:54:22 +00008683 { // 'class' NAME ['(' arguments? ')'] &&':' block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008684 if (p->error_indicator) {
8685 D(p->level--);
8686 return NULL;
8687 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00008688 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 +01008689 Token * _keyword;
8690 Token * _literal;
8691 expr_ty a;
8692 void *b;
Pablo Galindoa5634c42020-09-16 19:42:00 +01008693 asdl_stmt_seq* c;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008694 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08008695 (_keyword = _PyPegen_expect_token(p, 527)) // token='class'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008696 &&
8697 (a = _PyPegen_name_token(p)) // NAME
8698 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008699 (b = _tmp_85_rule(p), 1) // ['(' arguments? ')']
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008700 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00008701 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008702 &&
8703 (c = block_rule(p)) // block
8704 )
8705 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00008706 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 +01008707 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8708 if (_token == NULL) {
8709 D(p->level--);
8710 return NULL;
8711 }
8712 int _end_lineno = _token->end_lineno;
8713 UNUSED(_end_lineno); // Only used by EXTRA macro
8714 int _end_col_offset = _token->end_col_offset;
8715 UNUSED(_end_col_offset); // Only used by EXTRA macro
8716 _res = _Py_ClassDef ( a -> v . Name . id , ( b ) ? ( ( expr_ty ) b ) -> v . Call . args : NULL , ( b ) ? ( ( expr_ty ) b ) -> v . Call . keywords : NULL , c , NULL , EXTRA );
8717 if (_res == NULL && PyErr_Occurred()) {
8718 p->error_indicator = 1;
8719 D(p->level--);
8720 return NULL;
8721 }
8722 goto done;
8723 }
8724 p->mark = _mark;
8725 D(fprintf(stderr, "%*c%s class_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00008726 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'class' NAME ['(' arguments? ')'] &&':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008727 }
8728 _res = NULL;
8729 done:
8730 D(p->level--);
8731 return _res;
8732}
8733
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00008734// block: NEWLINE INDENT statements DEDENT | simple_stmts | invalid_block
Pablo Galindoa5634c42020-09-16 19:42:00 +01008735static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008736block_rule(Parser *p)
8737{
8738 D(p->level++);
8739 if (p->error_indicator) {
8740 D(p->level--);
8741 return NULL;
8742 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01008743 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008744 if (_PyPegen_is_memoized(p, block_type, &_res)) {
8745 D(p->level--);
8746 return _res;
8747 }
8748 int _mark = p->mark;
8749 { // NEWLINE INDENT statements DEDENT
8750 if (p->error_indicator) {
8751 D(p->level--);
8752 return NULL;
8753 }
8754 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 +01008755 asdl_stmt_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008756 Token * dedent_var;
8757 Token * indent_var;
8758 Token * newline_var;
8759 if (
8760 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
8761 &&
8762 (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
8763 &&
8764 (a = statements_rule(p)) // statements
8765 &&
8766 (dedent_var = _PyPegen_expect_token(p, DEDENT)) // token='DEDENT'
8767 )
8768 {
8769 D(fprintf(stderr, "%*c+ block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE INDENT statements DEDENT"));
8770 _res = a;
8771 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 block[%d-%d]: %s failed!\n", p->level, ' ',
8780 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE INDENT statements DEDENT"));
8781 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00008782 { // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008783 if (p->error_indicator) {
8784 D(p->level--);
8785 return NULL;
8786 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00008787 D(fprintf(stderr, "%*c> block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
8788 asdl_stmt_seq* simple_stmts_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008789 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00008790 (simple_stmts_var = simple_stmts_rule(p)) // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008791 )
8792 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00008793 D(fprintf(stderr, "%*c+ block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
8794 _res = simple_stmts_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008795 goto done;
8796 }
8797 p->mark = _mark;
8798 D(fprintf(stderr, "%*c%s block[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00008799 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmts"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008800 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02008801 if (p->call_invalid_rules) { // invalid_block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008802 if (p->error_indicator) {
8803 D(p->level--);
8804 return NULL;
8805 }
8806 D(fprintf(stderr, "%*c> block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_block"));
8807 void *invalid_block_var;
8808 if (
8809 (invalid_block_var = invalid_block_rule(p)) // invalid_block
8810 )
8811 {
8812 D(fprintf(stderr, "%*c+ block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_block"));
8813 _res = invalid_block_var;
8814 goto done;
8815 }
8816 p->mark = _mark;
8817 D(fprintf(stderr, "%*c%s block[%d-%d]: %s failed!\n", p->level, ' ',
8818 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_block"));
8819 }
8820 _res = NULL;
8821 done:
8822 _PyPegen_insert_memo(p, _mark, block_type, _res);
8823 D(p->level--);
8824 return _res;
8825}
8826
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008827// star_expressions:
8828// | star_expression ((',' star_expression))+ ','?
8829// | star_expression ','
8830// | star_expression
8831static expr_ty
8832star_expressions_rule(Parser *p)
8833{
8834 D(p->level++);
8835 if (p->error_indicator) {
8836 D(p->level--);
8837 return NULL;
8838 }
8839 expr_ty _res = NULL;
8840 int _mark = p->mark;
8841 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
8842 p->error_indicator = 1;
8843 D(p->level--);
8844 return NULL;
8845 }
8846 int _start_lineno = p->tokens[_mark]->lineno;
8847 UNUSED(_start_lineno); // Only used by EXTRA macro
8848 int _start_col_offset = p->tokens[_mark]->col_offset;
8849 UNUSED(_start_col_offset); // Only used by EXTRA macro
8850 { // star_expression ((',' star_expression))+ ','?
8851 if (p->error_indicator) {
8852 D(p->level--);
8853 return NULL;
8854 }
8855 D(fprintf(stderr, "%*c> star_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expression ((',' star_expression))+ ','?"));
8856 void *_opt_var;
8857 UNUSED(_opt_var); // Silence compiler warnings
8858 expr_ty a;
8859 asdl_seq * b;
8860 if (
8861 (a = star_expression_rule(p)) // star_expression
8862 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008863 (b = _loop1_86_rule(p)) // ((',' star_expression))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008864 &&
8865 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
8866 )
8867 {
8868 D(fprintf(stderr, "%*c+ star_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expression ((',' star_expression))+ ','?"));
8869 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8870 if (_token == NULL) {
8871 D(p->level--);
8872 return NULL;
8873 }
8874 int _end_lineno = _token->end_lineno;
8875 UNUSED(_end_lineno); // Only used by EXTRA macro
8876 int _end_col_offset = _token->end_col_offset;
8877 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03008878 _res = _Py_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , a , b ) ) , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008879 if (_res == NULL && PyErr_Occurred()) {
8880 p->error_indicator = 1;
8881 D(p->level--);
8882 return NULL;
8883 }
8884 goto done;
8885 }
8886 p->mark = _mark;
8887 D(fprintf(stderr, "%*c%s star_expressions[%d-%d]: %s failed!\n", p->level, ' ',
8888 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expression ((',' star_expression))+ ','?"));
8889 }
8890 { // star_expression ','
8891 if (p->error_indicator) {
8892 D(p->level--);
8893 return NULL;
8894 }
8895 D(fprintf(stderr, "%*c> star_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expression ','"));
8896 Token * _literal;
8897 expr_ty a;
8898 if (
8899 (a = star_expression_rule(p)) // star_expression
8900 &&
8901 (_literal = _PyPegen_expect_token(p, 12)) // token=','
8902 )
8903 {
8904 D(fprintf(stderr, "%*c+ star_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expression ','"));
8905 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8906 if (_token == NULL) {
8907 D(p->level--);
8908 return NULL;
8909 }
8910 int _end_lineno = _token->end_lineno;
8911 UNUSED(_end_lineno); // Only used by EXTRA macro
8912 int _end_col_offset = _token->end_col_offset;
8913 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03008914 _res = _Py_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_singleton_seq ( p , a ) ) , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008915 if (_res == NULL && PyErr_Occurred()) {
8916 p->error_indicator = 1;
8917 D(p->level--);
8918 return NULL;
8919 }
8920 goto done;
8921 }
8922 p->mark = _mark;
8923 D(fprintf(stderr, "%*c%s star_expressions[%d-%d]: %s failed!\n", p->level, ' ',
8924 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expression ','"));
8925 }
8926 { // star_expression
8927 if (p->error_indicator) {
8928 D(p->level--);
8929 return NULL;
8930 }
8931 D(fprintf(stderr, "%*c> star_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expression"));
8932 expr_ty star_expression_var;
8933 if (
8934 (star_expression_var = star_expression_rule(p)) // star_expression
8935 )
8936 {
8937 D(fprintf(stderr, "%*c+ star_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expression"));
8938 _res = star_expression_var;
8939 goto done;
8940 }
8941 p->mark = _mark;
8942 D(fprintf(stderr, "%*c%s star_expressions[%d-%d]: %s failed!\n", p->level, ' ',
8943 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expression"));
8944 }
8945 _res = NULL;
8946 done:
8947 D(p->level--);
8948 return _res;
8949}
8950
8951// star_expression: '*' bitwise_or | expression
8952static expr_ty
8953star_expression_rule(Parser *p)
8954{
8955 D(p->level++);
8956 if (p->error_indicator) {
8957 D(p->level--);
8958 return NULL;
8959 }
8960 expr_ty _res = NULL;
8961 if (_PyPegen_is_memoized(p, star_expression_type, &_res)) {
8962 D(p->level--);
8963 return _res;
8964 }
8965 int _mark = p->mark;
8966 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
8967 p->error_indicator = 1;
8968 D(p->level--);
8969 return NULL;
8970 }
8971 int _start_lineno = p->tokens[_mark]->lineno;
8972 UNUSED(_start_lineno); // Only used by EXTRA macro
8973 int _start_col_offset = p->tokens[_mark]->col_offset;
8974 UNUSED(_start_col_offset); // Only used by EXTRA macro
8975 { // '*' bitwise_or
8976 if (p->error_indicator) {
8977 D(p->level--);
8978 return NULL;
8979 }
8980 D(fprintf(stderr, "%*c> star_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or"));
8981 Token * _literal;
8982 expr_ty a;
8983 if (
8984 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
8985 &&
8986 (a = bitwise_or_rule(p)) // bitwise_or
8987 )
8988 {
8989 D(fprintf(stderr, "%*c+ star_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or"));
8990 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8991 if (_token == NULL) {
8992 D(p->level--);
8993 return NULL;
8994 }
8995 int _end_lineno = _token->end_lineno;
8996 UNUSED(_end_lineno); // Only used by EXTRA macro
8997 int _end_col_offset = _token->end_col_offset;
8998 UNUSED(_end_col_offset); // Only used by EXTRA macro
8999 _res = _Py_Starred ( a , Load , EXTRA );
9000 if (_res == NULL && PyErr_Occurred()) {
9001 p->error_indicator = 1;
9002 D(p->level--);
9003 return NULL;
9004 }
9005 goto done;
9006 }
9007 p->mark = _mark;
9008 D(fprintf(stderr, "%*c%s star_expression[%d-%d]: %s failed!\n", p->level, ' ',
9009 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' bitwise_or"));
9010 }
9011 { // expression
9012 if (p->error_indicator) {
9013 D(p->level--);
9014 return NULL;
9015 }
9016 D(fprintf(stderr, "%*c> star_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression"));
9017 expr_ty expression_var;
9018 if (
9019 (expression_var = expression_rule(p)) // expression
9020 )
9021 {
9022 D(fprintf(stderr, "%*c+ star_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression"));
9023 _res = expression_var;
9024 goto done;
9025 }
9026 p->mark = _mark;
9027 D(fprintf(stderr, "%*c%s star_expression[%d-%d]: %s failed!\n", p->level, ' ',
9028 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression"));
9029 }
9030 _res = NULL;
9031 done:
9032 _PyPegen_insert_memo(p, _mark, star_expression_type, _res);
9033 D(p->level--);
9034 return _res;
9035}
9036
9037// star_named_expressions: ','.star_named_expression+ ','?
Pablo Galindoa5634c42020-09-16 19:42:00 +01009038static asdl_expr_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009039star_named_expressions_rule(Parser *p)
9040{
9041 D(p->level++);
9042 if (p->error_indicator) {
9043 D(p->level--);
9044 return NULL;
9045 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01009046 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009047 int _mark = p->mark;
9048 { // ','.star_named_expression+ ','?
9049 if (p->error_indicator) {
9050 D(p->level--);
9051 return NULL;
9052 }
9053 D(fprintf(stderr, "%*c> star_named_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.star_named_expression+ ','?"));
9054 void *_opt_var;
9055 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +01009056 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009057 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08009058 (a = (asdl_expr_seq*)_gather_87_rule(p)) // ','.star_named_expression+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009059 &&
9060 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
9061 )
9062 {
9063 D(fprintf(stderr, "%*c+ star_named_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.star_named_expression+ ','?"));
9064 _res = a;
9065 if (_res == NULL && PyErr_Occurred()) {
9066 p->error_indicator = 1;
9067 D(p->level--);
9068 return NULL;
9069 }
9070 goto done;
9071 }
9072 p->mark = _mark;
9073 D(fprintf(stderr, "%*c%s star_named_expressions[%d-%d]: %s failed!\n", p->level, ' ',
9074 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.star_named_expression+ ','?"));
9075 }
9076 _res = NULL;
9077 done:
9078 D(p->level--);
9079 return _res;
9080}
9081
9082// star_named_expression: '*' bitwise_or | named_expression
9083static expr_ty
9084star_named_expression_rule(Parser *p)
9085{
9086 D(p->level++);
9087 if (p->error_indicator) {
9088 D(p->level--);
9089 return NULL;
9090 }
9091 expr_ty _res = NULL;
9092 int _mark = p->mark;
9093 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9094 p->error_indicator = 1;
9095 D(p->level--);
9096 return NULL;
9097 }
9098 int _start_lineno = p->tokens[_mark]->lineno;
9099 UNUSED(_start_lineno); // Only used by EXTRA macro
9100 int _start_col_offset = p->tokens[_mark]->col_offset;
9101 UNUSED(_start_col_offset); // Only used by EXTRA macro
9102 { // '*' bitwise_or
9103 if (p->error_indicator) {
9104 D(p->level--);
9105 return NULL;
9106 }
9107 D(fprintf(stderr, "%*c> star_named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or"));
9108 Token * _literal;
9109 expr_ty a;
9110 if (
9111 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
9112 &&
9113 (a = bitwise_or_rule(p)) // bitwise_or
9114 )
9115 {
9116 D(fprintf(stderr, "%*c+ star_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or"));
9117 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9118 if (_token == NULL) {
9119 D(p->level--);
9120 return NULL;
9121 }
9122 int _end_lineno = _token->end_lineno;
9123 UNUSED(_end_lineno); // Only used by EXTRA macro
9124 int _end_col_offset = _token->end_col_offset;
9125 UNUSED(_end_col_offset); // Only used by EXTRA macro
9126 _res = _Py_Starred ( a , Load , EXTRA );
9127 if (_res == NULL && PyErr_Occurred()) {
9128 p->error_indicator = 1;
9129 D(p->level--);
9130 return NULL;
9131 }
9132 goto done;
9133 }
9134 p->mark = _mark;
9135 D(fprintf(stderr, "%*c%s star_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
9136 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' bitwise_or"));
9137 }
9138 { // named_expression
9139 if (p->error_indicator) {
9140 D(p->level--);
9141 return NULL;
9142 }
9143 D(fprintf(stderr, "%*c> star_named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression"));
9144 expr_ty named_expression_var;
9145 if (
9146 (named_expression_var = named_expression_rule(p)) // named_expression
9147 )
9148 {
9149 D(fprintf(stderr, "%*c+ star_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "named_expression"));
9150 _res = named_expression_var;
9151 goto done;
9152 }
9153 p->mark = _mark;
9154 D(fprintf(stderr, "%*c%s star_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
9155 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression"));
9156 }
9157 _res = NULL;
9158 done:
9159 D(p->level--);
9160 return _res;
9161}
9162
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03009163// named_expression: NAME ':=' ~ expression | expression !':=' | invalid_named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009164static expr_ty
9165named_expression_rule(Parser *p)
9166{
9167 D(p->level++);
9168 if (p->error_indicator) {
9169 D(p->level--);
9170 return NULL;
9171 }
9172 expr_ty _res = NULL;
9173 int _mark = p->mark;
9174 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9175 p->error_indicator = 1;
9176 D(p->level--);
9177 return NULL;
9178 }
9179 int _start_lineno = p->tokens[_mark]->lineno;
9180 UNUSED(_start_lineno); // Only used by EXTRA macro
9181 int _start_col_offset = p->tokens[_mark]->col_offset;
9182 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03009183 { // NAME ':=' ~ expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009184 if (p->error_indicator) {
9185 D(p->level--);
9186 return NULL;
9187 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03009188 D(fprintf(stderr, "%*c> named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME ':=' ~ expression"));
9189 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009190 Token * _literal;
9191 expr_ty a;
9192 expr_ty b;
9193 if (
9194 (a = _PyPegen_name_token(p)) // NAME
9195 &&
9196 (_literal = _PyPegen_expect_token(p, 53)) // token=':='
9197 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03009198 (_cut_var = 1)
9199 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009200 (b = expression_rule(p)) // expression
9201 )
9202 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03009203 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 +01009204 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9205 if (_token == NULL) {
9206 D(p->level--);
9207 return NULL;
9208 }
9209 int _end_lineno = _token->end_lineno;
9210 UNUSED(_end_lineno); // Only used by EXTRA macro
9211 int _end_col_offset = _token->end_col_offset;
9212 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03009213 _res = _Py_NamedExpr ( CHECK ( expr_ty , _PyPegen_set_expr_context ( p , a , Store ) ) , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009214 if (_res == NULL && PyErr_Occurred()) {
9215 p->error_indicator = 1;
9216 D(p->level--);
9217 return NULL;
9218 }
9219 goto done;
9220 }
9221 p->mark = _mark;
9222 D(fprintf(stderr, "%*c%s named_expression[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03009223 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME ':=' ~ expression"));
9224 if (_cut_var) {
9225 D(p->level--);
9226 return NULL;
9227 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009228 }
9229 { // expression !':='
9230 if (p->error_indicator) {
9231 D(p->level--);
9232 return NULL;
9233 }
9234 D(fprintf(stderr, "%*c> named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression !':='"));
9235 expr_ty expression_var;
9236 if (
9237 (expression_var = expression_rule(p)) // expression
9238 &&
9239 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 53) // token=':='
9240 )
9241 {
9242 D(fprintf(stderr, "%*c+ named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression !':='"));
9243 _res = expression_var;
9244 goto done;
9245 }
9246 p->mark = _mark;
9247 D(fprintf(stderr, "%*c%s named_expression[%d-%d]: %s failed!\n", p->level, ' ',
9248 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression !':='"));
9249 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02009250 if (p->call_invalid_rules) { // invalid_named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009251 if (p->error_indicator) {
9252 D(p->level--);
9253 return NULL;
9254 }
9255 D(fprintf(stderr, "%*c> named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_named_expression"));
9256 void *invalid_named_expression_var;
9257 if (
9258 (invalid_named_expression_var = invalid_named_expression_rule(p)) // invalid_named_expression
9259 )
9260 {
9261 D(fprintf(stderr, "%*c+ named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_named_expression"));
9262 _res = invalid_named_expression_var;
9263 goto done;
9264 }
9265 p->mark = _mark;
9266 D(fprintf(stderr, "%*c%s named_expression[%d-%d]: %s failed!\n", p->level, ' ',
9267 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_named_expression"));
9268 }
9269 _res = NULL;
9270 done:
9271 D(p->level--);
9272 return _res;
9273}
9274
9275// annotated_rhs: yield_expr | star_expressions
9276static expr_ty
9277annotated_rhs_rule(Parser *p)
9278{
9279 D(p->level++);
9280 if (p->error_indicator) {
9281 D(p->level--);
9282 return NULL;
9283 }
9284 expr_ty _res = NULL;
9285 int _mark = p->mark;
9286 { // yield_expr
9287 if (p->error_indicator) {
9288 D(p->level--);
9289 return NULL;
9290 }
9291 D(fprintf(stderr, "%*c> annotated_rhs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
9292 expr_ty yield_expr_var;
9293 if (
9294 (yield_expr_var = yield_expr_rule(p)) // yield_expr
9295 )
9296 {
9297 D(fprintf(stderr, "%*c+ annotated_rhs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
9298 _res = yield_expr_var;
9299 goto done;
9300 }
9301 p->mark = _mark;
9302 D(fprintf(stderr, "%*c%s annotated_rhs[%d-%d]: %s failed!\n", p->level, ' ',
9303 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
9304 }
9305 { // star_expressions
9306 if (p->error_indicator) {
9307 D(p->level--);
9308 return NULL;
9309 }
9310 D(fprintf(stderr, "%*c> annotated_rhs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
9311 expr_ty star_expressions_var;
9312 if (
9313 (star_expressions_var = star_expressions_rule(p)) // star_expressions
9314 )
9315 {
9316 D(fprintf(stderr, "%*c+ annotated_rhs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
9317 _res = star_expressions_var;
9318 goto done;
9319 }
9320 p->mark = _mark;
9321 D(fprintf(stderr, "%*c%s annotated_rhs[%d-%d]: %s failed!\n", p->level, ' ',
9322 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
9323 }
9324 _res = NULL;
9325 done:
9326 D(p->level--);
9327 return _res;
9328}
9329
9330// expressions: expression ((',' expression))+ ','? | expression ',' | expression
9331static expr_ty
9332expressions_rule(Parser *p)
9333{
9334 D(p->level++);
9335 if (p->error_indicator) {
9336 D(p->level--);
9337 return NULL;
9338 }
9339 expr_ty _res = NULL;
9340 int _mark = p->mark;
9341 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9342 p->error_indicator = 1;
9343 D(p->level--);
9344 return NULL;
9345 }
9346 int _start_lineno = p->tokens[_mark]->lineno;
9347 UNUSED(_start_lineno); // Only used by EXTRA macro
9348 int _start_col_offset = p->tokens[_mark]->col_offset;
9349 UNUSED(_start_col_offset); // Only used by EXTRA macro
9350 { // expression ((',' expression))+ ','?
9351 if (p->error_indicator) {
9352 D(p->level--);
9353 return NULL;
9354 }
9355 D(fprintf(stderr, "%*c> expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ((',' expression))+ ','?"));
9356 void *_opt_var;
9357 UNUSED(_opt_var); // Silence compiler warnings
9358 expr_ty a;
9359 asdl_seq * b;
9360 if (
9361 (a = expression_rule(p)) // expression
9362 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08009363 (b = _loop1_89_rule(p)) // ((',' expression))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009364 &&
9365 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
9366 )
9367 {
9368 D(fprintf(stderr, "%*c+ expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ((',' expression))+ ','?"));
9369 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9370 if (_token == NULL) {
9371 D(p->level--);
9372 return NULL;
9373 }
9374 int _end_lineno = _token->end_lineno;
9375 UNUSED(_end_lineno); // Only used by EXTRA macro
9376 int _end_col_offset = _token->end_col_offset;
9377 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03009378 _res = _Py_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , a , b ) ) , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009379 if (_res == NULL && PyErr_Occurred()) {
9380 p->error_indicator = 1;
9381 D(p->level--);
9382 return NULL;
9383 }
9384 goto done;
9385 }
9386 p->mark = _mark;
9387 D(fprintf(stderr, "%*c%s expressions[%d-%d]: %s failed!\n", p->level, ' ',
9388 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ((',' expression))+ ','?"));
9389 }
9390 { // expression ','
9391 if (p->error_indicator) {
9392 D(p->level--);
9393 return NULL;
9394 }
9395 D(fprintf(stderr, "%*c> expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ','"));
9396 Token * _literal;
9397 expr_ty a;
9398 if (
9399 (a = expression_rule(p)) // expression
9400 &&
9401 (_literal = _PyPegen_expect_token(p, 12)) // token=','
9402 )
9403 {
9404 D(fprintf(stderr, "%*c+ expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ','"));
9405 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9406 if (_token == NULL) {
9407 D(p->level--);
9408 return NULL;
9409 }
9410 int _end_lineno = _token->end_lineno;
9411 UNUSED(_end_lineno); // Only used by EXTRA macro
9412 int _end_col_offset = _token->end_col_offset;
9413 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03009414 _res = _Py_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_singleton_seq ( p , a ) ) , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009415 if (_res == NULL && PyErr_Occurred()) {
9416 p->error_indicator = 1;
9417 D(p->level--);
9418 return NULL;
9419 }
9420 goto done;
9421 }
9422 p->mark = _mark;
9423 D(fprintf(stderr, "%*c%s expressions[%d-%d]: %s failed!\n", p->level, ' ',
9424 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ','"));
9425 }
9426 { // expression
9427 if (p->error_indicator) {
9428 D(p->level--);
9429 return NULL;
9430 }
9431 D(fprintf(stderr, "%*c> expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression"));
9432 expr_ty expression_var;
9433 if (
9434 (expression_var = expression_rule(p)) // expression
9435 )
9436 {
9437 D(fprintf(stderr, "%*c+ expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression"));
9438 _res = expression_var;
9439 goto done;
9440 }
9441 p->mark = _mark;
9442 D(fprintf(stderr, "%*c%s expressions[%d-%d]: %s failed!\n", p->level, ' ',
9443 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression"));
9444 }
9445 _res = NULL;
9446 done:
9447 D(p->level--);
9448 return _res;
9449}
9450
9451// expression: disjunction 'if' disjunction 'else' expression | disjunction | lambdef
9452static expr_ty
9453expression_rule(Parser *p)
9454{
9455 D(p->level++);
9456 if (p->error_indicator) {
9457 D(p->level--);
9458 return NULL;
9459 }
9460 expr_ty _res = NULL;
9461 if (_PyPegen_is_memoized(p, expression_type, &_res)) {
9462 D(p->level--);
9463 return _res;
9464 }
9465 int _mark = p->mark;
9466 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9467 p->error_indicator = 1;
9468 D(p->level--);
9469 return NULL;
9470 }
9471 int _start_lineno = p->tokens[_mark]->lineno;
9472 UNUSED(_start_lineno); // Only used by EXTRA macro
9473 int _start_col_offset = p->tokens[_mark]->col_offset;
9474 UNUSED(_start_col_offset); // Only used by EXTRA macro
9475 { // disjunction 'if' disjunction 'else' expression
9476 if (p->error_indicator) {
9477 D(p->level--);
9478 return NULL;
9479 }
9480 D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction 'else' expression"));
9481 Token * _keyword;
9482 Token * _keyword_1;
9483 expr_ty a;
9484 expr_ty b;
9485 expr_ty c;
9486 if (
9487 (a = disjunction_rule(p)) // disjunction
9488 &&
9489 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
9490 &&
9491 (b = disjunction_rule(p)) // disjunction
9492 &&
9493 (_keyword_1 = _PyPegen_expect_token(p, 516)) // token='else'
9494 &&
9495 (c = expression_rule(p)) // expression
9496 )
9497 {
9498 D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction 'else' expression"));
9499 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9500 if (_token == NULL) {
9501 D(p->level--);
9502 return NULL;
9503 }
9504 int _end_lineno = _token->end_lineno;
9505 UNUSED(_end_lineno); // Only used by EXTRA macro
9506 int _end_col_offset = _token->end_col_offset;
9507 UNUSED(_end_col_offset); // Only used by EXTRA macro
9508 _res = _Py_IfExp ( b , a , c , EXTRA );
9509 if (_res == NULL && PyErr_Occurred()) {
9510 p->error_indicator = 1;
9511 D(p->level--);
9512 return NULL;
9513 }
9514 goto done;
9515 }
9516 p->mark = _mark;
9517 D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
9518 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction 'if' disjunction 'else' expression"));
9519 }
9520 { // disjunction
9521 if (p->error_indicator) {
9522 D(p->level--);
9523 return NULL;
9524 }
9525 D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "disjunction"));
9526 expr_ty disjunction_var;
9527 if (
9528 (disjunction_var = disjunction_rule(p)) // disjunction
9529 )
9530 {
9531 D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "disjunction"));
9532 _res = disjunction_var;
9533 goto done;
9534 }
9535 p->mark = _mark;
9536 D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
9537 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction"));
9538 }
9539 { // lambdef
9540 if (p->error_indicator) {
9541 D(p->level--);
9542 return NULL;
9543 }
9544 D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambdef"));
9545 expr_ty lambdef_var;
9546 if (
9547 (lambdef_var = lambdef_rule(p)) // lambdef
9548 )
9549 {
9550 D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambdef"));
9551 _res = lambdef_var;
9552 goto done;
9553 }
9554 p->mark = _mark;
9555 D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
9556 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambdef"));
9557 }
9558 _res = NULL;
9559 done:
9560 _PyPegen_insert_memo(p, _mark, expression_type, _res);
9561 D(p->level--);
9562 return _res;
9563}
9564
9565// lambdef: 'lambda' lambda_params? ':' expression
9566static expr_ty
9567lambdef_rule(Parser *p)
9568{
9569 D(p->level++);
9570 if (p->error_indicator) {
9571 D(p->level--);
9572 return NULL;
9573 }
9574 expr_ty _res = NULL;
9575 int _mark = p->mark;
9576 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9577 p->error_indicator = 1;
9578 D(p->level--);
9579 return NULL;
9580 }
9581 int _start_lineno = p->tokens[_mark]->lineno;
9582 UNUSED(_start_lineno); // Only used by EXTRA macro
9583 int _start_col_offset = p->tokens[_mark]->col_offset;
9584 UNUSED(_start_col_offset); // Only used by EXTRA macro
9585 { // 'lambda' lambda_params? ':' expression
9586 if (p->error_indicator) {
9587 D(p->level--);
9588 return NULL;
9589 }
9590 D(fprintf(stderr, "%*c> lambdef[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'lambda' lambda_params? ':' expression"));
9591 Token * _keyword;
9592 Token * _literal;
9593 void *a;
9594 expr_ty b;
9595 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08009596 (_keyword = _PyPegen_expect_token(p, 528)) // token='lambda'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009597 &&
9598 (a = lambda_params_rule(p), 1) // lambda_params?
9599 &&
9600 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
9601 &&
9602 (b = expression_rule(p)) // expression
9603 )
9604 {
9605 D(fprintf(stderr, "%*c+ lambdef[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'lambda' lambda_params? ':' expression"));
9606 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9607 if (_token == NULL) {
9608 D(p->level--);
9609 return NULL;
9610 }
9611 int _end_lineno = _token->end_lineno;
9612 UNUSED(_end_lineno); // Only used by EXTRA macro
9613 int _end_col_offset = _token->end_col_offset;
9614 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03009615 _res = _Py_Lambda ( ( a ) ? a : CHECK ( arguments_ty , _PyPegen_empty_arguments ( p ) ) , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009616 if (_res == NULL && PyErr_Occurred()) {
9617 p->error_indicator = 1;
9618 D(p->level--);
9619 return NULL;
9620 }
9621 goto done;
9622 }
9623 p->mark = _mark;
9624 D(fprintf(stderr, "%*c%s lambdef[%d-%d]: %s failed!\n", p->level, ' ',
9625 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'lambda' lambda_params? ':' expression"));
9626 }
9627 _res = NULL;
9628 done:
9629 D(p->level--);
9630 return _res;
9631}
9632
9633// lambda_params: invalid_lambda_parameters | lambda_parameters
9634static arguments_ty
9635lambda_params_rule(Parser *p)
9636{
9637 D(p->level++);
9638 if (p->error_indicator) {
9639 D(p->level--);
9640 return NULL;
9641 }
9642 arguments_ty _res = NULL;
9643 int _mark = p->mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02009644 if (p->call_invalid_rules) { // invalid_lambda_parameters
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009645 if (p->error_indicator) {
9646 D(p->level--);
9647 return NULL;
9648 }
9649 D(fprintf(stderr, "%*c> lambda_params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_lambda_parameters"));
9650 void *invalid_lambda_parameters_var;
9651 if (
9652 (invalid_lambda_parameters_var = invalid_lambda_parameters_rule(p)) // invalid_lambda_parameters
9653 )
9654 {
9655 D(fprintf(stderr, "%*c+ lambda_params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_lambda_parameters"));
9656 _res = invalid_lambda_parameters_var;
9657 goto done;
9658 }
9659 p->mark = _mark;
9660 D(fprintf(stderr, "%*c%s lambda_params[%d-%d]: %s failed!\n", p->level, ' ',
9661 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_lambda_parameters"));
9662 }
9663 { // lambda_parameters
9664 if (p->error_indicator) {
9665 D(p->level--);
9666 return NULL;
9667 }
9668 D(fprintf(stderr, "%*c> lambda_params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_parameters"));
9669 arguments_ty lambda_parameters_var;
9670 if (
9671 (lambda_parameters_var = lambda_parameters_rule(p)) // lambda_parameters
9672 )
9673 {
9674 D(fprintf(stderr, "%*c+ lambda_params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_parameters"));
9675 _res = lambda_parameters_var;
9676 goto done;
9677 }
9678 p->mark = _mark;
9679 D(fprintf(stderr, "%*c%s lambda_params[%d-%d]: %s failed!\n", p->level, ' ',
9680 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_parameters"));
9681 }
9682 _res = NULL;
9683 done:
9684 D(p->level--);
9685 return _res;
9686}
9687
9688// lambda_parameters:
9689// | lambda_slash_no_default lambda_param_no_default* lambda_param_with_default* lambda_star_etc?
9690// | lambda_slash_with_default lambda_param_with_default* lambda_star_etc?
9691// | lambda_param_no_default+ lambda_param_with_default* lambda_star_etc?
9692// | lambda_param_with_default+ lambda_star_etc?
9693// | lambda_star_etc
9694static arguments_ty
9695lambda_parameters_rule(Parser *p)
9696{
9697 D(p->level++);
9698 if (p->error_indicator) {
9699 D(p->level--);
9700 return NULL;
9701 }
9702 arguments_ty _res = NULL;
9703 int _mark = p->mark;
9704 { // lambda_slash_no_default lambda_param_no_default* lambda_param_with_default* lambda_star_etc?
9705 if (p->error_indicator) {
9706 D(p->level--);
9707 return NULL;
9708 }
9709 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 +01009710 asdl_arg_seq* a;
9711 asdl_arg_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009712 asdl_seq * c;
9713 void *d;
9714 if (
9715 (a = lambda_slash_no_default_rule(p)) // lambda_slash_no_default
9716 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08009717 (b = (asdl_arg_seq*)_loop0_90_rule(p)) // lambda_param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009718 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08009719 (c = _loop0_91_rule(p)) // lambda_param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009720 &&
9721 (d = lambda_star_etc_rule(p), 1) // lambda_star_etc?
9722 )
9723 {
9724 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?"));
9725 _res = _PyPegen_make_arguments ( p , a , NULL , b , c , d );
9726 if (_res == NULL && PyErr_Occurred()) {
9727 p->error_indicator = 1;
9728 D(p->level--);
9729 return NULL;
9730 }
9731 goto done;
9732 }
9733 p->mark = _mark;
9734 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
9735 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_slash_no_default lambda_param_no_default* lambda_param_with_default* lambda_star_etc?"));
9736 }
9737 { // lambda_slash_with_default lambda_param_with_default* lambda_star_etc?
9738 if (p->error_indicator) {
9739 D(p->level--);
9740 return NULL;
9741 }
9742 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?"));
9743 SlashWithDefault* a;
9744 asdl_seq * b;
9745 void *c;
9746 if (
9747 (a = lambda_slash_with_default_rule(p)) // lambda_slash_with_default
9748 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08009749 (b = _loop0_92_rule(p)) // lambda_param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009750 &&
9751 (c = lambda_star_etc_rule(p), 1) // lambda_star_etc?
9752 )
9753 {
9754 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?"));
9755 _res = _PyPegen_make_arguments ( p , NULL , a , NULL , b , c );
9756 if (_res == NULL && PyErr_Occurred()) {
9757 p->error_indicator = 1;
9758 D(p->level--);
9759 return NULL;
9760 }
9761 goto done;
9762 }
9763 p->mark = _mark;
9764 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
9765 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_slash_with_default lambda_param_with_default* lambda_star_etc?"));
9766 }
9767 { // lambda_param_no_default+ lambda_param_with_default* lambda_star_etc?
9768 if (p->error_indicator) {
9769 D(p->level--);
9770 return NULL;
9771 }
9772 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 +01009773 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009774 asdl_seq * b;
9775 void *c;
9776 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08009777 (a = (asdl_arg_seq*)_loop1_93_rule(p)) // lambda_param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009778 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08009779 (b = _loop0_94_rule(p)) // lambda_param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009780 &&
9781 (c = lambda_star_etc_rule(p), 1) // lambda_star_etc?
9782 )
9783 {
9784 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?"));
9785 _res = _PyPegen_make_arguments ( p , NULL , NULL , a , b , c );
9786 if (_res == NULL && PyErr_Occurred()) {
9787 p->error_indicator = 1;
9788 D(p->level--);
9789 return NULL;
9790 }
9791 goto done;
9792 }
9793 p->mark = _mark;
9794 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
9795 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default+ lambda_param_with_default* lambda_star_etc?"));
9796 }
9797 { // lambda_param_with_default+ lambda_star_etc?
9798 if (p->error_indicator) {
9799 D(p->level--);
9800 return NULL;
9801 }
9802 D(fprintf(stderr, "%*c> lambda_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+ lambda_star_etc?"));
9803 asdl_seq * a;
9804 void *b;
9805 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08009806 (a = _loop1_95_rule(p)) // lambda_param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009807 &&
9808 (b = lambda_star_etc_rule(p), 1) // lambda_star_etc?
9809 )
9810 {
9811 D(fprintf(stderr, "%*c+ lambda_parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+ lambda_star_etc?"));
9812 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , a , b );
9813 if (_res == NULL && PyErr_Occurred()) {
9814 p->error_indicator = 1;
9815 D(p->level--);
9816 return NULL;
9817 }
9818 goto done;
9819 }
9820 p->mark = _mark;
9821 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
9822 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default+ lambda_star_etc?"));
9823 }
9824 { // lambda_star_etc
9825 if (p->error_indicator) {
9826 D(p->level--);
9827 return NULL;
9828 }
9829 D(fprintf(stderr, "%*c> lambda_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_star_etc"));
9830 StarEtc* a;
9831 if (
9832 (a = lambda_star_etc_rule(p)) // lambda_star_etc
9833 )
9834 {
9835 D(fprintf(stderr, "%*c+ lambda_parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_star_etc"));
9836 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , NULL , a );
9837 if (_res == NULL && PyErr_Occurred()) {
9838 p->error_indicator = 1;
9839 D(p->level--);
9840 return NULL;
9841 }
9842 goto done;
9843 }
9844 p->mark = _mark;
9845 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
9846 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_star_etc"));
9847 }
9848 _res = NULL;
9849 done:
9850 D(p->level--);
9851 return _res;
9852}
9853
9854// lambda_slash_no_default:
9855// | lambda_param_no_default+ '/' ','
9856// | lambda_param_no_default+ '/' &':'
Pablo Galindoa5634c42020-09-16 19:42:00 +01009857static asdl_arg_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009858lambda_slash_no_default_rule(Parser *p)
9859{
9860 D(p->level++);
9861 if (p->error_indicator) {
9862 D(p->level--);
9863 return NULL;
9864 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01009865 asdl_arg_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009866 int _mark = p->mark;
9867 { // lambda_param_no_default+ '/' ','
9868 if (p->error_indicator) {
9869 D(p->level--);
9870 return NULL;
9871 }
9872 D(fprintf(stderr, "%*c> lambda_slash_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ '/' ','"));
9873 Token * _literal;
9874 Token * _literal_1;
Pablo Galindoa5634c42020-09-16 19:42:00 +01009875 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009876 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08009877 (a = (asdl_arg_seq*)_loop1_96_rule(p)) // lambda_param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009878 &&
9879 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
9880 &&
9881 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
9882 )
9883 {
9884 D(fprintf(stderr, "%*c+ lambda_slash_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ '/' ','"));
9885 _res = a;
9886 if (_res == NULL && PyErr_Occurred()) {
9887 p->error_indicator = 1;
9888 D(p->level--);
9889 return NULL;
9890 }
9891 goto done;
9892 }
9893 p->mark = _mark;
9894 D(fprintf(stderr, "%*c%s lambda_slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
9895 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default+ '/' ','"));
9896 }
9897 { // lambda_param_no_default+ '/' &':'
9898 if (p->error_indicator) {
9899 D(p->level--);
9900 return NULL;
9901 }
9902 D(fprintf(stderr, "%*c> lambda_slash_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ '/' &':'"));
9903 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01009904 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009905 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08009906 (a = (asdl_arg_seq*)_loop1_97_rule(p)) // lambda_param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009907 &&
9908 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
9909 &&
9910 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
9911 )
9912 {
9913 D(fprintf(stderr, "%*c+ lambda_slash_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ '/' &':'"));
9914 _res = a;
9915 if (_res == NULL && PyErr_Occurred()) {
9916 p->error_indicator = 1;
9917 D(p->level--);
9918 return NULL;
9919 }
9920 goto done;
9921 }
9922 p->mark = _mark;
9923 D(fprintf(stderr, "%*c%s lambda_slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
9924 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default+ '/' &':'"));
9925 }
9926 _res = NULL;
9927 done:
9928 D(p->level--);
9929 return _res;
9930}
9931
9932// lambda_slash_with_default:
9933// | lambda_param_no_default* lambda_param_with_default+ '/' ','
9934// | lambda_param_no_default* lambda_param_with_default+ '/' &':'
9935static SlashWithDefault*
9936lambda_slash_with_default_rule(Parser *p)
9937{
9938 D(p->level++);
9939 if (p->error_indicator) {
9940 D(p->level--);
9941 return NULL;
9942 }
9943 SlashWithDefault* _res = NULL;
9944 int _mark = p->mark;
9945 { // lambda_param_no_default* lambda_param_with_default+ '/' ','
9946 if (p->error_indicator) {
9947 D(p->level--);
9948 return NULL;
9949 }
9950 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+ '/' ','"));
9951 Token * _literal;
9952 Token * _literal_1;
9953 asdl_seq * a;
9954 asdl_seq * b;
9955 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08009956 (a = _loop0_98_rule(p)) // lambda_param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009957 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08009958 (b = _loop1_99_rule(p)) // lambda_param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009959 &&
9960 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
9961 &&
9962 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
9963 )
9964 {
9965 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 +01009966 _res = _PyPegen_slash_with_default ( p , ( asdl_arg_seq * ) a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009967 if (_res == NULL && PyErr_Occurred()) {
9968 p->error_indicator = 1;
9969 D(p->level--);
9970 return NULL;
9971 }
9972 goto done;
9973 }
9974 p->mark = _mark;
9975 D(fprintf(stderr, "%*c%s lambda_slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
9976 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default* lambda_param_with_default+ '/' ','"));
9977 }
9978 { // lambda_param_no_default* lambda_param_with_default+ '/' &':'
9979 if (p->error_indicator) {
9980 D(p->level--);
9981 return NULL;
9982 }
9983 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+ '/' &':'"));
9984 Token * _literal;
9985 asdl_seq * a;
9986 asdl_seq * b;
9987 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08009988 (a = _loop0_100_rule(p)) // lambda_param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009989 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08009990 (b = _loop1_101_rule(p)) // lambda_param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009991 &&
9992 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
9993 &&
9994 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
9995 )
9996 {
9997 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 +01009998 _res = _PyPegen_slash_with_default ( p , ( asdl_arg_seq * ) a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009999 if (_res == NULL && PyErr_Occurred()) {
10000 p->error_indicator = 1;
10001 D(p->level--);
10002 return NULL;
10003 }
10004 goto done;
10005 }
10006 p->mark = _mark;
10007 D(fprintf(stderr, "%*c%s lambda_slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
10008 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default* lambda_param_with_default+ '/' &':'"));
10009 }
10010 _res = NULL;
10011 done:
10012 D(p->level--);
10013 return _res;
10014}
10015
10016// lambda_star_etc:
10017// | '*' lambda_param_no_default lambda_param_maybe_default* lambda_kwds?
10018// | '*' ',' lambda_param_maybe_default+ lambda_kwds?
10019// | lambda_kwds
10020// | invalid_lambda_star_etc
10021static StarEtc*
10022lambda_star_etc_rule(Parser *p)
10023{
10024 D(p->level++);
10025 if (p->error_indicator) {
10026 D(p->level--);
10027 return NULL;
10028 }
10029 StarEtc* _res = NULL;
10030 int _mark = p->mark;
10031 { // '*' lambda_param_no_default lambda_param_maybe_default* lambda_kwds?
10032 if (p->error_indicator) {
10033 D(p->level--);
10034 return NULL;
10035 }
10036 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?"));
10037 Token * _literal;
10038 arg_ty a;
10039 asdl_seq * b;
10040 void *c;
10041 if (
10042 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
10043 &&
10044 (a = lambda_param_no_default_rule(p)) // lambda_param_no_default
10045 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080010046 (b = _loop0_102_rule(p)) // lambda_param_maybe_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010047 &&
10048 (c = lambda_kwds_rule(p), 1) // lambda_kwds?
10049 )
10050 {
10051 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?"));
10052 _res = _PyPegen_star_etc ( p , a , b , c );
10053 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_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
10062 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' lambda_param_no_default lambda_param_maybe_default* lambda_kwds?"));
10063 }
10064 { // '*' ',' lambda_param_maybe_default+ lambda_kwds?
10065 if (p->error_indicator) {
10066 D(p->level--);
10067 return NULL;
10068 }
10069 D(fprintf(stderr, "%*c> lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' ',' lambda_param_maybe_default+ lambda_kwds?"));
10070 Token * _literal;
10071 Token * _literal_1;
10072 asdl_seq * b;
10073 void *c;
10074 if (
10075 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
10076 &&
10077 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
10078 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080010079 (b = _loop1_103_rule(p)) // lambda_param_maybe_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010080 &&
10081 (c = lambda_kwds_rule(p), 1) // lambda_kwds?
10082 )
10083 {
10084 D(fprintf(stderr, "%*c+ lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' ',' lambda_param_maybe_default+ lambda_kwds?"));
10085 _res = _PyPegen_star_etc ( p , NULL , b , c );
10086 if (_res == NULL && PyErr_Occurred()) {
10087 p->error_indicator = 1;
10088 D(p->level--);
10089 return NULL;
10090 }
10091 goto done;
10092 }
10093 p->mark = _mark;
10094 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
10095 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' ',' lambda_param_maybe_default+ lambda_kwds?"));
10096 }
10097 { // lambda_kwds
10098 if (p->error_indicator) {
10099 D(p->level--);
10100 return NULL;
10101 }
10102 D(fprintf(stderr, "%*c> lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_kwds"));
10103 arg_ty a;
10104 if (
10105 (a = lambda_kwds_rule(p)) // lambda_kwds
10106 )
10107 {
10108 D(fprintf(stderr, "%*c+ lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_kwds"));
10109 _res = _PyPegen_star_etc ( p , NULL , NULL , a );
10110 if (_res == NULL && PyErr_Occurred()) {
10111 p->error_indicator = 1;
10112 D(p->level--);
10113 return NULL;
10114 }
10115 goto done;
10116 }
10117 p->mark = _mark;
10118 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
10119 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_kwds"));
10120 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020010121 if (p->call_invalid_rules) { // invalid_lambda_star_etc
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010122 if (p->error_indicator) {
10123 D(p->level--);
10124 return NULL;
10125 }
10126 D(fprintf(stderr, "%*c> lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_lambda_star_etc"));
10127 void *invalid_lambda_star_etc_var;
10128 if (
10129 (invalid_lambda_star_etc_var = invalid_lambda_star_etc_rule(p)) // invalid_lambda_star_etc
10130 )
10131 {
10132 D(fprintf(stderr, "%*c+ lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_lambda_star_etc"));
10133 _res = invalid_lambda_star_etc_var;
10134 goto done;
10135 }
10136 p->mark = _mark;
10137 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
10138 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_lambda_star_etc"));
10139 }
10140 _res = NULL;
10141 done:
10142 D(p->level--);
10143 return _res;
10144}
10145
10146// lambda_kwds: '**' lambda_param_no_default
10147static arg_ty
10148lambda_kwds_rule(Parser *p)
10149{
10150 D(p->level++);
10151 if (p->error_indicator) {
10152 D(p->level--);
10153 return NULL;
10154 }
10155 arg_ty _res = NULL;
10156 int _mark = p->mark;
10157 { // '**' lambda_param_no_default
10158 if (p->error_indicator) {
10159 D(p->level--);
10160 return NULL;
10161 }
10162 D(fprintf(stderr, "%*c> lambda_kwds[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' lambda_param_no_default"));
10163 Token * _literal;
10164 arg_ty a;
10165 if (
10166 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
10167 &&
10168 (a = lambda_param_no_default_rule(p)) // lambda_param_no_default
10169 )
10170 {
10171 D(fprintf(stderr, "%*c+ lambda_kwds[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' lambda_param_no_default"));
10172 _res = a;
10173 if (_res == NULL && PyErr_Occurred()) {
10174 p->error_indicator = 1;
10175 D(p->level--);
10176 return NULL;
10177 }
10178 goto done;
10179 }
10180 p->mark = _mark;
10181 D(fprintf(stderr, "%*c%s lambda_kwds[%d-%d]: %s failed!\n", p->level, ' ',
10182 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' lambda_param_no_default"));
10183 }
10184 _res = NULL;
10185 done:
10186 D(p->level--);
10187 return _res;
10188}
10189
10190// lambda_param_no_default: lambda_param ',' | lambda_param &':'
10191static arg_ty
10192lambda_param_no_default_rule(Parser *p)
10193{
10194 D(p->level++);
10195 if (p->error_indicator) {
10196 D(p->level--);
10197 return NULL;
10198 }
10199 arg_ty _res = NULL;
10200 int _mark = p->mark;
10201 { // lambda_param ','
10202 if (p->error_indicator) {
10203 D(p->level--);
10204 return NULL;
10205 }
10206 D(fprintf(stderr, "%*c> lambda_param_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param ','"));
10207 Token * _literal;
10208 arg_ty a;
10209 if (
10210 (a = lambda_param_rule(p)) // lambda_param
10211 &&
10212 (_literal = _PyPegen_expect_token(p, 12)) // token=','
10213 )
10214 {
10215 D(fprintf(stderr, "%*c+ lambda_param_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param ','"));
10216 _res = a;
10217 if (_res == NULL && PyErr_Occurred()) {
10218 p->error_indicator = 1;
10219 D(p->level--);
10220 return NULL;
10221 }
10222 goto done;
10223 }
10224 p->mark = _mark;
10225 D(fprintf(stderr, "%*c%s lambda_param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
10226 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param ','"));
10227 }
10228 { // lambda_param &':'
10229 if (p->error_indicator) {
10230 D(p->level--);
10231 return NULL;
10232 }
10233 D(fprintf(stderr, "%*c> lambda_param_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param &':'"));
10234 arg_ty a;
10235 if (
10236 (a = lambda_param_rule(p)) // lambda_param
10237 &&
10238 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
10239 )
10240 {
10241 D(fprintf(stderr, "%*c+ lambda_param_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param &':'"));
10242 _res = a;
10243 if (_res == NULL && PyErr_Occurred()) {
10244 p->error_indicator = 1;
10245 D(p->level--);
10246 return NULL;
10247 }
10248 goto done;
10249 }
10250 p->mark = _mark;
10251 D(fprintf(stderr, "%*c%s lambda_param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
10252 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param &':'"));
10253 }
10254 _res = NULL;
10255 done:
10256 D(p->level--);
10257 return _res;
10258}
10259
10260// lambda_param_with_default: lambda_param default ',' | lambda_param default &':'
10261static NameDefaultPair*
10262lambda_param_with_default_rule(Parser *p)
10263{
10264 D(p->level++);
10265 if (p->error_indicator) {
10266 D(p->level--);
10267 return NULL;
10268 }
10269 NameDefaultPair* _res = NULL;
10270 int _mark = p->mark;
10271 { // lambda_param default ','
10272 if (p->error_indicator) {
10273 D(p->level--);
10274 return NULL;
10275 }
10276 D(fprintf(stderr, "%*c> lambda_param_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param default ','"));
10277 Token * _literal;
10278 arg_ty a;
10279 expr_ty c;
10280 if (
10281 (a = lambda_param_rule(p)) // lambda_param
10282 &&
10283 (c = default_rule(p)) // default
10284 &&
10285 (_literal = _PyPegen_expect_token(p, 12)) // token=','
10286 )
10287 {
10288 D(fprintf(stderr, "%*c+ lambda_param_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param default ','"));
10289 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
10290 if (_res == NULL && PyErr_Occurred()) {
10291 p->error_indicator = 1;
10292 D(p->level--);
10293 return NULL;
10294 }
10295 goto done;
10296 }
10297 p->mark = _mark;
10298 D(fprintf(stderr, "%*c%s lambda_param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
10299 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default ','"));
10300 }
10301 { // lambda_param default &':'
10302 if (p->error_indicator) {
10303 D(p->level--);
10304 return NULL;
10305 }
10306 D(fprintf(stderr, "%*c> lambda_param_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param default &':'"));
10307 arg_ty a;
10308 expr_ty c;
10309 if (
10310 (a = lambda_param_rule(p)) // lambda_param
10311 &&
10312 (c = default_rule(p)) // default
10313 &&
10314 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
10315 )
10316 {
10317 D(fprintf(stderr, "%*c+ lambda_param_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param default &':'"));
10318 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
10319 if (_res == NULL && PyErr_Occurred()) {
10320 p->error_indicator = 1;
10321 D(p->level--);
10322 return NULL;
10323 }
10324 goto done;
10325 }
10326 p->mark = _mark;
10327 D(fprintf(stderr, "%*c%s lambda_param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
10328 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default &':'"));
10329 }
10330 _res = NULL;
10331 done:
10332 D(p->level--);
10333 return _res;
10334}
10335
10336// lambda_param_maybe_default: lambda_param default? ',' | lambda_param default? &':'
10337static NameDefaultPair*
10338lambda_param_maybe_default_rule(Parser *p)
10339{
10340 D(p->level++);
10341 if (p->error_indicator) {
10342 D(p->level--);
10343 return NULL;
10344 }
10345 NameDefaultPair* _res = NULL;
10346 int _mark = p->mark;
10347 { // lambda_param default? ','
10348 if (p->error_indicator) {
10349 D(p->level--);
10350 return NULL;
10351 }
10352 D(fprintf(stderr, "%*c> lambda_param_maybe_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param default? ','"));
10353 Token * _literal;
10354 arg_ty a;
10355 void *c;
10356 if (
10357 (a = lambda_param_rule(p)) // lambda_param
10358 &&
10359 (c = default_rule(p), 1) // default?
10360 &&
10361 (_literal = _PyPegen_expect_token(p, 12)) // token=','
10362 )
10363 {
10364 D(fprintf(stderr, "%*c+ lambda_param_maybe_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param default? ','"));
10365 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
10366 if (_res == NULL && PyErr_Occurred()) {
10367 p->error_indicator = 1;
10368 D(p->level--);
10369 return NULL;
10370 }
10371 goto done;
10372 }
10373 p->mark = _mark;
10374 D(fprintf(stderr, "%*c%s lambda_param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
10375 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default? ','"));
10376 }
10377 { // lambda_param default? &':'
10378 if (p->error_indicator) {
10379 D(p->level--);
10380 return NULL;
10381 }
10382 D(fprintf(stderr, "%*c> lambda_param_maybe_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param default? &':'"));
10383 arg_ty a;
10384 void *c;
10385 if (
10386 (a = lambda_param_rule(p)) // lambda_param
10387 &&
10388 (c = default_rule(p), 1) // default?
10389 &&
10390 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
10391 )
10392 {
10393 D(fprintf(stderr, "%*c+ lambda_param_maybe_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param default? &':'"));
10394 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
10395 if (_res == NULL && PyErr_Occurred()) {
10396 p->error_indicator = 1;
10397 D(p->level--);
10398 return NULL;
10399 }
10400 goto done;
10401 }
10402 p->mark = _mark;
10403 D(fprintf(stderr, "%*c%s lambda_param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
10404 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default? &':'"));
10405 }
10406 _res = NULL;
10407 done:
10408 D(p->level--);
10409 return _res;
10410}
10411
10412// lambda_param: NAME
10413static arg_ty
10414lambda_param_rule(Parser *p)
10415{
10416 D(p->level++);
10417 if (p->error_indicator) {
10418 D(p->level--);
10419 return NULL;
10420 }
10421 arg_ty _res = NULL;
10422 int _mark = p->mark;
10423 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10424 p->error_indicator = 1;
10425 D(p->level--);
10426 return NULL;
10427 }
10428 int _start_lineno = p->tokens[_mark]->lineno;
10429 UNUSED(_start_lineno); // Only used by EXTRA macro
10430 int _start_col_offset = p->tokens[_mark]->col_offset;
10431 UNUSED(_start_col_offset); // Only used by EXTRA macro
10432 { // NAME
10433 if (p->error_indicator) {
10434 D(p->level--);
10435 return NULL;
10436 }
10437 D(fprintf(stderr, "%*c> lambda_param[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
10438 expr_ty a;
10439 if (
10440 (a = _PyPegen_name_token(p)) // NAME
10441 )
10442 {
10443 D(fprintf(stderr, "%*c+ lambda_param[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
10444 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10445 if (_token == NULL) {
10446 D(p->level--);
10447 return NULL;
10448 }
10449 int _end_lineno = _token->end_lineno;
10450 UNUSED(_end_lineno); // Only used by EXTRA macro
10451 int _end_col_offset = _token->end_col_offset;
10452 UNUSED(_end_col_offset); // Only used by EXTRA macro
10453 _res = _Py_arg ( a -> v . Name . id , NULL , NULL , EXTRA );
10454 if (_res == NULL && PyErr_Occurred()) {
10455 p->error_indicator = 1;
10456 D(p->level--);
10457 return NULL;
10458 }
10459 goto done;
10460 }
10461 p->mark = _mark;
10462 D(fprintf(stderr, "%*c%s lambda_param[%d-%d]: %s failed!\n", p->level, ' ',
10463 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
10464 }
10465 _res = NULL;
10466 done:
10467 D(p->level--);
10468 return _res;
10469}
10470
10471// disjunction: conjunction (('or' conjunction))+ | conjunction
10472static expr_ty
10473disjunction_rule(Parser *p)
10474{
10475 D(p->level++);
10476 if (p->error_indicator) {
10477 D(p->level--);
10478 return NULL;
10479 }
10480 expr_ty _res = NULL;
10481 if (_PyPegen_is_memoized(p, disjunction_type, &_res)) {
10482 D(p->level--);
10483 return _res;
10484 }
10485 int _mark = p->mark;
10486 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10487 p->error_indicator = 1;
10488 D(p->level--);
10489 return NULL;
10490 }
10491 int _start_lineno = p->tokens[_mark]->lineno;
10492 UNUSED(_start_lineno); // Only used by EXTRA macro
10493 int _start_col_offset = p->tokens[_mark]->col_offset;
10494 UNUSED(_start_col_offset); // Only used by EXTRA macro
10495 { // conjunction (('or' conjunction))+
10496 if (p->error_indicator) {
10497 D(p->level--);
10498 return NULL;
10499 }
10500 D(fprintf(stderr, "%*c> disjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "conjunction (('or' conjunction))+"));
10501 expr_ty a;
10502 asdl_seq * b;
10503 if (
10504 (a = conjunction_rule(p)) // conjunction
10505 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080010506 (b = _loop1_104_rule(p)) // (('or' conjunction))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010507 )
10508 {
10509 D(fprintf(stderr, "%*c+ disjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "conjunction (('or' conjunction))+"));
10510 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10511 if (_token == NULL) {
10512 D(p->level--);
10513 return NULL;
10514 }
10515 int _end_lineno = _token->end_lineno;
10516 UNUSED(_end_lineno); // Only used by EXTRA macro
10517 int _end_col_offset = _token->end_col_offset;
10518 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +030010519 _res = _Py_BoolOp ( Or , CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , a , b ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010520 if (_res == NULL && PyErr_Occurred()) {
10521 p->error_indicator = 1;
10522 D(p->level--);
10523 return NULL;
10524 }
10525 goto done;
10526 }
10527 p->mark = _mark;
10528 D(fprintf(stderr, "%*c%s disjunction[%d-%d]: %s failed!\n", p->level, ' ',
10529 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "conjunction (('or' conjunction))+"));
10530 }
10531 { // conjunction
10532 if (p->error_indicator) {
10533 D(p->level--);
10534 return NULL;
10535 }
10536 D(fprintf(stderr, "%*c> disjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "conjunction"));
10537 expr_ty conjunction_var;
10538 if (
10539 (conjunction_var = conjunction_rule(p)) // conjunction
10540 )
10541 {
10542 D(fprintf(stderr, "%*c+ disjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "conjunction"));
10543 _res = conjunction_var;
10544 goto done;
10545 }
10546 p->mark = _mark;
10547 D(fprintf(stderr, "%*c%s disjunction[%d-%d]: %s failed!\n", p->level, ' ',
10548 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "conjunction"));
10549 }
10550 _res = NULL;
10551 done:
10552 _PyPegen_insert_memo(p, _mark, disjunction_type, _res);
10553 D(p->level--);
10554 return _res;
10555}
10556
10557// conjunction: inversion (('and' inversion))+ | inversion
10558static expr_ty
10559conjunction_rule(Parser *p)
10560{
10561 D(p->level++);
10562 if (p->error_indicator) {
10563 D(p->level--);
10564 return NULL;
10565 }
10566 expr_ty _res = NULL;
10567 if (_PyPegen_is_memoized(p, conjunction_type, &_res)) {
10568 D(p->level--);
10569 return _res;
10570 }
10571 int _mark = p->mark;
10572 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10573 p->error_indicator = 1;
10574 D(p->level--);
10575 return NULL;
10576 }
10577 int _start_lineno = p->tokens[_mark]->lineno;
10578 UNUSED(_start_lineno); // Only used by EXTRA macro
10579 int _start_col_offset = p->tokens[_mark]->col_offset;
10580 UNUSED(_start_col_offset); // Only used by EXTRA macro
10581 { // inversion (('and' inversion))+
10582 if (p->error_indicator) {
10583 D(p->level--);
10584 return NULL;
10585 }
10586 D(fprintf(stderr, "%*c> conjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "inversion (('and' inversion))+"));
10587 expr_ty a;
10588 asdl_seq * b;
10589 if (
10590 (a = inversion_rule(p)) // inversion
10591 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080010592 (b = _loop1_105_rule(p)) // (('and' inversion))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010593 )
10594 {
10595 D(fprintf(stderr, "%*c+ conjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "inversion (('and' inversion))+"));
10596 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10597 if (_token == NULL) {
10598 D(p->level--);
10599 return NULL;
10600 }
10601 int _end_lineno = _token->end_lineno;
10602 UNUSED(_end_lineno); // Only used by EXTRA macro
10603 int _end_col_offset = _token->end_col_offset;
10604 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +030010605 _res = _Py_BoolOp ( And , CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , a , b ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010606 if (_res == NULL && PyErr_Occurred()) {
10607 p->error_indicator = 1;
10608 D(p->level--);
10609 return NULL;
10610 }
10611 goto done;
10612 }
10613 p->mark = _mark;
10614 D(fprintf(stderr, "%*c%s conjunction[%d-%d]: %s failed!\n", p->level, ' ',
10615 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "inversion (('and' inversion))+"));
10616 }
10617 { // inversion
10618 if (p->error_indicator) {
10619 D(p->level--);
10620 return NULL;
10621 }
10622 D(fprintf(stderr, "%*c> conjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "inversion"));
10623 expr_ty inversion_var;
10624 if (
10625 (inversion_var = inversion_rule(p)) // inversion
10626 )
10627 {
10628 D(fprintf(stderr, "%*c+ conjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "inversion"));
10629 _res = inversion_var;
10630 goto done;
10631 }
10632 p->mark = _mark;
10633 D(fprintf(stderr, "%*c%s conjunction[%d-%d]: %s failed!\n", p->level, ' ',
10634 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "inversion"));
10635 }
10636 _res = NULL;
10637 done:
10638 _PyPegen_insert_memo(p, _mark, conjunction_type, _res);
10639 D(p->level--);
10640 return _res;
10641}
10642
10643// inversion: 'not' inversion | comparison
10644static expr_ty
10645inversion_rule(Parser *p)
10646{
10647 D(p->level++);
10648 if (p->error_indicator) {
10649 D(p->level--);
10650 return NULL;
10651 }
10652 expr_ty _res = NULL;
10653 if (_PyPegen_is_memoized(p, inversion_type, &_res)) {
10654 D(p->level--);
10655 return _res;
10656 }
10657 int _mark = p->mark;
10658 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10659 p->error_indicator = 1;
10660 D(p->level--);
10661 return NULL;
10662 }
10663 int _start_lineno = p->tokens[_mark]->lineno;
10664 UNUSED(_start_lineno); // Only used by EXTRA macro
10665 int _start_col_offset = p->tokens[_mark]->col_offset;
10666 UNUSED(_start_col_offset); // Only used by EXTRA macro
10667 { // 'not' inversion
10668 if (p->error_indicator) {
10669 D(p->level--);
10670 return NULL;
10671 }
10672 D(fprintf(stderr, "%*c> inversion[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'not' inversion"));
10673 Token * _keyword;
10674 expr_ty a;
10675 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080010676 (_keyword = _PyPegen_expect_token(p, 529)) // token='not'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010677 &&
10678 (a = inversion_rule(p)) // inversion
10679 )
10680 {
10681 D(fprintf(stderr, "%*c+ inversion[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'not' inversion"));
10682 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10683 if (_token == NULL) {
10684 D(p->level--);
10685 return NULL;
10686 }
10687 int _end_lineno = _token->end_lineno;
10688 UNUSED(_end_lineno); // Only used by EXTRA macro
10689 int _end_col_offset = _token->end_col_offset;
10690 UNUSED(_end_col_offset); // Only used by EXTRA macro
10691 _res = _Py_UnaryOp ( Not , a , EXTRA );
10692 if (_res == NULL && PyErr_Occurred()) {
10693 p->error_indicator = 1;
10694 D(p->level--);
10695 return NULL;
10696 }
10697 goto done;
10698 }
10699 p->mark = _mark;
10700 D(fprintf(stderr, "%*c%s inversion[%d-%d]: %s failed!\n", p->level, ' ',
10701 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'not' inversion"));
10702 }
10703 { // comparison
10704 if (p->error_indicator) {
10705 D(p->level--);
10706 return NULL;
10707 }
10708 D(fprintf(stderr, "%*c> inversion[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "comparison"));
10709 expr_ty comparison_var;
10710 if (
10711 (comparison_var = comparison_rule(p)) // comparison
10712 )
10713 {
10714 D(fprintf(stderr, "%*c+ inversion[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "comparison"));
10715 _res = comparison_var;
10716 goto done;
10717 }
10718 p->mark = _mark;
10719 D(fprintf(stderr, "%*c%s inversion[%d-%d]: %s failed!\n", p->level, ' ',
10720 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "comparison"));
10721 }
10722 _res = NULL;
10723 done:
10724 _PyPegen_insert_memo(p, _mark, inversion_type, _res);
10725 D(p->level--);
10726 return _res;
10727}
10728
10729// comparison: bitwise_or compare_op_bitwise_or_pair+ | bitwise_or
10730static expr_ty
10731comparison_rule(Parser *p)
10732{
10733 D(p->level++);
10734 if (p->error_indicator) {
10735 D(p->level--);
10736 return NULL;
10737 }
10738 expr_ty _res = NULL;
10739 int _mark = p->mark;
10740 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10741 p->error_indicator = 1;
10742 D(p->level--);
10743 return NULL;
10744 }
10745 int _start_lineno = p->tokens[_mark]->lineno;
10746 UNUSED(_start_lineno); // Only used by EXTRA macro
10747 int _start_col_offset = p->tokens[_mark]->col_offset;
10748 UNUSED(_start_col_offset); // Only used by EXTRA macro
10749 { // bitwise_or compare_op_bitwise_or_pair+
10750 if (p->error_indicator) {
10751 D(p->level--);
10752 return NULL;
10753 }
10754 D(fprintf(stderr, "%*c> comparison[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_or compare_op_bitwise_or_pair+"));
10755 expr_ty a;
10756 asdl_seq * b;
10757 if (
10758 (a = bitwise_or_rule(p)) // bitwise_or
10759 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080010760 (b = _loop1_106_rule(p)) // compare_op_bitwise_or_pair+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010761 )
10762 {
10763 D(fprintf(stderr, "%*c+ comparison[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_or compare_op_bitwise_or_pair+"));
10764 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10765 if (_token == NULL) {
10766 D(p->level--);
10767 return NULL;
10768 }
10769 int _end_lineno = _token->end_lineno;
10770 UNUSED(_end_lineno); // Only used by EXTRA macro
10771 int _end_col_offset = _token->end_col_offset;
10772 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +030010773 _res = _Py_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 +010010774 if (_res == NULL && PyErr_Occurred()) {
10775 p->error_indicator = 1;
10776 D(p->level--);
10777 return NULL;
10778 }
10779 goto done;
10780 }
10781 p->mark = _mark;
10782 D(fprintf(stderr, "%*c%s comparison[%d-%d]: %s failed!\n", p->level, ' ',
10783 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_or compare_op_bitwise_or_pair+"));
10784 }
10785 { // bitwise_or
10786 if (p->error_indicator) {
10787 D(p->level--);
10788 return NULL;
10789 }
10790 D(fprintf(stderr, "%*c> comparison[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_or"));
10791 expr_ty bitwise_or_var;
10792 if (
10793 (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or
10794 )
10795 {
10796 D(fprintf(stderr, "%*c+ comparison[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_or"));
10797 _res = bitwise_or_var;
10798 goto done;
10799 }
10800 p->mark = _mark;
10801 D(fprintf(stderr, "%*c%s comparison[%d-%d]: %s failed!\n", p->level, ' ',
10802 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_or"));
10803 }
10804 _res = NULL;
10805 done:
10806 D(p->level--);
10807 return _res;
10808}
10809
10810// compare_op_bitwise_or_pair:
10811// | eq_bitwise_or
10812// | noteq_bitwise_or
10813// | lte_bitwise_or
10814// | lt_bitwise_or
10815// | gte_bitwise_or
10816// | gt_bitwise_or
10817// | notin_bitwise_or
10818// | in_bitwise_or
10819// | isnot_bitwise_or
10820// | is_bitwise_or
10821static CmpopExprPair*
10822compare_op_bitwise_or_pair_rule(Parser *p)
10823{
10824 D(p->level++);
10825 if (p->error_indicator) {
10826 D(p->level--);
10827 return NULL;
10828 }
10829 CmpopExprPair* _res = NULL;
10830 int _mark = p->mark;
10831 { // eq_bitwise_or
10832 if (p->error_indicator) {
10833 D(p->level--);
10834 return NULL;
10835 }
10836 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "eq_bitwise_or"));
10837 CmpopExprPair* eq_bitwise_or_var;
10838 if (
10839 (eq_bitwise_or_var = eq_bitwise_or_rule(p)) // eq_bitwise_or
10840 )
10841 {
10842 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "eq_bitwise_or"));
10843 _res = eq_bitwise_or_var;
10844 goto done;
10845 }
10846 p->mark = _mark;
10847 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
10848 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "eq_bitwise_or"));
10849 }
10850 { // noteq_bitwise_or
10851 if (p->error_indicator) {
10852 D(p->level--);
10853 return NULL;
10854 }
10855 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "noteq_bitwise_or"));
10856 CmpopExprPair* noteq_bitwise_or_var;
10857 if (
10858 (noteq_bitwise_or_var = noteq_bitwise_or_rule(p)) // noteq_bitwise_or
10859 )
10860 {
10861 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "noteq_bitwise_or"));
10862 _res = noteq_bitwise_or_var;
10863 goto done;
10864 }
10865 p->mark = _mark;
10866 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
10867 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "noteq_bitwise_or"));
10868 }
10869 { // lte_bitwise_or
10870 if (p->error_indicator) {
10871 D(p->level--);
10872 return NULL;
10873 }
10874 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lte_bitwise_or"));
10875 CmpopExprPair* lte_bitwise_or_var;
10876 if (
10877 (lte_bitwise_or_var = lte_bitwise_or_rule(p)) // lte_bitwise_or
10878 )
10879 {
10880 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lte_bitwise_or"));
10881 _res = lte_bitwise_or_var;
10882 goto done;
10883 }
10884 p->mark = _mark;
10885 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
10886 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lte_bitwise_or"));
10887 }
10888 { // lt_bitwise_or
10889 if (p->error_indicator) {
10890 D(p->level--);
10891 return NULL;
10892 }
10893 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lt_bitwise_or"));
10894 CmpopExprPair* lt_bitwise_or_var;
10895 if (
10896 (lt_bitwise_or_var = lt_bitwise_or_rule(p)) // lt_bitwise_or
10897 )
10898 {
10899 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lt_bitwise_or"));
10900 _res = lt_bitwise_or_var;
10901 goto done;
10902 }
10903 p->mark = _mark;
10904 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
10905 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lt_bitwise_or"));
10906 }
10907 { // gte_bitwise_or
10908 if (p->error_indicator) {
10909 D(p->level--);
10910 return NULL;
10911 }
10912 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "gte_bitwise_or"));
10913 CmpopExprPair* gte_bitwise_or_var;
10914 if (
10915 (gte_bitwise_or_var = gte_bitwise_or_rule(p)) // gte_bitwise_or
10916 )
10917 {
10918 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "gte_bitwise_or"));
10919 _res = gte_bitwise_or_var;
10920 goto done;
10921 }
10922 p->mark = _mark;
10923 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
10924 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "gte_bitwise_or"));
10925 }
10926 { // gt_bitwise_or
10927 if (p->error_indicator) {
10928 D(p->level--);
10929 return NULL;
10930 }
10931 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "gt_bitwise_or"));
10932 CmpopExprPair* gt_bitwise_or_var;
10933 if (
10934 (gt_bitwise_or_var = gt_bitwise_or_rule(p)) // gt_bitwise_or
10935 )
10936 {
10937 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "gt_bitwise_or"));
10938 _res = gt_bitwise_or_var;
10939 goto done;
10940 }
10941 p->mark = _mark;
10942 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
10943 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "gt_bitwise_or"));
10944 }
10945 { // notin_bitwise_or
10946 if (p->error_indicator) {
10947 D(p->level--);
10948 return NULL;
10949 }
10950 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "notin_bitwise_or"));
10951 CmpopExprPair* notin_bitwise_or_var;
10952 if (
10953 (notin_bitwise_or_var = notin_bitwise_or_rule(p)) // notin_bitwise_or
10954 )
10955 {
10956 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "notin_bitwise_or"));
10957 _res = notin_bitwise_or_var;
10958 goto done;
10959 }
10960 p->mark = _mark;
10961 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
10962 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "notin_bitwise_or"));
10963 }
10964 { // in_bitwise_or
10965 if (p->error_indicator) {
10966 D(p->level--);
10967 return NULL;
10968 }
10969 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "in_bitwise_or"));
10970 CmpopExprPair* in_bitwise_or_var;
10971 if (
10972 (in_bitwise_or_var = in_bitwise_or_rule(p)) // in_bitwise_or
10973 )
10974 {
10975 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "in_bitwise_or"));
10976 _res = in_bitwise_or_var;
10977 goto done;
10978 }
10979 p->mark = _mark;
10980 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
10981 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "in_bitwise_or"));
10982 }
10983 { // isnot_bitwise_or
10984 if (p->error_indicator) {
10985 D(p->level--);
10986 return NULL;
10987 }
10988 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "isnot_bitwise_or"));
10989 CmpopExprPair* isnot_bitwise_or_var;
10990 if (
10991 (isnot_bitwise_or_var = isnot_bitwise_or_rule(p)) // isnot_bitwise_or
10992 )
10993 {
10994 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "isnot_bitwise_or"));
10995 _res = isnot_bitwise_or_var;
10996 goto done;
10997 }
10998 p->mark = _mark;
10999 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
11000 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "isnot_bitwise_or"));
11001 }
11002 { // is_bitwise_or
11003 if (p->error_indicator) {
11004 D(p->level--);
11005 return NULL;
11006 }
11007 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "is_bitwise_or"));
11008 CmpopExprPair* is_bitwise_or_var;
11009 if (
11010 (is_bitwise_or_var = is_bitwise_or_rule(p)) // is_bitwise_or
11011 )
11012 {
11013 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "is_bitwise_or"));
11014 _res = is_bitwise_or_var;
11015 goto done;
11016 }
11017 p->mark = _mark;
11018 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
11019 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "is_bitwise_or"));
11020 }
11021 _res = NULL;
11022 done:
11023 D(p->level--);
11024 return _res;
11025}
11026
11027// eq_bitwise_or: '==' bitwise_or
11028static CmpopExprPair*
11029eq_bitwise_or_rule(Parser *p)
11030{
11031 D(p->level++);
11032 if (p->error_indicator) {
11033 D(p->level--);
11034 return NULL;
11035 }
11036 CmpopExprPair* _res = NULL;
11037 int _mark = p->mark;
11038 { // '==' bitwise_or
11039 if (p->error_indicator) {
11040 D(p->level--);
11041 return NULL;
11042 }
11043 D(fprintf(stderr, "%*c> eq_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'==' bitwise_or"));
11044 Token * _literal;
11045 expr_ty a;
11046 if (
11047 (_literal = _PyPegen_expect_token(p, 27)) // token='=='
11048 &&
11049 (a = bitwise_or_rule(p)) // bitwise_or
11050 )
11051 {
11052 D(fprintf(stderr, "%*c+ eq_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'==' bitwise_or"));
11053 _res = _PyPegen_cmpop_expr_pair ( p , Eq , a );
11054 if (_res == NULL && PyErr_Occurred()) {
11055 p->error_indicator = 1;
11056 D(p->level--);
11057 return NULL;
11058 }
11059 goto done;
11060 }
11061 p->mark = _mark;
11062 D(fprintf(stderr, "%*c%s eq_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
11063 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'==' bitwise_or"));
11064 }
11065 _res = NULL;
11066 done:
11067 D(p->level--);
11068 return _res;
11069}
11070
11071// noteq_bitwise_or: ('!=') bitwise_or
11072static CmpopExprPair*
11073noteq_bitwise_or_rule(Parser *p)
11074{
11075 D(p->level++);
11076 if (p->error_indicator) {
11077 D(p->level--);
11078 return NULL;
11079 }
11080 CmpopExprPair* _res = NULL;
11081 int _mark = p->mark;
11082 { // ('!=') bitwise_or
11083 if (p->error_indicator) {
11084 D(p->level--);
11085 return NULL;
11086 }
11087 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 -080011088 void *_tmp_107_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011089 expr_ty a;
11090 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080011091 (_tmp_107_var = _tmp_107_rule(p)) // '!='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011092 &&
11093 (a = bitwise_or_rule(p)) // bitwise_or
11094 )
11095 {
11096 D(fprintf(stderr, "%*c+ noteq_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "('!=') bitwise_or"));
11097 _res = _PyPegen_cmpop_expr_pair ( p , NotEq , a );
11098 if (_res == NULL && PyErr_Occurred()) {
11099 p->error_indicator = 1;
11100 D(p->level--);
11101 return NULL;
11102 }
11103 goto done;
11104 }
11105 p->mark = _mark;
11106 D(fprintf(stderr, "%*c%s noteq_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
11107 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('!=') bitwise_or"));
11108 }
11109 _res = NULL;
11110 done:
11111 D(p->level--);
11112 return _res;
11113}
11114
11115// lte_bitwise_or: '<=' bitwise_or
11116static CmpopExprPair*
11117lte_bitwise_or_rule(Parser *p)
11118{
11119 D(p->level++);
11120 if (p->error_indicator) {
11121 D(p->level--);
11122 return NULL;
11123 }
11124 CmpopExprPair* _res = NULL;
11125 int _mark = p->mark;
11126 { // '<=' bitwise_or
11127 if (p->error_indicator) {
11128 D(p->level--);
11129 return NULL;
11130 }
11131 D(fprintf(stderr, "%*c> lte_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'<=' bitwise_or"));
11132 Token * _literal;
11133 expr_ty a;
11134 if (
11135 (_literal = _PyPegen_expect_token(p, 29)) // token='<='
11136 &&
11137 (a = bitwise_or_rule(p)) // bitwise_or
11138 )
11139 {
11140 D(fprintf(stderr, "%*c+ lte_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'<=' bitwise_or"));
11141 _res = _PyPegen_cmpop_expr_pair ( p , LtE , a );
11142 if (_res == NULL && PyErr_Occurred()) {
11143 p->error_indicator = 1;
11144 D(p->level--);
11145 return NULL;
11146 }
11147 goto done;
11148 }
11149 p->mark = _mark;
11150 D(fprintf(stderr, "%*c%s lte_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
11151 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'<=' bitwise_or"));
11152 }
11153 _res = NULL;
11154 done:
11155 D(p->level--);
11156 return _res;
11157}
11158
11159// lt_bitwise_or: '<' bitwise_or
11160static CmpopExprPair*
11161lt_bitwise_or_rule(Parser *p)
11162{
11163 D(p->level++);
11164 if (p->error_indicator) {
11165 D(p->level--);
11166 return NULL;
11167 }
11168 CmpopExprPair* _res = NULL;
11169 int _mark = p->mark;
11170 { // '<' bitwise_or
11171 if (p->error_indicator) {
11172 D(p->level--);
11173 return NULL;
11174 }
11175 D(fprintf(stderr, "%*c> lt_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'<' bitwise_or"));
11176 Token * _literal;
11177 expr_ty a;
11178 if (
11179 (_literal = _PyPegen_expect_token(p, 20)) // token='<'
11180 &&
11181 (a = bitwise_or_rule(p)) // bitwise_or
11182 )
11183 {
11184 D(fprintf(stderr, "%*c+ lt_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'<' bitwise_or"));
11185 _res = _PyPegen_cmpop_expr_pair ( p , Lt , a );
11186 if (_res == NULL && PyErr_Occurred()) {
11187 p->error_indicator = 1;
11188 D(p->level--);
11189 return NULL;
11190 }
11191 goto done;
11192 }
11193 p->mark = _mark;
11194 D(fprintf(stderr, "%*c%s lt_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
11195 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'<' bitwise_or"));
11196 }
11197 _res = NULL;
11198 done:
11199 D(p->level--);
11200 return _res;
11201}
11202
11203// gte_bitwise_or: '>=' bitwise_or
11204static CmpopExprPair*
11205gte_bitwise_or_rule(Parser *p)
11206{
11207 D(p->level++);
11208 if (p->error_indicator) {
11209 D(p->level--);
11210 return NULL;
11211 }
11212 CmpopExprPair* _res = NULL;
11213 int _mark = p->mark;
11214 { // '>=' bitwise_or
11215 if (p->error_indicator) {
11216 D(p->level--);
11217 return NULL;
11218 }
11219 D(fprintf(stderr, "%*c> gte_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'>=' bitwise_or"));
11220 Token * _literal;
11221 expr_ty a;
11222 if (
11223 (_literal = _PyPegen_expect_token(p, 30)) // token='>='
11224 &&
11225 (a = bitwise_or_rule(p)) // bitwise_or
11226 )
11227 {
11228 D(fprintf(stderr, "%*c+ gte_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'>=' bitwise_or"));
11229 _res = _PyPegen_cmpop_expr_pair ( p , GtE , a );
11230 if (_res == NULL && PyErr_Occurred()) {
11231 p->error_indicator = 1;
11232 D(p->level--);
11233 return NULL;
11234 }
11235 goto done;
11236 }
11237 p->mark = _mark;
11238 D(fprintf(stderr, "%*c%s gte_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
11239 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'>=' bitwise_or"));
11240 }
11241 _res = NULL;
11242 done:
11243 D(p->level--);
11244 return _res;
11245}
11246
11247// gt_bitwise_or: '>' bitwise_or
11248static CmpopExprPair*
11249gt_bitwise_or_rule(Parser *p)
11250{
11251 D(p->level++);
11252 if (p->error_indicator) {
11253 D(p->level--);
11254 return NULL;
11255 }
11256 CmpopExprPair* _res = NULL;
11257 int _mark = p->mark;
11258 { // '>' bitwise_or
11259 if (p->error_indicator) {
11260 D(p->level--);
11261 return NULL;
11262 }
11263 D(fprintf(stderr, "%*c> gt_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'>' bitwise_or"));
11264 Token * _literal;
11265 expr_ty a;
11266 if (
11267 (_literal = _PyPegen_expect_token(p, 21)) // token='>'
11268 &&
11269 (a = bitwise_or_rule(p)) // bitwise_or
11270 )
11271 {
11272 D(fprintf(stderr, "%*c+ gt_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'>' bitwise_or"));
11273 _res = _PyPegen_cmpop_expr_pair ( p , Gt , a );
11274 if (_res == NULL && PyErr_Occurred()) {
11275 p->error_indicator = 1;
11276 D(p->level--);
11277 return NULL;
11278 }
11279 goto done;
11280 }
11281 p->mark = _mark;
11282 D(fprintf(stderr, "%*c%s gt_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
11283 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'>' bitwise_or"));
11284 }
11285 _res = NULL;
11286 done:
11287 D(p->level--);
11288 return _res;
11289}
11290
11291// notin_bitwise_or: 'not' 'in' bitwise_or
11292static CmpopExprPair*
11293notin_bitwise_or_rule(Parser *p)
11294{
11295 D(p->level++);
11296 if (p->error_indicator) {
11297 D(p->level--);
11298 return NULL;
11299 }
11300 CmpopExprPair* _res = NULL;
11301 int _mark = p->mark;
11302 { // 'not' 'in' bitwise_or
11303 if (p->error_indicator) {
11304 D(p->level--);
11305 return NULL;
11306 }
11307 D(fprintf(stderr, "%*c> notin_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'not' 'in' bitwise_or"));
11308 Token * _keyword;
11309 Token * _keyword_1;
11310 expr_ty a;
11311 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080011312 (_keyword = _PyPegen_expect_token(p, 529)) // token='not'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011313 &&
11314 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
11315 &&
11316 (a = bitwise_or_rule(p)) // bitwise_or
11317 )
11318 {
11319 D(fprintf(stderr, "%*c+ notin_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'not' 'in' bitwise_or"));
11320 _res = _PyPegen_cmpop_expr_pair ( p , NotIn , a );
11321 if (_res == NULL && PyErr_Occurred()) {
11322 p->error_indicator = 1;
11323 D(p->level--);
11324 return NULL;
11325 }
11326 goto done;
11327 }
11328 p->mark = _mark;
11329 D(fprintf(stderr, "%*c%s notin_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
11330 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'not' 'in' bitwise_or"));
11331 }
11332 _res = NULL;
11333 done:
11334 D(p->level--);
11335 return _res;
11336}
11337
11338// in_bitwise_or: 'in' bitwise_or
11339static CmpopExprPair*
11340in_bitwise_or_rule(Parser *p)
11341{
11342 D(p->level++);
11343 if (p->error_indicator) {
11344 D(p->level--);
11345 return NULL;
11346 }
11347 CmpopExprPair* _res = NULL;
11348 int _mark = p->mark;
11349 { // 'in' bitwise_or
11350 if (p->error_indicator) {
11351 D(p->level--);
11352 return NULL;
11353 }
11354 D(fprintf(stderr, "%*c> in_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'in' bitwise_or"));
11355 Token * _keyword;
11356 expr_ty a;
11357 if (
11358 (_keyword = _PyPegen_expect_token(p, 518)) // token='in'
11359 &&
11360 (a = bitwise_or_rule(p)) // bitwise_or
11361 )
11362 {
11363 D(fprintf(stderr, "%*c+ in_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'in' bitwise_or"));
11364 _res = _PyPegen_cmpop_expr_pair ( p , In , a );
11365 if (_res == NULL && PyErr_Occurred()) {
11366 p->error_indicator = 1;
11367 D(p->level--);
11368 return NULL;
11369 }
11370 goto done;
11371 }
11372 p->mark = _mark;
11373 D(fprintf(stderr, "%*c%s in_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
11374 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'in' bitwise_or"));
11375 }
11376 _res = NULL;
11377 done:
11378 D(p->level--);
11379 return _res;
11380}
11381
11382// isnot_bitwise_or: 'is' 'not' bitwise_or
11383static CmpopExprPair*
11384isnot_bitwise_or_rule(Parser *p)
11385{
11386 D(p->level++);
11387 if (p->error_indicator) {
11388 D(p->level--);
11389 return NULL;
11390 }
11391 CmpopExprPair* _res = NULL;
11392 int _mark = p->mark;
11393 { // 'is' 'not' bitwise_or
11394 if (p->error_indicator) {
11395 D(p->level--);
11396 return NULL;
11397 }
11398 D(fprintf(stderr, "%*c> isnot_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'is' 'not' bitwise_or"));
11399 Token * _keyword;
11400 Token * _keyword_1;
11401 expr_ty a;
11402 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080011403 (_keyword = _PyPegen_expect_token(p, 530)) // token='is'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011404 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080011405 (_keyword_1 = _PyPegen_expect_token(p, 529)) // token='not'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011406 &&
11407 (a = bitwise_or_rule(p)) // bitwise_or
11408 )
11409 {
11410 D(fprintf(stderr, "%*c+ isnot_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'is' 'not' bitwise_or"));
11411 _res = _PyPegen_cmpop_expr_pair ( p , IsNot , a );
11412 if (_res == NULL && PyErr_Occurred()) {
11413 p->error_indicator = 1;
11414 D(p->level--);
11415 return NULL;
11416 }
11417 goto done;
11418 }
11419 p->mark = _mark;
11420 D(fprintf(stderr, "%*c%s isnot_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
11421 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'is' 'not' bitwise_or"));
11422 }
11423 _res = NULL;
11424 done:
11425 D(p->level--);
11426 return _res;
11427}
11428
11429// is_bitwise_or: 'is' bitwise_or
11430static CmpopExprPair*
11431is_bitwise_or_rule(Parser *p)
11432{
11433 D(p->level++);
11434 if (p->error_indicator) {
11435 D(p->level--);
11436 return NULL;
11437 }
11438 CmpopExprPair* _res = NULL;
11439 int _mark = p->mark;
11440 { // 'is' bitwise_or
11441 if (p->error_indicator) {
11442 D(p->level--);
11443 return NULL;
11444 }
11445 D(fprintf(stderr, "%*c> is_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'is' bitwise_or"));
11446 Token * _keyword;
11447 expr_ty a;
11448 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080011449 (_keyword = _PyPegen_expect_token(p, 530)) // token='is'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011450 &&
11451 (a = bitwise_or_rule(p)) // bitwise_or
11452 )
11453 {
11454 D(fprintf(stderr, "%*c+ is_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'is' bitwise_or"));
11455 _res = _PyPegen_cmpop_expr_pair ( p , Is , a );
11456 if (_res == NULL && PyErr_Occurred()) {
11457 p->error_indicator = 1;
11458 D(p->level--);
11459 return NULL;
11460 }
11461 goto done;
11462 }
11463 p->mark = _mark;
11464 D(fprintf(stderr, "%*c%s is_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
11465 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'is' bitwise_or"));
11466 }
11467 _res = NULL;
11468 done:
11469 D(p->level--);
11470 return _res;
11471}
11472
11473// Left-recursive
11474// bitwise_or: bitwise_or '|' bitwise_xor | bitwise_xor
11475static expr_ty bitwise_or_raw(Parser *);
11476static expr_ty
11477bitwise_or_rule(Parser *p)
11478{
11479 D(p->level++);
11480 expr_ty _res = NULL;
11481 if (_PyPegen_is_memoized(p, bitwise_or_type, &_res)) {
11482 D(p->level--);
11483 return _res;
11484 }
11485 int _mark = p->mark;
11486 int _resmark = p->mark;
11487 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080011488 int tmpvar_2 = _PyPegen_update_memo(p, _mark, bitwise_or_type, _res);
11489 if (tmpvar_2) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011490 D(p->level--);
11491 return _res;
11492 }
11493 p->mark = _mark;
11494 void *_raw = bitwise_or_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020011495 if (p->error_indicator)
11496 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011497 if (_raw == NULL || p->mark <= _resmark)
11498 break;
11499 _resmark = p->mark;
11500 _res = _raw;
11501 }
11502 p->mark = _resmark;
11503 D(p->level--);
11504 return _res;
11505}
11506static expr_ty
11507bitwise_or_raw(Parser *p)
11508{
11509 D(p->level++);
11510 if (p->error_indicator) {
11511 D(p->level--);
11512 return NULL;
11513 }
11514 expr_ty _res = NULL;
11515 int _mark = p->mark;
11516 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11517 p->error_indicator = 1;
11518 D(p->level--);
11519 return NULL;
11520 }
11521 int _start_lineno = p->tokens[_mark]->lineno;
11522 UNUSED(_start_lineno); // Only used by EXTRA macro
11523 int _start_col_offset = p->tokens[_mark]->col_offset;
11524 UNUSED(_start_col_offset); // Only used by EXTRA macro
11525 { // bitwise_or '|' bitwise_xor
11526 if (p->error_indicator) {
11527 D(p->level--);
11528 return NULL;
11529 }
11530 D(fprintf(stderr, "%*c> bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_or '|' bitwise_xor"));
11531 Token * _literal;
11532 expr_ty a;
11533 expr_ty b;
11534 if (
11535 (a = bitwise_or_rule(p)) // bitwise_or
11536 &&
11537 (_literal = _PyPegen_expect_token(p, 18)) // token='|'
11538 &&
11539 (b = bitwise_xor_rule(p)) // bitwise_xor
11540 )
11541 {
11542 D(fprintf(stderr, "%*c+ bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_or '|' bitwise_xor"));
11543 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11544 if (_token == NULL) {
11545 D(p->level--);
11546 return NULL;
11547 }
11548 int _end_lineno = _token->end_lineno;
11549 UNUSED(_end_lineno); // Only used by EXTRA macro
11550 int _end_col_offset = _token->end_col_offset;
11551 UNUSED(_end_col_offset); // Only used by EXTRA macro
11552 _res = _Py_BinOp ( a , BitOr , b , EXTRA );
11553 if (_res == NULL && PyErr_Occurred()) {
11554 p->error_indicator = 1;
11555 D(p->level--);
11556 return NULL;
11557 }
11558 goto done;
11559 }
11560 p->mark = _mark;
11561 D(fprintf(stderr, "%*c%s bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
11562 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_or '|' bitwise_xor"));
11563 }
11564 { // bitwise_xor
11565 if (p->error_indicator) {
11566 D(p->level--);
11567 return NULL;
11568 }
11569 D(fprintf(stderr, "%*c> bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_xor"));
11570 expr_ty bitwise_xor_var;
11571 if (
11572 (bitwise_xor_var = bitwise_xor_rule(p)) // bitwise_xor
11573 )
11574 {
11575 D(fprintf(stderr, "%*c+ bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_xor"));
11576 _res = bitwise_xor_var;
11577 goto done;
11578 }
11579 p->mark = _mark;
11580 D(fprintf(stderr, "%*c%s bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
11581 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_xor"));
11582 }
11583 _res = NULL;
11584 done:
11585 D(p->level--);
11586 return _res;
11587}
11588
11589// Left-recursive
11590// bitwise_xor: bitwise_xor '^' bitwise_and | bitwise_and
11591static expr_ty bitwise_xor_raw(Parser *);
11592static expr_ty
11593bitwise_xor_rule(Parser *p)
11594{
11595 D(p->level++);
11596 expr_ty _res = NULL;
11597 if (_PyPegen_is_memoized(p, bitwise_xor_type, &_res)) {
11598 D(p->level--);
11599 return _res;
11600 }
11601 int _mark = p->mark;
11602 int _resmark = p->mark;
11603 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080011604 int tmpvar_3 = _PyPegen_update_memo(p, _mark, bitwise_xor_type, _res);
11605 if (tmpvar_3) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011606 D(p->level--);
11607 return _res;
11608 }
11609 p->mark = _mark;
11610 void *_raw = bitwise_xor_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020011611 if (p->error_indicator)
11612 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011613 if (_raw == NULL || p->mark <= _resmark)
11614 break;
11615 _resmark = p->mark;
11616 _res = _raw;
11617 }
11618 p->mark = _resmark;
11619 D(p->level--);
11620 return _res;
11621}
11622static expr_ty
11623bitwise_xor_raw(Parser *p)
11624{
11625 D(p->level++);
11626 if (p->error_indicator) {
11627 D(p->level--);
11628 return NULL;
11629 }
11630 expr_ty _res = NULL;
11631 int _mark = p->mark;
11632 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11633 p->error_indicator = 1;
11634 D(p->level--);
11635 return NULL;
11636 }
11637 int _start_lineno = p->tokens[_mark]->lineno;
11638 UNUSED(_start_lineno); // Only used by EXTRA macro
11639 int _start_col_offset = p->tokens[_mark]->col_offset;
11640 UNUSED(_start_col_offset); // Only used by EXTRA macro
11641 { // bitwise_xor '^' bitwise_and
11642 if (p->error_indicator) {
11643 D(p->level--);
11644 return NULL;
11645 }
11646 D(fprintf(stderr, "%*c> bitwise_xor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_xor '^' bitwise_and"));
11647 Token * _literal;
11648 expr_ty a;
11649 expr_ty b;
11650 if (
11651 (a = bitwise_xor_rule(p)) // bitwise_xor
11652 &&
11653 (_literal = _PyPegen_expect_token(p, 32)) // token='^'
11654 &&
11655 (b = bitwise_and_rule(p)) // bitwise_and
11656 )
11657 {
11658 D(fprintf(stderr, "%*c+ bitwise_xor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_xor '^' bitwise_and"));
11659 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11660 if (_token == NULL) {
11661 D(p->level--);
11662 return NULL;
11663 }
11664 int _end_lineno = _token->end_lineno;
11665 UNUSED(_end_lineno); // Only used by EXTRA macro
11666 int _end_col_offset = _token->end_col_offset;
11667 UNUSED(_end_col_offset); // Only used by EXTRA macro
11668 _res = _Py_BinOp ( a , BitXor , b , EXTRA );
11669 if (_res == NULL && PyErr_Occurred()) {
11670 p->error_indicator = 1;
11671 D(p->level--);
11672 return NULL;
11673 }
11674 goto done;
11675 }
11676 p->mark = _mark;
11677 D(fprintf(stderr, "%*c%s bitwise_xor[%d-%d]: %s failed!\n", p->level, ' ',
11678 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_xor '^' bitwise_and"));
11679 }
11680 { // bitwise_and
11681 if (p->error_indicator) {
11682 D(p->level--);
11683 return NULL;
11684 }
11685 D(fprintf(stderr, "%*c> bitwise_xor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_and"));
11686 expr_ty bitwise_and_var;
11687 if (
11688 (bitwise_and_var = bitwise_and_rule(p)) // bitwise_and
11689 )
11690 {
11691 D(fprintf(stderr, "%*c+ bitwise_xor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_and"));
11692 _res = bitwise_and_var;
11693 goto done;
11694 }
11695 p->mark = _mark;
11696 D(fprintf(stderr, "%*c%s bitwise_xor[%d-%d]: %s failed!\n", p->level, ' ',
11697 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_and"));
11698 }
11699 _res = NULL;
11700 done:
11701 D(p->level--);
11702 return _res;
11703}
11704
11705// Left-recursive
11706// bitwise_and: bitwise_and '&' shift_expr | shift_expr
11707static expr_ty bitwise_and_raw(Parser *);
11708static expr_ty
11709bitwise_and_rule(Parser *p)
11710{
11711 D(p->level++);
11712 expr_ty _res = NULL;
11713 if (_PyPegen_is_memoized(p, bitwise_and_type, &_res)) {
11714 D(p->level--);
11715 return _res;
11716 }
11717 int _mark = p->mark;
11718 int _resmark = p->mark;
11719 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080011720 int tmpvar_4 = _PyPegen_update_memo(p, _mark, bitwise_and_type, _res);
11721 if (tmpvar_4) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011722 D(p->level--);
11723 return _res;
11724 }
11725 p->mark = _mark;
11726 void *_raw = bitwise_and_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020011727 if (p->error_indicator)
11728 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011729 if (_raw == NULL || p->mark <= _resmark)
11730 break;
11731 _resmark = p->mark;
11732 _res = _raw;
11733 }
11734 p->mark = _resmark;
11735 D(p->level--);
11736 return _res;
11737}
11738static expr_ty
11739bitwise_and_raw(Parser *p)
11740{
11741 D(p->level++);
11742 if (p->error_indicator) {
11743 D(p->level--);
11744 return NULL;
11745 }
11746 expr_ty _res = NULL;
11747 int _mark = p->mark;
11748 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11749 p->error_indicator = 1;
11750 D(p->level--);
11751 return NULL;
11752 }
11753 int _start_lineno = p->tokens[_mark]->lineno;
11754 UNUSED(_start_lineno); // Only used by EXTRA macro
11755 int _start_col_offset = p->tokens[_mark]->col_offset;
11756 UNUSED(_start_col_offset); // Only used by EXTRA macro
11757 { // bitwise_and '&' shift_expr
11758 if (p->error_indicator) {
11759 D(p->level--);
11760 return NULL;
11761 }
11762 D(fprintf(stderr, "%*c> bitwise_and[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_and '&' shift_expr"));
11763 Token * _literal;
11764 expr_ty a;
11765 expr_ty b;
11766 if (
11767 (a = bitwise_and_rule(p)) // bitwise_and
11768 &&
11769 (_literal = _PyPegen_expect_token(p, 19)) // token='&'
11770 &&
11771 (b = shift_expr_rule(p)) // shift_expr
11772 )
11773 {
11774 D(fprintf(stderr, "%*c+ bitwise_and[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_and '&' shift_expr"));
11775 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11776 if (_token == NULL) {
11777 D(p->level--);
11778 return NULL;
11779 }
11780 int _end_lineno = _token->end_lineno;
11781 UNUSED(_end_lineno); // Only used by EXTRA macro
11782 int _end_col_offset = _token->end_col_offset;
11783 UNUSED(_end_col_offset); // Only used by EXTRA macro
11784 _res = _Py_BinOp ( a , BitAnd , b , EXTRA );
11785 if (_res == NULL && PyErr_Occurred()) {
11786 p->error_indicator = 1;
11787 D(p->level--);
11788 return NULL;
11789 }
11790 goto done;
11791 }
11792 p->mark = _mark;
11793 D(fprintf(stderr, "%*c%s bitwise_and[%d-%d]: %s failed!\n", p->level, ' ',
11794 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_and '&' shift_expr"));
11795 }
11796 { // shift_expr
11797 if (p->error_indicator) {
11798 D(p->level--);
11799 return NULL;
11800 }
11801 D(fprintf(stderr, "%*c> bitwise_and[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "shift_expr"));
11802 expr_ty shift_expr_var;
11803 if (
11804 (shift_expr_var = shift_expr_rule(p)) // shift_expr
11805 )
11806 {
11807 D(fprintf(stderr, "%*c+ bitwise_and[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "shift_expr"));
11808 _res = shift_expr_var;
11809 goto done;
11810 }
11811 p->mark = _mark;
11812 D(fprintf(stderr, "%*c%s bitwise_and[%d-%d]: %s failed!\n", p->level, ' ',
11813 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "shift_expr"));
11814 }
11815 _res = NULL;
11816 done:
11817 D(p->level--);
11818 return _res;
11819}
11820
11821// Left-recursive
11822// shift_expr: shift_expr '<<' sum | shift_expr '>>' sum | sum
11823static expr_ty shift_expr_raw(Parser *);
11824static expr_ty
11825shift_expr_rule(Parser *p)
11826{
11827 D(p->level++);
11828 expr_ty _res = NULL;
11829 if (_PyPegen_is_memoized(p, shift_expr_type, &_res)) {
11830 D(p->level--);
11831 return _res;
11832 }
11833 int _mark = p->mark;
11834 int _resmark = p->mark;
11835 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080011836 int tmpvar_5 = _PyPegen_update_memo(p, _mark, shift_expr_type, _res);
11837 if (tmpvar_5) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011838 D(p->level--);
11839 return _res;
11840 }
11841 p->mark = _mark;
11842 void *_raw = shift_expr_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020011843 if (p->error_indicator)
11844 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011845 if (_raw == NULL || p->mark <= _resmark)
11846 break;
11847 _resmark = p->mark;
11848 _res = _raw;
11849 }
11850 p->mark = _resmark;
11851 D(p->level--);
11852 return _res;
11853}
11854static expr_ty
11855shift_expr_raw(Parser *p)
11856{
11857 D(p->level++);
11858 if (p->error_indicator) {
11859 D(p->level--);
11860 return NULL;
11861 }
11862 expr_ty _res = NULL;
11863 int _mark = p->mark;
11864 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11865 p->error_indicator = 1;
11866 D(p->level--);
11867 return NULL;
11868 }
11869 int _start_lineno = p->tokens[_mark]->lineno;
11870 UNUSED(_start_lineno); // Only used by EXTRA macro
11871 int _start_col_offset = p->tokens[_mark]->col_offset;
11872 UNUSED(_start_col_offset); // Only used by EXTRA macro
11873 { // shift_expr '<<' sum
11874 if (p->error_indicator) {
11875 D(p->level--);
11876 return NULL;
11877 }
11878 D(fprintf(stderr, "%*c> shift_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "shift_expr '<<' sum"));
11879 Token * _literal;
11880 expr_ty a;
11881 expr_ty b;
11882 if (
11883 (a = shift_expr_rule(p)) // shift_expr
11884 &&
11885 (_literal = _PyPegen_expect_token(p, 33)) // token='<<'
11886 &&
11887 (b = sum_rule(p)) // sum
11888 )
11889 {
11890 D(fprintf(stderr, "%*c+ shift_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "shift_expr '<<' sum"));
11891 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11892 if (_token == NULL) {
11893 D(p->level--);
11894 return NULL;
11895 }
11896 int _end_lineno = _token->end_lineno;
11897 UNUSED(_end_lineno); // Only used by EXTRA macro
11898 int _end_col_offset = _token->end_col_offset;
11899 UNUSED(_end_col_offset); // Only used by EXTRA macro
11900 _res = _Py_BinOp ( a , LShift , b , EXTRA );
11901 if (_res == NULL && PyErr_Occurred()) {
11902 p->error_indicator = 1;
11903 D(p->level--);
11904 return NULL;
11905 }
11906 goto done;
11907 }
11908 p->mark = _mark;
11909 D(fprintf(stderr, "%*c%s shift_expr[%d-%d]: %s failed!\n", p->level, ' ',
11910 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "shift_expr '<<' sum"));
11911 }
11912 { // shift_expr '>>' sum
11913 if (p->error_indicator) {
11914 D(p->level--);
11915 return NULL;
11916 }
11917 D(fprintf(stderr, "%*c> shift_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "shift_expr '>>' sum"));
11918 Token * _literal;
11919 expr_ty a;
11920 expr_ty b;
11921 if (
11922 (a = shift_expr_rule(p)) // shift_expr
11923 &&
11924 (_literal = _PyPegen_expect_token(p, 34)) // token='>>'
11925 &&
11926 (b = sum_rule(p)) // sum
11927 )
11928 {
11929 D(fprintf(stderr, "%*c+ shift_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "shift_expr '>>' sum"));
11930 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11931 if (_token == NULL) {
11932 D(p->level--);
11933 return NULL;
11934 }
11935 int _end_lineno = _token->end_lineno;
11936 UNUSED(_end_lineno); // Only used by EXTRA macro
11937 int _end_col_offset = _token->end_col_offset;
11938 UNUSED(_end_col_offset); // Only used by EXTRA macro
11939 _res = _Py_BinOp ( a , RShift , b , EXTRA );
11940 if (_res == NULL && PyErr_Occurred()) {
11941 p->error_indicator = 1;
11942 D(p->level--);
11943 return NULL;
11944 }
11945 goto done;
11946 }
11947 p->mark = _mark;
11948 D(fprintf(stderr, "%*c%s shift_expr[%d-%d]: %s failed!\n", p->level, ' ',
11949 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "shift_expr '>>' sum"));
11950 }
11951 { // sum
11952 if (p->error_indicator) {
11953 D(p->level--);
11954 return NULL;
11955 }
11956 D(fprintf(stderr, "%*c> shift_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sum"));
11957 expr_ty sum_var;
11958 if (
11959 (sum_var = sum_rule(p)) // sum
11960 )
11961 {
11962 D(fprintf(stderr, "%*c+ shift_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sum"));
11963 _res = sum_var;
11964 goto done;
11965 }
11966 p->mark = _mark;
11967 D(fprintf(stderr, "%*c%s shift_expr[%d-%d]: %s failed!\n", p->level, ' ',
11968 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sum"));
11969 }
11970 _res = NULL;
11971 done:
11972 D(p->level--);
11973 return _res;
11974}
11975
11976// Left-recursive
11977// sum: sum '+' term | sum '-' term | term
11978static expr_ty sum_raw(Parser *);
11979static expr_ty
11980sum_rule(Parser *p)
11981{
11982 D(p->level++);
11983 expr_ty _res = NULL;
11984 if (_PyPegen_is_memoized(p, sum_type, &_res)) {
11985 D(p->level--);
11986 return _res;
11987 }
11988 int _mark = p->mark;
11989 int _resmark = p->mark;
11990 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080011991 int tmpvar_6 = _PyPegen_update_memo(p, _mark, sum_type, _res);
11992 if (tmpvar_6) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011993 D(p->level--);
11994 return _res;
11995 }
11996 p->mark = _mark;
11997 void *_raw = sum_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020011998 if (p->error_indicator)
11999 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012000 if (_raw == NULL || p->mark <= _resmark)
12001 break;
12002 _resmark = p->mark;
12003 _res = _raw;
12004 }
12005 p->mark = _resmark;
12006 D(p->level--);
12007 return _res;
12008}
12009static expr_ty
12010sum_raw(Parser *p)
12011{
12012 D(p->level++);
12013 if (p->error_indicator) {
12014 D(p->level--);
12015 return NULL;
12016 }
12017 expr_ty _res = NULL;
12018 int _mark = p->mark;
12019 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12020 p->error_indicator = 1;
12021 D(p->level--);
12022 return NULL;
12023 }
12024 int _start_lineno = p->tokens[_mark]->lineno;
12025 UNUSED(_start_lineno); // Only used by EXTRA macro
12026 int _start_col_offset = p->tokens[_mark]->col_offset;
12027 UNUSED(_start_col_offset); // Only used by EXTRA macro
12028 { // sum '+' term
12029 if (p->error_indicator) {
12030 D(p->level--);
12031 return NULL;
12032 }
12033 D(fprintf(stderr, "%*c> sum[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sum '+' term"));
12034 Token * _literal;
12035 expr_ty a;
12036 expr_ty b;
12037 if (
12038 (a = sum_rule(p)) // sum
12039 &&
12040 (_literal = _PyPegen_expect_token(p, 14)) // token='+'
12041 &&
12042 (b = term_rule(p)) // term
12043 )
12044 {
12045 D(fprintf(stderr, "%*c+ sum[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sum '+' term"));
12046 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12047 if (_token == NULL) {
12048 D(p->level--);
12049 return NULL;
12050 }
12051 int _end_lineno = _token->end_lineno;
12052 UNUSED(_end_lineno); // Only used by EXTRA macro
12053 int _end_col_offset = _token->end_col_offset;
12054 UNUSED(_end_col_offset); // Only used by EXTRA macro
12055 _res = _Py_BinOp ( a , Add , b , EXTRA );
12056 if (_res == NULL && PyErr_Occurred()) {
12057 p->error_indicator = 1;
12058 D(p->level--);
12059 return NULL;
12060 }
12061 goto done;
12062 }
12063 p->mark = _mark;
12064 D(fprintf(stderr, "%*c%s sum[%d-%d]: %s failed!\n", p->level, ' ',
12065 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sum '+' term"));
12066 }
12067 { // sum '-' term
12068 if (p->error_indicator) {
12069 D(p->level--);
12070 return NULL;
12071 }
12072 D(fprintf(stderr, "%*c> sum[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sum '-' term"));
12073 Token * _literal;
12074 expr_ty a;
12075 expr_ty b;
12076 if (
12077 (a = sum_rule(p)) // sum
12078 &&
12079 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
12080 &&
12081 (b = term_rule(p)) // term
12082 )
12083 {
12084 D(fprintf(stderr, "%*c+ sum[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sum '-' term"));
12085 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12086 if (_token == NULL) {
12087 D(p->level--);
12088 return NULL;
12089 }
12090 int _end_lineno = _token->end_lineno;
12091 UNUSED(_end_lineno); // Only used by EXTRA macro
12092 int _end_col_offset = _token->end_col_offset;
12093 UNUSED(_end_col_offset); // Only used by EXTRA macro
12094 _res = _Py_BinOp ( a , Sub , b , EXTRA );
12095 if (_res == NULL && PyErr_Occurred()) {
12096 p->error_indicator = 1;
12097 D(p->level--);
12098 return NULL;
12099 }
12100 goto done;
12101 }
12102 p->mark = _mark;
12103 D(fprintf(stderr, "%*c%s sum[%d-%d]: %s failed!\n", p->level, ' ',
12104 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sum '-' term"));
12105 }
12106 { // term
12107 if (p->error_indicator) {
12108 D(p->level--);
12109 return NULL;
12110 }
12111 D(fprintf(stderr, "%*c> sum[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term"));
12112 expr_ty term_var;
12113 if (
12114 (term_var = term_rule(p)) // term
12115 )
12116 {
12117 D(fprintf(stderr, "%*c+ sum[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term"));
12118 _res = term_var;
12119 goto done;
12120 }
12121 p->mark = _mark;
12122 D(fprintf(stderr, "%*c%s sum[%d-%d]: %s failed!\n", p->level, ' ',
12123 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term"));
12124 }
12125 _res = NULL;
12126 done:
12127 D(p->level--);
12128 return _res;
12129}
12130
12131// Left-recursive
12132// term:
12133// | term '*' factor
12134// | term '/' factor
12135// | term '//' factor
12136// | term '%' factor
12137// | term '@' factor
12138// | factor
12139static expr_ty term_raw(Parser *);
12140static expr_ty
12141term_rule(Parser *p)
12142{
12143 D(p->level++);
12144 expr_ty _res = NULL;
12145 if (_PyPegen_is_memoized(p, term_type, &_res)) {
12146 D(p->level--);
12147 return _res;
12148 }
12149 int _mark = p->mark;
12150 int _resmark = p->mark;
12151 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080012152 int tmpvar_7 = _PyPegen_update_memo(p, _mark, term_type, _res);
12153 if (tmpvar_7) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012154 D(p->level--);
12155 return _res;
12156 }
12157 p->mark = _mark;
12158 void *_raw = term_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020012159 if (p->error_indicator)
12160 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012161 if (_raw == NULL || p->mark <= _resmark)
12162 break;
12163 _resmark = p->mark;
12164 _res = _raw;
12165 }
12166 p->mark = _resmark;
12167 D(p->level--);
12168 return _res;
12169}
12170static expr_ty
12171term_raw(Parser *p)
12172{
12173 D(p->level++);
12174 if (p->error_indicator) {
12175 D(p->level--);
12176 return NULL;
12177 }
12178 expr_ty _res = NULL;
12179 int _mark = p->mark;
12180 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12181 p->error_indicator = 1;
12182 D(p->level--);
12183 return NULL;
12184 }
12185 int _start_lineno = p->tokens[_mark]->lineno;
12186 UNUSED(_start_lineno); // Only used by EXTRA macro
12187 int _start_col_offset = p->tokens[_mark]->col_offset;
12188 UNUSED(_start_col_offset); // Only used by EXTRA macro
12189 { // term '*' factor
12190 if (p->error_indicator) {
12191 D(p->level--);
12192 return NULL;
12193 }
12194 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '*' factor"));
12195 Token * _literal;
12196 expr_ty a;
12197 expr_ty b;
12198 if (
12199 (a = term_rule(p)) // term
12200 &&
12201 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
12202 &&
12203 (b = factor_rule(p)) // factor
12204 )
12205 {
12206 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '*' factor"));
12207 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12208 if (_token == NULL) {
12209 D(p->level--);
12210 return NULL;
12211 }
12212 int _end_lineno = _token->end_lineno;
12213 UNUSED(_end_lineno); // Only used by EXTRA macro
12214 int _end_col_offset = _token->end_col_offset;
12215 UNUSED(_end_col_offset); // Only used by EXTRA macro
12216 _res = _Py_BinOp ( a , Mult , b , EXTRA );
12217 if (_res == NULL && PyErr_Occurred()) {
12218 p->error_indicator = 1;
12219 D(p->level--);
12220 return NULL;
12221 }
12222 goto done;
12223 }
12224 p->mark = _mark;
12225 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
12226 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '*' factor"));
12227 }
12228 { // term '/' factor
12229 if (p->error_indicator) {
12230 D(p->level--);
12231 return NULL;
12232 }
12233 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '/' factor"));
12234 Token * _literal;
12235 expr_ty a;
12236 expr_ty b;
12237 if (
12238 (a = term_rule(p)) // term
12239 &&
12240 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
12241 &&
12242 (b = factor_rule(p)) // factor
12243 )
12244 {
12245 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '/' factor"));
12246 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12247 if (_token == NULL) {
12248 D(p->level--);
12249 return NULL;
12250 }
12251 int _end_lineno = _token->end_lineno;
12252 UNUSED(_end_lineno); // Only used by EXTRA macro
12253 int _end_col_offset = _token->end_col_offset;
12254 UNUSED(_end_col_offset); // Only used by EXTRA macro
12255 _res = _Py_BinOp ( a , Div , b , EXTRA );
12256 if (_res == NULL && PyErr_Occurred()) {
12257 p->error_indicator = 1;
12258 D(p->level--);
12259 return NULL;
12260 }
12261 goto done;
12262 }
12263 p->mark = _mark;
12264 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
12265 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '/' factor"));
12266 }
12267 { // term '//' factor
12268 if (p->error_indicator) {
12269 D(p->level--);
12270 return NULL;
12271 }
12272 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '//' factor"));
12273 Token * _literal;
12274 expr_ty a;
12275 expr_ty b;
12276 if (
12277 (a = term_rule(p)) // term
12278 &&
12279 (_literal = _PyPegen_expect_token(p, 47)) // token='//'
12280 &&
12281 (b = factor_rule(p)) // factor
12282 )
12283 {
12284 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '//' factor"));
12285 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12286 if (_token == NULL) {
12287 D(p->level--);
12288 return NULL;
12289 }
12290 int _end_lineno = _token->end_lineno;
12291 UNUSED(_end_lineno); // Only used by EXTRA macro
12292 int _end_col_offset = _token->end_col_offset;
12293 UNUSED(_end_col_offset); // Only used by EXTRA macro
12294 _res = _Py_BinOp ( a , FloorDiv , b , EXTRA );
12295 if (_res == NULL && PyErr_Occurred()) {
12296 p->error_indicator = 1;
12297 D(p->level--);
12298 return NULL;
12299 }
12300 goto done;
12301 }
12302 p->mark = _mark;
12303 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
12304 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '//' factor"));
12305 }
12306 { // term '%' factor
12307 if (p->error_indicator) {
12308 D(p->level--);
12309 return NULL;
12310 }
12311 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '%' factor"));
12312 Token * _literal;
12313 expr_ty a;
12314 expr_ty b;
12315 if (
12316 (a = term_rule(p)) // term
12317 &&
12318 (_literal = _PyPegen_expect_token(p, 24)) // token='%'
12319 &&
12320 (b = factor_rule(p)) // factor
12321 )
12322 {
12323 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '%' factor"));
12324 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12325 if (_token == NULL) {
12326 D(p->level--);
12327 return NULL;
12328 }
12329 int _end_lineno = _token->end_lineno;
12330 UNUSED(_end_lineno); // Only used by EXTRA macro
12331 int _end_col_offset = _token->end_col_offset;
12332 UNUSED(_end_col_offset); // Only used by EXTRA macro
12333 _res = _Py_BinOp ( a , Mod , b , EXTRA );
12334 if (_res == NULL && PyErr_Occurred()) {
12335 p->error_indicator = 1;
12336 D(p->level--);
12337 return NULL;
12338 }
12339 goto done;
12340 }
12341 p->mark = _mark;
12342 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
12343 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '%' factor"));
12344 }
12345 { // term '@' factor
12346 if (p->error_indicator) {
12347 D(p->level--);
12348 return NULL;
12349 }
12350 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '@' factor"));
12351 Token * _literal;
12352 expr_ty a;
12353 expr_ty b;
12354 if (
12355 (a = term_rule(p)) // term
12356 &&
12357 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
12358 &&
12359 (b = factor_rule(p)) // factor
12360 )
12361 {
12362 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '@' factor"));
12363 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12364 if (_token == NULL) {
12365 D(p->level--);
12366 return NULL;
12367 }
12368 int _end_lineno = _token->end_lineno;
12369 UNUSED(_end_lineno); // Only used by EXTRA macro
12370 int _end_col_offset = _token->end_col_offset;
12371 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +030012372 _res = CHECK_VERSION ( expr_ty , 5 , "The '@' operator is" , _Py_BinOp ( a , MatMult , b , EXTRA ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012373 if (_res == NULL && PyErr_Occurred()) {
12374 p->error_indicator = 1;
12375 D(p->level--);
12376 return NULL;
12377 }
12378 goto done;
12379 }
12380 p->mark = _mark;
12381 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
12382 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '@' factor"));
12383 }
12384 { // factor
12385 if (p->error_indicator) {
12386 D(p->level--);
12387 return NULL;
12388 }
12389 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "factor"));
12390 expr_ty factor_var;
12391 if (
12392 (factor_var = factor_rule(p)) // factor
12393 )
12394 {
12395 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "factor"));
12396 _res = factor_var;
12397 goto done;
12398 }
12399 p->mark = _mark;
12400 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
12401 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "factor"));
12402 }
12403 _res = NULL;
12404 done:
12405 D(p->level--);
12406 return _res;
12407}
12408
12409// factor: '+' factor | '-' factor | '~' factor | power
12410static expr_ty
12411factor_rule(Parser *p)
12412{
12413 D(p->level++);
12414 if (p->error_indicator) {
12415 D(p->level--);
12416 return NULL;
12417 }
12418 expr_ty _res = NULL;
12419 if (_PyPegen_is_memoized(p, factor_type, &_res)) {
12420 D(p->level--);
12421 return _res;
12422 }
12423 int _mark = p->mark;
12424 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12425 p->error_indicator = 1;
12426 D(p->level--);
12427 return NULL;
12428 }
12429 int _start_lineno = p->tokens[_mark]->lineno;
12430 UNUSED(_start_lineno); // Only used by EXTRA macro
12431 int _start_col_offset = p->tokens[_mark]->col_offset;
12432 UNUSED(_start_col_offset); // Only used by EXTRA macro
12433 { // '+' factor
12434 if (p->error_indicator) {
12435 D(p->level--);
12436 return NULL;
12437 }
12438 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'+' factor"));
12439 Token * _literal;
12440 expr_ty a;
12441 if (
12442 (_literal = _PyPegen_expect_token(p, 14)) // token='+'
12443 &&
12444 (a = factor_rule(p)) // factor
12445 )
12446 {
12447 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'+' factor"));
12448 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12449 if (_token == NULL) {
12450 D(p->level--);
12451 return NULL;
12452 }
12453 int _end_lineno = _token->end_lineno;
12454 UNUSED(_end_lineno); // Only used by EXTRA macro
12455 int _end_col_offset = _token->end_col_offset;
12456 UNUSED(_end_col_offset); // Only used by EXTRA macro
12457 _res = _Py_UnaryOp ( UAdd , a , EXTRA );
12458 if (_res == NULL && PyErr_Occurred()) {
12459 p->error_indicator = 1;
12460 D(p->level--);
12461 return NULL;
12462 }
12463 goto done;
12464 }
12465 p->mark = _mark;
12466 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
12467 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+' factor"));
12468 }
12469 { // '-' factor
12470 if (p->error_indicator) {
12471 D(p->level--);
12472 return NULL;
12473 }
12474 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-' factor"));
12475 Token * _literal;
12476 expr_ty a;
12477 if (
12478 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
12479 &&
12480 (a = factor_rule(p)) // factor
12481 )
12482 {
12483 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-' factor"));
12484 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12485 if (_token == NULL) {
12486 D(p->level--);
12487 return NULL;
12488 }
12489 int _end_lineno = _token->end_lineno;
12490 UNUSED(_end_lineno); // Only used by EXTRA macro
12491 int _end_col_offset = _token->end_col_offset;
12492 UNUSED(_end_col_offset); // Only used by EXTRA macro
12493 _res = _Py_UnaryOp ( USub , a , EXTRA );
12494 if (_res == NULL && PyErr_Occurred()) {
12495 p->error_indicator = 1;
12496 D(p->level--);
12497 return NULL;
12498 }
12499 goto done;
12500 }
12501 p->mark = _mark;
12502 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
12503 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-' factor"));
12504 }
12505 { // '~' factor
12506 if (p->error_indicator) {
12507 D(p->level--);
12508 return NULL;
12509 }
12510 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'~' factor"));
12511 Token * _literal;
12512 expr_ty a;
12513 if (
12514 (_literal = _PyPegen_expect_token(p, 31)) // token='~'
12515 &&
12516 (a = factor_rule(p)) // factor
12517 )
12518 {
12519 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'~' factor"));
12520 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12521 if (_token == NULL) {
12522 D(p->level--);
12523 return NULL;
12524 }
12525 int _end_lineno = _token->end_lineno;
12526 UNUSED(_end_lineno); // Only used by EXTRA macro
12527 int _end_col_offset = _token->end_col_offset;
12528 UNUSED(_end_col_offset); // Only used by EXTRA macro
12529 _res = _Py_UnaryOp ( Invert , a , EXTRA );
12530 if (_res == NULL && PyErr_Occurred()) {
12531 p->error_indicator = 1;
12532 D(p->level--);
12533 return NULL;
12534 }
12535 goto done;
12536 }
12537 p->mark = _mark;
12538 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
12539 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'~' factor"));
12540 }
12541 { // power
12542 if (p->error_indicator) {
12543 D(p->level--);
12544 return NULL;
12545 }
12546 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "power"));
12547 expr_ty power_var;
12548 if (
12549 (power_var = power_rule(p)) // power
12550 )
12551 {
12552 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "power"));
12553 _res = power_var;
12554 goto done;
12555 }
12556 p->mark = _mark;
12557 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
12558 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "power"));
12559 }
12560 _res = NULL;
12561 done:
12562 _PyPegen_insert_memo(p, _mark, factor_type, _res);
12563 D(p->level--);
12564 return _res;
12565}
12566
12567// power: await_primary '**' factor | await_primary
12568static expr_ty
12569power_rule(Parser *p)
12570{
12571 D(p->level++);
12572 if (p->error_indicator) {
12573 D(p->level--);
12574 return NULL;
12575 }
12576 expr_ty _res = NULL;
12577 int _mark = p->mark;
12578 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12579 p->error_indicator = 1;
12580 D(p->level--);
12581 return NULL;
12582 }
12583 int _start_lineno = p->tokens[_mark]->lineno;
12584 UNUSED(_start_lineno); // Only used by EXTRA macro
12585 int _start_col_offset = p->tokens[_mark]->col_offset;
12586 UNUSED(_start_col_offset); // Only used by EXTRA macro
12587 { // await_primary '**' factor
12588 if (p->error_indicator) {
12589 D(p->level--);
12590 return NULL;
12591 }
12592 D(fprintf(stderr, "%*c> power[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "await_primary '**' factor"));
12593 Token * _literal;
12594 expr_ty a;
12595 expr_ty b;
12596 if (
12597 (a = await_primary_rule(p)) // await_primary
12598 &&
12599 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
12600 &&
12601 (b = factor_rule(p)) // factor
12602 )
12603 {
12604 D(fprintf(stderr, "%*c+ power[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "await_primary '**' factor"));
12605 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12606 if (_token == NULL) {
12607 D(p->level--);
12608 return NULL;
12609 }
12610 int _end_lineno = _token->end_lineno;
12611 UNUSED(_end_lineno); // Only used by EXTRA macro
12612 int _end_col_offset = _token->end_col_offset;
12613 UNUSED(_end_col_offset); // Only used by EXTRA macro
12614 _res = _Py_BinOp ( a , Pow , b , EXTRA );
12615 if (_res == NULL && PyErr_Occurred()) {
12616 p->error_indicator = 1;
12617 D(p->level--);
12618 return NULL;
12619 }
12620 goto done;
12621 }
12622 p->mark = _mark;
12623 D(fprintf(stderr, "%*c%s power[%d-%d]: %s failed!\n", p->level, ' ',
12624 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "await_primary '**' factor"));
12625 }
12626 { // await_primary
12627 if (p->error_indicator) {
12628 D(p->level--);
12629 return NULL;
12630 }
12631 D(fprintf(stderr, "%*c> power[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "await_primary"));
12632 expr_ty await_primary_var;
12633 if (
12634 (await_primary_var = await_primary_rule(p)) // await_primary
12635 )
12636 {
12637 D(fprintf(stderr, "%*c+ power[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "await_primary"));
12638 _res = await_primary_var;
12639 goto done;
12640 }
12641 p->mark = _mark;
12642 D(fprintf(stderr, "%*c%s power[%d-%d]: %s failed!\n", p->level, ' ',
12643 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "await_primary"));
12644 }
12645 _res = NULL;
12646 done:
12647 D(p->level--);
12648 return _res;
12649}
12650
12651// await_primary: AWAIT primary | primary
12652static expr_ty
12653await_primary_rule(Parser *p)
12654{
12655 D(p->level++);
12656 if (p->error_indicator) {
12657 D(p->level--);
12658 return NULL;
12659 }
12660 expr_ty _res = NULL;
12661 if (_PyPegen_is_memoized(p, await_primary_type, &_res)) {
12662 D(p->level--);
12663 return _res;
12664 }
12665 int _mark = p->mark;
12666 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12667 p->error_indicator = 1;
12668 D(p->level--);
12669 return NULL;
12670 }
12671 int _start_lineno = p->tokens[_mark]->lineno;
12672 UNUSED(_start_lineno); // Only used by EXTRA macro
12673 int _start_col_offset = p->tokens[_mark]->col_offset;
12674 UNUSED(_start_col_offset); // Only used by EXTRA macro
12675 { // AWAIT primary
12676 if (p->error_indicator) {
12677 D(p->level--);
12678 return NULL;
12679 }
12680 D(fprintf(stderr, "%*c> await_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "AWAIT primary"));
12681 expr_ty a;
12682 Token * await_var;
12683 if (
12684 (await_var = _PyPegen_expect_token(p, AWAIT)) // token='AWAIT'
12685 &&
12686 (a = primary_rule(p)) // primary
12687 )
12688 {
12689 D(fprintf(stderr, "%*c+ await_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "AWAIT primary"));
12690 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12691 if (_token == NULL) {
12692 D(p->level--);
12693 return NULL;
12694 }
12695 int _end_lineno = _token->end_lineno;
12696 UNUSED(_end_lineno); // Only used by EXTRA macro
12697 int _end_col_offset = _token->end_col_offset;
12698 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +030012699 _res = CHECK_VERSION ( expr_ty , 5 , "Await expressions are" , _Py_Await ( a , EXTRA ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012700 if (_res == NULL && PyErr_Occurred()) {
12701 p->error_indicator = 1;
12702 D(p->level--);
12703 return NULL;
12704 }
12705 goto done;
12706 }
12707 p->mark = _mark;
12708 D(fprintf(stderr, "%*c%s await_primary[%d-%d]: %s failed!\n", p->level, ' ',
12709 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "AWAIT primary"));
12710 }
12711 { // primary
12712 if (p->error_indicator) {
12713 D(p->level--);
12714 return NULL;
12715 }
12716 D(fprintf(stderr, "%*c> await_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary"));
12717 expr_ty primary_var;
12718 if (
12719 (primary_var = primary_rule(p)) // primary
12720 )
12721 {
12722 D(fprintf(stderr, "%*c+ await_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary"));
12723 _res = primary_var;
12724 goto done;
12725 }
12726 p->mark = _mark;
12727 D(fprintf(stderr, "%*c%s await_primary[%d-%d]: %s failed!\n", p->level, ' ',
12728 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary"));
12729 }
12730 _res = NULL;
12731 done:
12732 _PyPegen_insert_memo(p, _mark, await_primary_type, _res);
12733 D(p->level--);
12734 return _res;
12735}
12736
12737// Left-recursive
12738// primary:
Lysandros Nikolaou15acc4e2020-10-27 20:54:20 +020012739// | invalid_primary
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012740// | primary '.' NAME
12741// | primary genexp
12742// | primary '(' arguments? ')'
12743// | primary '[' slices ']'
12744// | atom
12745static expr_ty primary_raw(Parser *);
12746static expr_ty
12747primary_rule(Parser *p)
12748{
12749 D(p->level++);
12750 expr_ty _res = NULL;
12751 if (_PyPegen_is_memoized(p, primary_type, &_res)) {
12752 D(p->level--);
12753 return _res;
12754 }
12755 int _mark = p->mark;
12756 int _resmark = p->mark;
12757 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080012758 int tmpvar_8 = _PyPegen_update_memo(p, _mark, primary_type, _res);
12759 if (tmpvar_8) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012760 D(p->level--);
12761 return _res;
12762 }
12763 p->mark = _mark;
12764 void *_raw = primary_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020012765 if (p->error_indicator)
12766 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012767 if (_raw == NULL || p->mark <= _resmark)
12768 break;
12769 _resmark = p->mark;
12770 _res = _raw;
12771 }
12772 p->mark = _resmark;
12773 D(p->level--);
12774 return _res;
12775}
12776static expr_ty
12777primary_raw(Parser *p)
12778{
12779 D(p->level++);
12780 if (p->error_indicator) {
12781 D(p->level--);
12782 return NULL;
12783 }
12784 expr_ty _res = NULL;
12785 int _mark = p->mark;
12786 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12787 p->error_indicator = 1;
12788 D(p->level--);
12789 return NULL;
12790 }
12791 int _start_lineno = p->tokens[_mark]->lineno;
12792 UNUSED(_start_lineno); // Only used by EXTRA macro
12793 int _start_col_offset = p->tokens[_mark]->col_offset;
12794 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou15acc4e2020-10-27 20:54:20 +020012795 if (p->call_invalid_rules) { // invalid_primary
12796 if (p->error_indicator) {
12797 D(p->level--);
12798 return NULL;
12799 }
12800 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_primary"));
12801 void *invalid_primary_var;
12802 if (
12803 (invalid_primary_var = invalid_primary_rule(p)) // invalid_primary
12804 )
12805 {
12806 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_primary"));
12807 _res = invalid_primary_var;
12808 goto done;
12809 }
12810 p->mark = _mark;
12811 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
12812 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_primary"));
12813 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012814 { // primary '.' NAME
12815 if (p->error_indicator) {
12816 D(p->level--);
12817 return NULL;
12818 }
12819 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '.' NAME"));
12820 Token * _literal;
12821 expr_ty a;
12822 expr_ty b;
12823 if (
12824 (a = primary_rule(p)) // primary
12825 &&
12826 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
12827 &&
12828 (b = _PyPegen_name_token(p)) // NAME
12829 )
12830 {
12831 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '.' NAME"));
12832 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12833 if (_token == NULL) {
12834 D(p->level--);
12835 return NULL;
12836 }
12837 int _end_lineno = _token->end_lineno;
12838 UNUSED(_end_lineno); // Only used by EXTRA macro
12839 int _end_col_offset = _token->end_col_offset;
12840 UNUSED(_end_col_offset); // Only used by EXTRA macro
12841 _res = _Py_Attribute ( a , b -> v . Name . id , Load , EXTRA );
12842 if (_res == NULL && PyErr_Occurred()) {
12843 p->error_indicator = 1;
12844 D(p->level--);
12845 return NULL;
12846 }
12847 goto done;
12848 }
12849 p->mark = _mark;
12850 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
12851 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '.' NAME"));
12852 }
12853 { // primary genexp
12854 if (p->error_indicator) {
12855 D(p->level--);
12856 return NULL;
12857 }
12858 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary genexp"));
12859 expr_ty a;
12860 expr_ty b;
12861 if (
12862 (a = primary_rule(p)) // primary
12863 &&
12864 (b = genexp_rule(p)) // genexp
12865 )
12866 {
12867 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary genexp"));
12868 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12869 if (_token == NULL) {
12870 D(p->level--);
12871 return NULL;
12872 }
12873 int _end_lineno = _token->end_lineno;
12874 UNUSED(_end_lineno); // Only used by EXTRA macro
12875 int _end_col_offset = _token->end_col_offset;
12876 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +030012877 _res = _Py_Call ( a , CHECK ( asdl_expr_seq * , ( asdl_expr_seq * ) _PyPegen_singleton_seq ( p , b ) ) , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012878 if (_res == NULL && PyErr_Occurred()) {
12879 p->error_indicator = 1;
12880 D(p->level--);
12881 return NULL;
12882 }
12883 goto done;
12884 }
12885 p->mark = _mark;
12886 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
12887 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary genexp"));
12888 }
12889 { // primary '(' arguments? ')'
12890 if (p->error_indicator) {
12891 D(p->level--);
12892 return NULL;
12893 }
12894 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '(' arguments? ')'"));
12895 Token * _literal;
12896 Token * _literal_1;
12897 expr_ty a;
12898 void *b;
12899 if (
12900 (a = primary_rule(p)) // primary
12901 &&
12902 (_literal = _PyPegen_expect_token(p, 7)) // token='('
12903 &&
12904 (b = arguments_rule(p), 1) // arguments?
12905 &&
12906 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
12907 )
12908 {
12909 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '(' arguments? ')'"));
12910 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12911 if (_token == NULL) {
12912 D(p->level--);
12913 return NULL;
12914 }
12915 int _end_lineno = _token->end_lineno;
12916 UNUSED(_end_lineno); // Only used by EXTRA macro
12917 int _end_col_offset = _token->end_col_offset;
12918 UNUSED(_end_col_offset); // Only used by EXTRA macro
12919 _res = _Py_Call ( a , ( b ) ? ( ( expr_ty ) b ) -> v . Call . args : NULL , ( b ) ? ( ( expr_ty ) b ) -> v . Call . keywords : NULL , EXTRA );
12920 if (_res == NULL && PyErr_Occurred()) {
12921 p->error_indicator = 1;
12922 D(p->level--);
12923 return NULL;
12924 }
12925 goto done;
12926 }
12927 p->mark = _mark;
12928 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
12929 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '(' arguments? ')'"));
12930 }
12931 { // primary '[' slices ']'
12932 if (p->error_indicator) {
12933 D(p->level--);
12934 return NULL;
12935 }
12936 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '[' slices ']'"));
12937 Token * _literal;
12938 Token * _literal_1;
12939 expr_ty a;
12940 expr_ty b;
12941 if (
12942 (a = primary_rule(p)) // primary
12943 &&
12944 (_literal = _PyPegen_expect_token(p, 9)) // token='['
12945 &&
12946 (b = slices_rule(p)) // slices
12947 &&
12948 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
12949 )
12950 {
12951 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '[' slices ']'"));
12952 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12953 if (_token == NULL) {
12954 D(p->level--);
12955 return NULL;
12956 }
12957 int _end_lineno = _token->end_lineno;
12958 UNUSED(_end_lineno); // Only used by EXTRA macro
12959 int _end_col_offset = _token->end_col_offset;
12960 UNUSED(_end_col_offset); // Only used by EXTRA macro
12961 _res = _Py_Subscript ( a , b , Load , EXTRA );
12962 if (_res == NULL && PyErr_Occurred()) {
12963 p->error_indicator = 1;
12964 D(p->level--);
12965 return NULL;
12966 }
12967 goto done;
12968 }
12969 p->mark = _mark;
12970 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
12971 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '[' slices ']'"));
12972 }
12973 { // atom
12974 if (p->error_indicator) {
12975 D(p->level--);
12976 return NULL;
12977 }
12978 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "atom"));
12979 expr_ty atom_var;
12980 if (
12981 (atom_var = atom_rule(p)) // atom
12982 )
12983 {
12984 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "atom"));
12985 _res = atom_var;
12986 goto done;
12987 }
12988 p->mark = _mark;
12989 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
12990 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "atom"));
12991 }
12992 _res = NULL;
12993 done:
12994 D(p->level--);
12995 return _res;
12996}
12997
12998// slices: slice !',' | ','.slice+ ','?
12999static expr_ty
13000slices_rule(Parser *p)
13001{
13002 D(p->level++);
13003 if (p->error_indicator) {
13004 D(p->level--);
13005 return NULL;
13006 }
13007 expr_ty _res = NULL;
13008 int _mark = p->mark;
13009 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13010 p->error_indicator = 1;
13011 D(p->level--);
13012 return NULL;
13013 }
13014 int _start_lineno = p->tokens[_mark]->lineno;
13015 UNUSED(_start_lineno); // Only used by EXTRA macro
13016 int _start_col_offset = p->tokens[_mark]->col_offset;
13017 UNUSED(_start_col_offset); // Only used by EXTRA macro
13018 { // slice !','
13019 if (p->error_indicator) {
13020 D(p->level--);
13021 return NULL;
13022 }
13023 D(fprintf(stderr, "%*c> slices[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slice !','"));
13024 expr_ty a;
13025 if (
13026 (a = slice_rule(p)) // slice
13027 &&
13028 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 12) // token=','
13029 )
13030 {
13031 D(fprintf(stderr, "%*c+ slices[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slice !','"));
13032 _res = a;
13033 if (_res == NULL && PyErr_Occurred()) {
13034 p->error_indicator = 1;
13035 D(p->level--);
13036 return NULL;
13037 }
13038 goto done;
13039 }
13040 p->mark = _mark;
13041 D(fprintf(stderr, "%*c%s slices[%d-%d]: %s failed!\n", p->level, ' ',
13042 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slice !','"));
13043 }
13044 { // ','.slice+ ','?
13045 if (p->error_indicator) {
13046 D(p->level--);
13047 return NULL;
13048 }
13049 D(fprintf(stderr, "%*c> slices[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.slice+ ','?"));
13050 void *_opt_var;
13051 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +010013052 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013053 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080013054 (a = (asdl_expr_seq*)_gather_108_rule(p)) // ','.slice+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013055 &&
13056 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
13057 )
13058 {
13059 D(fprintf(stderr, "%*c+ slices[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.slice+ ','?"));
13060 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13061 if (_token == NULL) {
13062 D(p->level--);
13063 return NULL;
13064 }
13065 int _end_lineno = _token->end_lineno;
13066 UNUSED(_end_lineno); // Only used by EXTRA macro
13067 int _end_col_offset = _token->end_col_offset;
13068 UNUSED(_end_col_offset); // Only used by EXTRA macro
13069 _res = _Py_Tuple ( a , Load , EXTRA );
13070 if (_res == NULL && PyErr_Occurred()) {
13071 p->error_indicator = 1;
13072 D(p->level--);
13073 return NULL;
13074 }
13075 goto done;
13076 }
13077 p->mark = _mark;
13078 D(fprintf(stderr, "%*c%s slices[%d-%d]: %s failed!\n", p->level, ' ',
13079 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.slice+ ','?"));
13080 }
13081 _res = NULL;
13082 done:
13083 D(p->level--);
13084 return _res;
13085}
13086
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020013087// slice: expression? ':' expression? [':' expression?] | named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013088static expr_ty
13089slice_rule(Parser *p)
13090{
13091 D(p->level++);
13092 if (p->error_indicator) {
13093 D(p->level--);
13094 return NULL;
13095 }
13096 expr_ty _res = NULL;
13097 int _mark = p->mark;
13098 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13099 p->error_indicator = 1;
13100 D(p->level--);
13101 return NULL;
13102 }
13103 int _start_lineno = p->tokens[_mark]->lineno;
13104 UNUSED(_start_lineno); // Only used by EXTRA macro
13105 int _start_col_offset = p->tokens[_mark]->col_offset;
13106 UNUSED(_start_col_offset); // Only used by EXTRA macro
13107 { // expression? ':' expression? [':' expression?]
13108 if (p->error_indicator) {
13109 D(p->level--);
13110 return NULL;
13111 }
13112 D(fprintf(stderr, "%*c> slice[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression? ':' expression? [':' expression?]"));
13113 Token * _literal;
13114 void *a;
13115 void *b;
13116 void *c;
13117 if (
13118 (a = expression_rule(p), 1) // expression?
13119 &&
13120 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
13121 &&
13122 (b = expression_rule(p), 1) // expression?
13123 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080013124 (c = _tmp_110_rule(p), 1) // [':' expression?]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013125 )
13126 {
13127 D(fprintf(stderr, "%*c+ slice[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression? ':' expression? [':' expression?]"));
13128 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13129 if (_token == NULL) {
13130 D(p->level--);
13131 return NULL;
13132 }
13133 int _end_lineno = _token->end_lineno;
13134 UNUSED(_end_lineno); // Only used by EXTRA macro
13135 int _end_col_offset = _token->end_col_offset;
13136 UNUSED(_end_col_offset); // Only used by EXTRA macro
13137 _res = _Py_Slice ( a , b , c , EXTRA );
13138 if (_res == NULL && PyErr_Occurred()) {
13139 p->error_indicator = 1;
13140 D(p->level--);
13141 return NULL;
13142 }
13143 goto done;
13144 }
13145 p->mark = _mark;
13146 D(fprintf(stderr, "%*c%s slice[%d-%d]: %s failed!\n", p->level, ' ',
13147 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression? ':' expression? [':' expression?]"));
13148 }
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020013149 { // named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013150 if (p->error_indicator) {
13151 D(p->level--);
13152 return NULL;
13153 }
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020013154 D(fprintf(stderr, "%*c> slice[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013155 expr_ty a;
13156 if (
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020013157 (a = named_expression_rule(p)) // named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013158 )
13159 {
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020013160 D(fprintf(stderr, "%*c+ slice[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "named_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013161 _res = a;
13162 if (_res == NULL && PyErr_Occurred()) {
13163 p->error_indicator = 1;
13164 D(p->level--);
13165 return NULL;
13166 }
13167 goto done;
13168 }
13169 p->mark = _mark;
13170 D(fprintf(stderr, "%*c%s slice[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020013171 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013172 }
13173 _res = NULL;
13174 done:
13175 D(p->level--);
13176 return _res;
13177}
13178
13179// atom:
13180// | NAME
13181// | 'True'
13182// | 'False'
13183// | 'None'
13184// | &STRING strings
13185// | NUMBER
13186// | &'(' (tuple | group | genexp)
13187// | &'[' (list | listcomp)
13188// | &'{' (dict | set | dictcomp | setcomp)
13189// | '...'
13190static expr_ty
13191atom_rule(Parser *p)
13192{
13193 D(p->level++);
13194 if (p->error_indicator) {
13195 D(p->level--);
13196 return NULL;
13197 }
13198 expr_ty _res = NULL;
13199 int _mark = p->mark;
13200 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13201 p->error_indicator = 1;
13202 D(p->level--);
13203 return NULL;
13204 }
13205 int _start_lineno = p->tokens[_mark]->lineno;
13206 UNUSED(_start_lineno); // Only used by EXTRA macro
13207 int _start_col_offset = p->tokens[_mark]->col_offset;
13208 UNUSED(_start_col_offset); // Only used by EXTRA macro
13209 { // NAME
13210 if (p->error_indicator) {
13211 D(p->level--);
13212 return NULL;
13213 }
13214 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
13215 expr_ty name_var;
13216 if (
13217 (name_var = _PyPegen_name_token(p)) // NAME
13218 )
13219 {
13220 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
13221 _res = name_var;
13222 goto done;
13223 }
13224 p->mark = _mark;
13225 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
13226 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
13227 }
13228 { // 'True'
13229 if (p->error_indicator) {
13230 D(p->level--);
13231 return NULL;
13232 }
13233 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'"));
13234 Token * _keyword;
13235 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080013236 (_keyword = _PyPegen_expect_token(p, 524)) // token='True'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013237 )
13238 {
13239 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'"));
13240 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13241 if (_token == NULL) {
13242 D(p->level--);
13243 return NULL;
13244 }
13245 int _end_lineno = _token->end_lineno;
13246 UNUSED(_end_lineno); // Only used by EXTRA macro
13247 int _end_col_offset = _token->end_col_offset;
13248 UNUSED(_end_col_offset); // Only used by EXTRA macro
13249 _res = _Py_Constant ( Py_True , NULL , EXTRA );
13250 if (_res == NULL && PyErr_Occurred()) {
13251 p->error_indicator = 1;
13252 D(p->level--);
13253 return NULL;
13254 }
13255 goto done;
13256 }
13257 p->mark = _mark;
13258 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
13259 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'True'"));
13260 }
13261 { // 'False'
13262 if (p->error_indicator) {
13263 D(p->level--);
13264 return NULL;
13265 }
13266 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'"));
13267 Token * _keyword;
13268 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080013269 (_keyword = _PyPegen_expect_token(p, 525)) // token='False'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013270 )
13271 {
13272 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'"));
13273 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13274 if (_token == NULL) {
13275 D(p->level--);
13276 return NULL;
13277 }
13278 int _end_lineno = _token->end_lineno;
13279 UNUSED(_end_lineno); // Only used by EXTRA macro
13280 int _end_col_offset = _token->end_col_offset;
13281 UNUSED(_end_col_offset); // Only used by EXTRA macro
13282 _res = _Py_Constant ( Py_False , NULL , EXTRA );
13283 if (_res == NULL && PyErr_Occurred()) {
13284 p->error_indicator = 1;
13285 D(p->level--);
13286 return NULL;
13287 }
13288 goto done;
13289 }
13290 p->mark = _mark;
13291 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
13292 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'False'"));
13293 }
13294 { // 'None'
13295 if (p->error_indicator) {
13296 D(p->level--);
13297 return NULL;
13298 }
13299 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'"));
13300 Token * _keyword;
13301 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080013302 (_keyword = _PyPegen_expect_token(p, 523)) // token='None'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013303 )
13304 {
13305 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'"));
13306 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13307 if (_token == NULL) {
13308 D(p->level--);
13309 return NULL;
13310 }
13311 int _end_lineno = _token->end_lineno;
13312 UNUSED(_end_lineno); // Only used by EXTRA macro
13313 int _end_col_offset = _token->end_col_offset;
13314 UNUSED(_end_col_offset); // Only used by EXTRA macro
13315 _res = _Py_Constant ( Py_None , NULL , EXTRA );
13316 if (_res == NULL && PyErr_Occurred()) {
13317 p->error_indicator = 1;
13318 D(p->level--);
13319 return NULL;
13320 }
13321 goto done;
13322 }
13323 p->mark = _mark;
13324 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
13325 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'None'"));
13326 }
13327 { // &STRING strings
13328 if (p->error_indicator) {
13329 D(p->level--);
13330 return NULL;
13331 }
13332 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&STRING strings"));
13333 expr_ty strings_var;
13334 if (
13335 _PyPegen_lookahead(1, _PyPegen_string_token, p)
13336 &&
13337 (strings_var = strings_rule(p)) // strings
13338 )
13339 {
13340 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&STRING strings"));
13341 _res = strings_var;
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, "&STRING strings"));
13347 }
13348 { // NUMBER
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, "NUMBER"));
13354 expr_ty number_var;
13355 if (
13356 (number_var = _PyPegen_number_token(p)) // NUMBER
13357 )
13358 {
13359 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NUMBER"));
13360 _res = number_var;
13361 goto done;
13362 }
13363 p->mark = _mark;
13364 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
13365 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NUMBER"));
13366 }
13367 { // &'(' (tuple | group | genexp)
13368 if (p->error_indicator) {
13369 D(p->level--);
13370 return NULL;
13371 }
13372 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'(' (tuple | group | genexp)"));
Brandt Bucher145bf262021-02-26 14:51:55 -080013373 void *_tmp_111_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013374 if (
13375 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 7) // token='('
13376 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080013377 (_tmp_111_var = _tmp_111_rule(p)) // tuple | group | genexp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013378 )
13379 {
13380 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 -080013381 _res = _tmp_111_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013382 goto done;
13383 }
13384 p->mark = _mark;
13385 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
13386 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'(' (tuple | group | genexp)"));
13387 }
13388 { // &'[' (list | listcomp)
13389 if (p->error_indicator) {
13390 D(p->level--);
13391 return NULL;
13392 }
13393 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'[' (list | listcomp)"));
Brandt Bucher145bf262021-02-26 14:51:55 -080013394 void *_tmp_112_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013395 if (
13396 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 9) // token='['
13397 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080013398 (_tmp_112_var = _tmp_112_rule(p)) // list | listcomp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013399 )
13400 {
13401 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'[' (list | listcomp)"));
Brandt Bucher145bf262021-02-26 14:51:55 -080013402 _res = _tmp_112_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013403 goto done;
13404 }
13405 p->mark = _mark;
13406 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
13407 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'[' (list | listcomp)"));
13408 }
13409 { // &'{' (dict | set | dictcomp | setcomp)
13410 if (p->error_indicator) {
13411 D(p->level--);
13412 return NULL;
13413 }
13414 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 -080013415 void *_tmp_113_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013416 if (
13417 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 25) // token='{'
13418 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080013419 (_tmp_113_var = _tmp_113_rule(p)) // dict | set | dictcomp | setcomp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013420 )
13421 {
13422 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 -080013423 _res = _tmp_113_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013424 goto done;
13425 }
13426 p->mark = _mark;
13427 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
13428 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'{' (dict | set | dictcomp | setcomp)"));
13429 }
13430 { // '...'
13431 if (p->error_indicator) {
13432 D(p->level--);
13433 return NULL;
13434 }
13435 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'"));
13436 Token * _literal;
13437 if (
13438 (_literal = _PyPegen_expect_token(p, 52)) // token='...'
13439 )
13440 {
13441 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'"));
13442 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13443 if (_token == NULL) {
13444 D(p->level--);
13445 return NULL;
13446 }
13447 int _end_lineno = _token->end_lineno;
13448 UNUSED(_end_lineno); // Only used by EXTRA macro
13449 int _end_col_offset = _token->end_col_offset;
13450 UNUSED(_end_col_offset); // Only used by EXTRA macro
13451 _res = _Py_Constant ( Py_Ellipsis , NULL , EXTRA );
13452 if (_res == NULL && PyErr_Occurred()) {
13453 p->error_indicator = 1;
13454 D(p->level--);
13455 return NULL;
13456 }
13457 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, "'...'"));
13462 }
13463 _res = NULL;
13464 done:
13465 D(p->level--);
13466 return _res;
13467}
13468
13469// strings: STRING+
13470static expr_ty
13471strings_rule(Parser *p)
13472{
13473 D(p->level++);
13474 if (p->error_indicator) {
13475 D(p->level--);
13476 return NULL;
13477 }
13478 expr_ty _res = NULL;
13479 if (_PyPegen_is_memoized(p, strings_type, &_res)) {
13480 D(p->level--);
13481 return _res;
13482 }
13483 int _mark = p->mark;
13484 { // STRING+
13485 if (p->error_indicator) {
13486 D(p->level--);
13487 return NULL;
13488 }
13489 D(fprintf(stderr, "%*c> strings[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "STRING+"));
13490 asdl_seq * a;
13491 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080013492 (a = _loop1_114_rule(p)) // STRING+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013493 )
13494 {
13495 D(fprintf(stderr, "%*c+ strings[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "STRING+"));
13496 _res = _PyPegen_concatenate_strings ( p , a );
13497 if (_res == NULL && PyErr_Occurred()) {
13498 p->error_indicator = 1;
13499 D(p->level--);
13500 return NULL;
13501 }
13502 goto done;
13503 }
13504 p->mark = _mark;
13505 D(fprintf(stderr, "%*c%s strings[%d-%d]: %s failed!\n", p->level, ' ',
13506 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "STRING+"));
13507 }
13508 _res = NULL;
13509 done:
13510 _PyPegen_insert_memo(p, _mark, strings_type, _res);
13511 D(p->level--);
13512 return _res;
13513}
13514
13515// list: '[' star_named_expressions? ']'
13516static expr_ty
13517list_rule(Parser *p)
13518{
13519 D(p->level++);
13520 if (p->error_indicator) {
13521 D(p->level--);
13522 return NULL;
13523 }
13524 expr_ty _res = NULL;
13525 int _mark = p->mark;
13526 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13527 p->error_indicator = 1;
13528 D(p->level--);
13529 return NULL;
13530 }
13531 int _start_lineno = p->tokens[_mark]->lineno;
13532 UNUSED(_start_lineno); // Only used by EXTRA macro
13533 int _start_col_offset = p->tokens[_mark]->col_offset;
13534 UNUSED(_start_col_offset); // Only used by EXTRA macro
13535 { // '[' star_named_expressions? ']'
13536 if (p->error_indicator) {
13537 D(p->level--);
13538 return NULL;
13539 }
13540 D(fprintf(stderr, "%*c> list[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' star_named_expressions? ']'"));
13541 Token * _literal;
13542 Token * _literal_1;
13543 void *a;
13544 if (
13545 (_literal = _PyPegen_expect_token(p, 9)) // token='['
13546 &&
13547 (a = star_named_expressions_rule(p), 1) // star_named_expressions?
13548 &&
13549 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
13550 )
13551 {
13552 D(fprintf(stderr, "%*c+ list[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' star_named_expressions? ']'"));
13553 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13554 if (_token == NULL) {
13555 D(p->level--);
13556 return NULL;
13557 }
13558 int _end_lineno = _token->end_lineno;
13559 UNUSED(_end_lineno); // Only used by EXTRA macro
13560 int _end_col_offset = _token->end_col_offset;
13561 UNUSED(_end_col_offset); // Only used by EXTRA macro
13562 _res = _Py_List ( a , Load , EXTRA );
13563 if (_res == NULL && PyErr_Occurred()) {
13564 p->error_indicator = 1;
13565 D(p->level--);
13566 return NULL;
13567 }
13568 goto done;
13569 }
13570 p->mark = _mark;
13571 D(fprintf(stderr, "%*c%s list[%d-%d]: %s failed!\n", p->level, ' ',
13572 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' star_named_expressions? ']'"));
13573 }
13574 _res = NULL;
13575 done:
13576 D(p->level--);
13577 return _res;
13578}
13579
Pablo Galindo835f14f2021-01-31 22:52:56 +000013580// listcomp: '[' named_expression for_if_clauses ']' | invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013581static expr_ty
13582listcomp_rule(Parser *p)
13583{
13584 D(p->level++);
13585 if (p->error_indicator) {
13586 D(p->level--);
13587 return NULL;
13588 }
13589 expr_ty _res = NULL;
13590 int _mark = p->mark;
13591 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13592 p->error_indicator = 1;
13593 D(p->level--);
13594 return NULL;
13595 }
13596 int _start_lineno = p->tokens[_mark]->lineno;
13597 UNUSED(_start_lineno); // Only used by EXTRA macro
13598 int _start_col_offset = p->tokens[_mark]->col_offset;
13599 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo835f14f2021-01-31 22:52:56 +000013600 { // '[' named_expression for_if_clauses ']'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013601 if (p->error_indicator) {
13602 D(p->level--);
13603 return NULL;
13604 }
Pablo Galindo835f14f2021-01-31 22:52:56 +000013605 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 +010013606 Token * _literal;
13607 Token * _literal_1;
13608 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010013609 asdl_comprehension_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013610 if (
13611 (_literal = _PyPegen_expect_token(p, 9)) // token='['
13612 &&
13613 (a = named_expression_rule(p)) // named_expression
13614 &&
13615 (b = for_if_clauses_rule(p)) // for_if_clauses
13616 &&
13617 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
13618 )
13619 {
Pablo Galindo835f14f2021-01-31 22:52:56 +000013620 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 +010013621 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13622 if (_token == NULL) {
13623 D(p->level--);
13624 return NULL;
13625 }
13626 int _end_lineno = _token->end_lineno;
13627 UNUSED(_end_lineno); // Only used by EXTRA macro
13628 int _end_col_offset = _token->end_col_offset;
13629 UNUSED(_end_col_offset); // Only used by EXTRA macro
13630 _res = _Py_ListComp ( a , b , EXTRA );
13631 if (_res == NULL && PyErr_Occurred()) {
13632 p->error_indicator = 1;
13633 D(p->level--);
13634 return NULL;
13635 }
13636 goto done;
13637 }
13638 p->mark = _mark;
13639 D(fprintf(stderr, "%*c%s listcomp[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo835f14f2021-01-31 22:52:56 +000013640 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' named_expression for_if_clauses ']'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013641 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020013642 if (p->call_invalid_rules) { // invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013643 if (p->error_indicator) {
13644 D(p->level--);
13645 return NULL;
13646 }
13647 D(fprintf(stderr, "%*c> listcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
13648 void *invalid_comprehension_var;
13649 if (
13650 (invalid_comprehension_var = invalid_comprehension_rule(p)) // invalid_comprehension
13651 )
13652 {
13653 D(fprintf(stderr, "%*c+ listcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
13654 _res = invalid_comprehension_var;
13655 goto done;
13656 }
13657 p->mark = _mark;
13658 D(fprintf(stderr, "%*c%s listcomp[%d-%d]: %s failed!\n", p->level, ' ',
13659 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_comprehension"));
13660 }
13661 _res = NULL;
13662 done:
13663 D(p->level--);
13664 return _res;
13665}
13666
13667// tuple: '(' [star_named_expression ',' star_named_expressions?] ')'
13668static expr_ty
13669tuple_rule(Parser *p)
13670{
13671 D(p->level++);
13672 if (p->error_indicator) {
13673 D(p->level--);
13674 return NULL;
13675 }
13676 expr_ty _res = NULL;
13677 int _mark = p->mark;
13678 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13679 p->error_indicator = 1;
13680 D(p->level--);
13681 return NULL;
13682 }
13683 int _start_lineno = p->tokens[_mark]->lineno;
13684 UNUSED(_start_lineno); // Only used by EXTRA macro
13685 int _start_col_offset = p->tokens[_mark]->col_offset;
13686 UNUSED(_start_col_offset); // Only used by EXTRA macro
13687 { // '(' [star_named_expression ',' star_named_expressions?] ')'
13688 if (p->error_indicator) {
13689 D(p->level--);
13690 return NULL;
13691 }
13692 D(fprintf(stderr, "%*c> tuple[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' [star_named_expression ',' star_named_expressions?] ')'"));
13693 Token * _literal;
13694 Token * _literal_1;
13695 void *a;
13696 if (
13697 (_literal = _PyPegen_expect_token(p, 7)) // token='('
13698 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080013699 (a = _tmp_115_rule(p), 1) // [star_named_expression ',' star_named_expressions?]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013700 &&
13701 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
13702 )
13703 {
13704 D(fprintf(stderr, "%*c+ tuple[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' [star_named_expression ',' star_named_expressions?] ')'"));
13705 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13706 if (_token == NULL) {
13707 D(p->level--);
13708 return NULL;
13709 }
13710 int _end_lineno = _token->end_lineno;
13711 UNUSED(_end_lineno); // Only used by EXTRA macro
13712 int _end_col_offset = _token->end_col_offset;
13713 UNUSED(_end_col_offset); // Only used by EXTRA macro
13714 _res = _Py_Tuple ( a , Load , EXTRA );
13715 if (_res == NULL && PyErr_Occurred()) {
13716 p->error_indicator = 1;
13717 D(p->level--);
13718 return NULL;
13719 }
13720 goto done;
13721 }
13722 p->mark = _mark;
13723 D(fprintf(stderr, "%*c%s tuple[%d-%d]: %s failed!\n", p->level, ' ',
13724 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' [star_named_expression ',' star_named_expressions?] ')'"));
13725 }
13726 _res = NULL;
13727 done:
13728 D(p->level--);
13729 return _res;
13730}
13731
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030013732// group: '(' (yield_expr | named_expression) ')' | invalid_group
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013733static expr_ty
13734group_rule(Parser *p)
13735{
13736 D(p->level++);
13737 if (p->error_indicator) {
13738 D(p->level--);
13739 return NULL;
13740 }
13741 expr_ty _res = NULL;
13742 int _mark = p->mark;
13743 { // '(' (yield_expr | named_expression) ')'
13744 if (p->error_indicator) {
13745 D(p->level--);
13746 return NULL;
13747 }
13748 D(fprintf(stderr, "%*c> group[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' (yield_expr | named_expression) ')'"));
13749 Token * _literal;
13750 Token * _literal_1;
13751 void *a;
13752 if (
13753 (_literal = _PyPegen_expect_token(p, 7)) // token='('
13754 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080013755 (a = _tmp_116_rule(p)) // yield_expr | named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013756 &&
13757 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
13758 )
13759 {
13760 D(fprintf(stderr, "%*c+ group[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' (yield_expr | named_expression) ')'"));
13761 _res = a;
13762 if (_res == NULL && PyErr_Occurred()) {
13763 p->error_indicator = 1;
13764 D(p->level--);
13765 return NULL;
13766 }
13767 goto done;
13768 }
13769 p->mark = _mark;
13770 D(fprintf(stderr, "%*c%s group[%d-%d]: %s failed!\n", p->level, ' ',
13771 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' (yield_expr | named_expression) ')'"));
13772 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020013773 if (p->call_invalid_rules) { // invalid_group
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030013774 if (p->error_indicator) {
13775 D(p->level--);
13776 return NULL;
13777 }
13778 D(fprintf(stderr, "%*c> group[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_group"));
13779 void *invalid_group_var;
13780 if (
13781 (invalid_group_var = invalid_group_rule(p)) // invalid_group
13782 )
13783 {
13784 D(fprintf(stderr, "%*c+ group[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_group"));
13785 _res = invalid_group_var;
13786 goto done;
13787 }
13788 p->mark = _mark;
13789 D(fprintf(stderr, "%*c%s group[%d-%d]: %s failed!\n", p->level, ' ',
13790 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_group"));
13791 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013792 _res = NULL;
13793 done:
13794 D(p->level--);
13795 return _res;
13796}
13797
Pablo Galindo835f14f2021-01-31 22:52:56 +000013798// genexp: '(' named_expression for_if_clauses ')' | invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013799static expr_ty
13800genexp_rule(Parser *p)
13801{
13802 D(p->level++);
13803 if (p->error_indicator) {
13804 D(p->level--);
13805 return NULL;
13806 }
13807 expr_ty _res = NULL;
13808 int _mark = p->mark;
13809 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13810 p->error_indicator = 1;
13811 D(p->level--);
13812 return NULL;
13813 }
13814 int _start_lineno = p->tokens[_mark]->lineno;
13815 UNUSED(_start_lineno); // Only used by EXTRA macro
13816 int _start_col_offset = p->tokens[_mark]->col_offset;
13817 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo835f14f2021-01-31 22:52:56 +000013818 { // '(' named_expression for_if_clauses ')'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013819 if (p->error_indicator) {
13820 D(p->level--);
13821 return NULL;
13822 }
Pablo Galindo835f14f2021-01-31 22:52:56 +000013823 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 +010013824 Token * _literal;
13825 Token * _literal_1;
13826 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010013827 asdl_comprehension_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013828 if (
13829 (_literal = _PyPegen_expect_token(p, 7)) // token='('
13830 &&
Lysandros Nikolaoucb3e5ed2020-11-17 01:08:35 +020013831 (a = named_expression_rule(p)) // named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013832 &&
13833 (b = for_if_clauses_rule(p)) // for_if_clauses
13834 &&
13835 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
13836 )
13837 {
Pablo Galindo835f14f2021-01-31 22:52:56 +000013838 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 +010013839 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13840 if (_token == NULL) {
13841 D(p->level--);
13842 return NULL;
13843 }
13844 int _end_lineno = _token->end_lineno;
13845 UNUSED(_end_lineno); // Only used by EXTRA macro
13846 int _end_col_offset = _token->end_col_offset;
13847 UNUSED(_end_col_offset); // Only used by EXTRA macro
13848 _res = _Py_GeneratorExp ( a , b , EXTRA );
13849 if (_res == NULL && PyErr_Occurred()) {
13850 p->error_indicator = 1;
13851 D(p->level--);
13852 return NULL;
13853 }
13854 goto done;
13855 }
13856 p->mark = _mark;
13857 D(fprintf(stderr, "%*c%s genexp[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo835f14f2021-01-31 22:52:56 +000013858 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' named_expression for_if_clauses ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013859 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020013860 if (p->call_invalid_rules) { // invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013861 if (p->error_indicator) {
13862 D(p->level--);
13863 return NULL;
13864 }
13865 D(fprintf(stderr, "%*c> genexp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
13866 void *invalid_comprehension_var;
13867 if (
13868 (invalid_comprehension_var = invalid_comprehension_rule(p)) // invalid_comprehension
13869 )
13870 {
13871 D(fprintf(stderr, "%*c+ genexp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
13872 _res = invalid_comprehension_var;
13873 goto done;
13874 }
13875 p->mark = _mark;
13876 D(fprintf(stderr, "%*c%s genexp[%d-%d]: %s failed!\n", p->level, ' ',
13877 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_comprehension"));
13878 }
13879 _res = NULL;
13880 done:
13881 D(p->level--);
13882 return _res;
13883}
13884
Pablo Galindob0aba1f2020-11-17 01:17:12 +000013885// set: '{' star_named_expressions '}'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013886static expr_ty
13887set_rule(Parser *p)
13888{
13889 D(p->level++);
13890 if (p->error_indicator) {
13891 D(p->level--);
13892 return NULL;
13893 }
13894 expr_ty _res = NULL;
13895 int _mark = p->mark;
13896 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13897 p->error_indicator = 1;
13898 D(p->level--);
13899 return NULL;
13900 }
13901 int _start_lineno = p->tokens[_mark]->lineno;
13902 UNUSED(_start_lineno); // Only used by EXTRA macro
13903 int _start_col_offset = p->tokens[_mark]->col_offset;
13904 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindob0aba1f2020-11-17 01:17:12 +000013905 { // '{' star_named_expressions '}'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013906 if (p->error_indicator) {
13907 D(p->level--);
13908 return NULL;
13909 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000013910 D(fprintf(stderr, "%*c> set[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' star_named_expressions '}'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013911 Token * _literal;
13912 Token * _literal_1;
Pablo Galindoa5634c42020-09-16 19:42:00 +010013913 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013914 if (
13915 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
13916 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000013917 (a = star_named_expressions_rule(p)) // star_named_expressions
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013918 &&
13919 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
13920 )
13921 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000013922 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 +010013923 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13924 if (_token == NULL) {
13925 D(p->level--);
13926 return NULL;
13927 }
13928 int _end_lineno = _token->end_lineno;
13929 UNUSED(_end_lineno); // Only used by EXTRA macro
13930 int _end_col_offset = _token->end_col_offset;
13931 UNUSED(_end_col_offset); // Only used by EXTRA macro
13932 _res = _Py_Set ( a , EXTRA );
13933 if (_res == NULL && PyErr_Occurred()) {
13934 p->error_indicator = 1;
13935 D(p->level--);
13936 return NULL;
13937 }
13938 goto done;
13939 }
13940 p->mark = _mark;
13941 D(fprintf(stderr, "%*c%s set[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000013942 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' star_named_expressions '}'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013943 }
13944 _res = NULL;
13945 done:
13946 D(p->level--);
13947 return _res;
13948}
13949
Pablo Galindo835f14f2021-01-31 22:52:56 +000013950// setcomp: '{' named_expression for_if_clauses '}' | invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013951static expr_ty
13952setcomp_rule(Parser *p)
13953{
13954 D(p->level++);
13955 if (p->error_indicator) {
13956 D(p->level--);
13957 return NULL;
13958 }
13959 expr_ty _res = NULL;
13960 int _mark = p->mark;
13961 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13962 p->error_indicator = 1;
13963 D(p->level--);
13964 return NULL;
13965 }
13966 int _start_lineno = p->tokens[_mark]->lineno;
13967 UNUSED(_start_lineno); // Only used by EXTRA macro
13968 int _start_col_offset = p->tokens[_mark]->col_offset;
13969 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo835f14f2021-01-31 22:52:56 +000013970 { // '{' named_expression for_if_clauses '}'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013971 if (p->error_indicator) {
13972 D(p->level--);
13973 return NULL;
13974 }
Pablo Galindo835f14f2021-01-31 22:52:56 +000013975 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 +010013976 Token * _literal;
13977 Token * _literal_1;
13978 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010013979 asdl_comprehension_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013980 if (
13981 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
13982 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000013983 (a = named_expression_rule(p)) // named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013984 &&
13985 (b = for_if_clauses_rule(p)) // for_if_clauses
13986 &&
13987 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
13988 )
13989 {
Pablo Galindo835f14f2021-01-31 22:52:56 +000013990 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 +010013991 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13992 if (_token == NULL) {
13993 D(p->level--);
13994 return NULL;
13995 }
13996 int _end_lineno = _token->end_lineno;
13997 UNUSED(_end_lineno); // Only used by EXTRA macro
13998 int _end_col_offset = _token->end_col_offset;
13999 UNUSED(_end_col_offset); // Only used by EXTRA macro
14000 _res = _Py_SetComp ( a , b , EXTRA );
14001 if (_res == NULL && PyErr_Occurred()) {
14002 p->error_indicator = 1;
14003 D(p->level--);
14004 return NULL;
14005 }
14006 goto done;
14007 }
14008 p->mark = _mark;
14009 D(fprintf(stderr, "%*c%s setcomp[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo835f14f2021-01-31 22:52:56 +000014010 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' named_expression for_if_clauses '}'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014011 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014012 if (p->call_invalid_rules) { // invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014013 if (p->error_indicator) {
14014 D(p->level--);
14015 return NULL;
14016 }
14017 D(fprintf(stderr, "%*c> setcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
14018 void *invalid_comprehension_var;
14019 if (
14020 (invalid_comprehension_var = invalid_comprehension_rule(p)) // invalid_comprehension
14021 )
14022 {
14023 D(fprintf(stderr, "%*c+ setcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
14024 _res = invalid_comprehension_var;
14025 goto done;
14026 }
14027 p->mark = _mark;
14028 D(fprintf(stderr, "%*c%s setcomp[%d-%d]: %s failed!\n", p->level, ' ',
14029 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_comprehension"));
14030 }
14031 _res = NULL;
14032 done:
14033 D(p->level--);
14034 return _res;
14035}
14036
14037// dict: '{' double_starred_kvpairs? '}'
14038static expr_ty
14039dict_rule(Parser *p)
14040{
14041 D(p->level++);
14042 if (p->error_indicator) {
14043 D(p->level--);
14044 return NULL;
14045 }
14046 expr_ty _res = NULL;
14047 int _mark = p->mark;
14048 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14049 p->error_indicator = 1;
14050 D(p->level--);
14051 return NULL;
14052 }
14053 int _start_lineno = p->tokens[_mark]->lineno;
14054 UNUSED(_start_lineno); // Only used by EXTRA macro
14055 int _start_col_offset = p->tokens[_mark]->col_offset;
14056 UNUSED(_start_col_offset); // Only used by EXTRA macro
14057 { // '{' double_starred_kvpairs? '}'
14058 if (p->error_indicator) {
14059 D(p->level--);
14060 return NULL;
14061 }
14062 D(fprintf(stderr, "%*c> dict[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' double_starred_kvpairs? '}'"));
14063 Token * _literal;
14064 Token * _literal_1;
14065 void *a;
14066 if (
14067 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
14068 &&
14069 (a = double_starred_kvpairs_rule(p), 1) // double_starred_kvpairs?
14070 &&
14071 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
14072 )
14073 {
14074 D(fprintf(stderr, "%*c+ dict[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' double_starred_kvpairs? '}'"));
14075 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14076 if (_token == NULL) {
14077 D(p->level--);
14078 return NULL;
14079 }
14080 int _end_lineno = _token->end_lineno;
14081 UNUSED(_end_lineno); // Only used by EXTRA macro
14082 int _end_col_offset = _token->end_col_offset;
14083 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +030014084 _res = _Py_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 +010014085 if (_res == NULL && PyErr_Occurred()) {
14086 p->error_indicator = 1;
14087 D(p->level--);
14088 return NULL;
14089 }
14090 goto done;
14091 }
14092 p->mark = _mark;
14093 D(fprintf(stderr, "%*c%s dict[%d-%d]: %s failed!\n", p->level, ' ',
14094 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' double_starred_kvpairs? '}'"));
14095 }
14096 _res = NULL;
14097 done:
14098 D(p->level--);
14099 return _res;
14100}
14101
14102// dictcomp: '{' kvpair for_if_clauses '}' | invalid_dict_comprehension
14103static expr_ty
14104dictcomp_rule(Parser *p)
14105{
14106 D(p->level++);
14107 if (p->error_indicator) {
14108 D(p->level--);
14109 return NULL;
14110 }
14111 expr_ty _res = NULL;
14112 int _mark = p->mark;
14113 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14114 p->error_indicator = 1;
14115 D(p->level--);
14116 return NULL;
14117 }
14118 int _start_lineno = p->tokens[_mark]->lineno;
14119 UNUSED(_start_lineno); // Only used by EXTRA macro
14120 int _start_col_offset = p->tokens[_mark]->col_offset;
14121 UNUSED(_start_col_offset); // Only used by EXTRA macro
14122 { // '{' kvpair for_if_clauses '}'
14123 if (p->error_indicator) {
14124 D(p->level--);
14125 return NULL;
14126 }
14127 D(fprintf(stderr, "%*c> dictcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' kvpair for_if_clauses '}'"));
14128 Token * _literal;
14129 Token * _literal_1;
14130 KeyValuePair* a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010014131 asdl_comprehension_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014132 if (
14133 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
14134 &&
14135 (a = kvpair_rule(p)) // kvpair
14136 &&
14137 (b = for_if_clauses_rule(p)) // for_if_clauses
14138 &&
14139 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
14140 )
14141 {
14142 D(fprintf(stderr, "%*c+ dictcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' kvpair for_if_clauses '}'"));
14143 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14144 if (_token == NULL) {
14145 D(p->level--);
14146 return NULL;
14147 }
14148 int _end_lineno = _token->end_lineno;
14149 UNUSED(_end_lineno); // Only used by EXTRA macro
14150 int _end_col_offset = _token->end_col_offset;
14151 UNUSED(_end_col_offset); // Only used by EXTRA macro
14152 _res = _Py_DictComp ( a -> key , a -> value , b , EXTRA );
14153 if (_res == NULL && PyErr_Occurred()) {
14154 p->error_indicator = 1;
14155 D(p->level--);
14156 return NULL;
14157 }
14158 goto done;
14159 }
14160 p->mark = _mark;
14161 D(fprintf(stderr, "%*c%s dictcomp[%d-%d]: %s failed!\n", p->level, ' ',
14162 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' kvpair for_if_clauses '}'"));
14163 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014164 if (p->call_invalid_rules) { // invalid_dict_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014165 if (p->error_indicator) {
14166 D(p->level--);
14167 return NULL;
14168 }
14169 D(fprintf(stderr, "%*c> dictcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_dict_comprehension"));
14170 void *invalid_dict_comprehension_var;
14171 if (
14172 (invalid_dict_comprehension_var = invalid_dict_comprehension_rule(p)) // invalid_dict_comprehension
14173 )
14174 {
14175 D(fprintf(stderr, "%*c+ dictcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_dict_comprehension"));
14176 _res = invalid_dict_comprehension_var;
14177 goto done;
14178 }
14179 p->mark = _mark;
14180 D(fprintf(stderr, "%*c%s dictcomp[%d-%d]: %s failed!\n", p->level, ' ',
14181 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_dict_comprehension"));
14182 }
14183 _res = NULL;
14184 done:
14185 D(p->level--);
14186 return _res;
14187}
14188
14189// double_starred_kvpairs: ','.double_starred_kvpair+ ','?
14190static asdl_seq*
14191double_starred_kvpairs_rule(Parser *p)
14192{
14193 D(p->level++);
14194 if (p->error_indicator) {
14195 D(p->level--);
14196 return NULL;
14197 }
14198 asdl_seq* _res = NULL;
14199 int _mark = p->mark;
14200 { // ','.double_starred_kvpair+ ','?
14201 if (p->error_indicator) {
14202 D(p->level--);
14203 return NULL;
14204 }
14205 D(fprintf(stderr, "%*c> double_starred_kvpairs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.double_starred_kvpair+ ','?"));
14206 void *_opt_var;
14207 UNUSED(_opt_var); // Silence compiler warnings
14208 asdl_seq * a;
14209 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080014210 (a = _gather_117_rule(p)) // ','.double_starred_kvpair+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014211 &&
14212 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
14213 )
14214 {
14215 D(fprintf(stderr, "%*c+ double_starred_kvpairs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.double_starred_kvpair+ ','?"));
14216 _res = a;
14217 if (_res == NULL && PyErr_Occurred()) {
14218 p->error_indicator = 1;
14219 D(p->level--);
14220 return NULL;
14221 }
14222 goto done;
14223 }
14224 p->mark = _mark;
14225 D(fprintf(stderr, "%*c%s double_starred_kvpairs[%d-%d]: %s failed!\n", p->level, ' ',
14226 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.double_starred_kvpair+ ','?"));
14227 }
14228 _res = NULL;
14229 done:
14230 D(p->level--);
14231 return _res;
14232}
14233
14234// double_starred_kvpair: '**' bitwise_or | kvpair
14235static KeyValuePair*
14236double_starred_kvpair_rule(Parser *p)
14237{
14238 D(p->level++);
14239 if (p->error_indicator) {
14240 D(p->level--);
14241 return NULL;
14242 }
14243 KeyValuePair* _res = NULL;
14244 int _mark = p->mark;
14245 { // '**' bitwise_or
14246 if (p->error_indicator) {
14247 D(p->level--);
14248 return NULL;
14249 }
14250 D(fprintf(stderr, "%*c> double_starred_kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' bitwise_or"));
14251 Token * _literal;
14252 expr_ty a;
14253 if (
14254 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
14255 &&
14256 (a = bitwise_or_rule(p)) // bitwise_or
14257 )
14258 {
14259 D(fprintf(stderr, "%*c+ double_starred_kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' bitwise_or"));
14260 _res = _PyPegen_key_value_pair ( p , NULL , a );
14261 if (_res == NULL && PyErr_Occurred()) {
14262 p->error_indicator = 1;
14263 D(p->level--);
14264 return NULL;
14265 }
14266 goto done;
14267 }
14268 p->mark = _mark;
14269 D(fprintf(stderr, "%*c%s double_starred_kvpair[%d-%d]: %s failed!\n", p->level, ' ',
14270 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' bitwise_or"));
14271 }
14272 { // kvpair
14273 if (p->error_indicator) {
14274 D(p->level--);
14275 return NULL;
14276 }
14277 D(fprintf(stderr, "%*c> double_starred_kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kvpair"));
14278 KeyValuePair* kvpair_var;
14279 if (
14280 (kvpair_var = kvpair_rule(p)) // kvpair
14281 )
14282 {
14283 D(fprintf(stderr, "%*c+ double_starred_kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kvpair"));
14284 _res = kvpair_var;
14285 goto done;
14286 }
14287 p->mark = _mark;
14288 D(fprintf(stderr, "%*c%s double_starred_kvpair[%d-%d]: %s failed!\n", p->level, ' ',
14289 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kvpair"));
14290 }
14291 _res = NULL;
14292 done:
14293 D(p->level--);
14294 return _res;
14295}
14296
14297// kvpair: expression ':' expression
14298static KeyValuePair*
14299kvpair_rule(Parser *p)
14300{
14301 D(p->level++);
14302 if (p->error_indicator) {
14303 D(p->level--);
14304 return NULL;
14305 }
14306 KeyValuePair* _res = NULL;
14307 int _mark = p->mark;
14308 { // expression ':' expression
14309 if (p->error_indicator) {
14310 D(p->level--);
14311 return NULL;
14312 }
14313 D(fprintf(stderr, "%*c> kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' expression"));
14314 Token * _literal;
14315 expr_ty a;
14316 expr_ty b;
14317 if (
14318 (a = expression_rule(p)) // expression
14319 &&
14320 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
14321 &&
14322 (b = expression_rule(p)) // expression
14323 )
14324 {
14325 D(fprintf(stderr, "%*c+ kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':' expression"));
14326 _res = _PyPegen_key_value_pair ( p , a , b );
14327 if (_res == NULL && PyErr_Occurred()) {
14328 p->error_indicator = 1;
14329 D(p->level--);
14330 return NULL;
14331 }
14332 goto done;
14333 }
14334 p->mark = _mark;
14335 D(fprintf(stderr, "%*c%s kvpair[%d-%d]: %s failed!\n", p->level, ' ',
14336 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' expression"));
14337 }
14338 _res = NULL;
14339 done:
14340 D(p->level--);
14341 return _res;
14342}
14343
14344// for_if_clauses: for_if_clause+
Pablo Galindoa5634c42020-09-16 19:42:00 +010014345static asdl_comprehension_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014346for_if_clauses_rule(Parser *p)
14347{
14348 D(p->level++);
14349 if (p->error_indicator) {
14350 D(p->level--);
14351 return NULL;
14352 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010014353 asdl_comprehension_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014354 int _mark = p->mark;
14355 { // for_if_clause+
14356 if (p->error_indicator) {
14357 D(p->level--);
14358 return NULL;
14359 }
14360 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 +010014361 asdl_comprehension_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014362 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080014363 (a = (asdl_comprehension_seq*)_loop1_119_rule(p)) // for_if_clause+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014364 )
14365 {
14366 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 +010014367 _res = a;
14368 if (_res == NULL && PyErr_Occurred()) {
14369 p->error_indicator = 1;
14370 D(p->level--);
14371 return NULL;
14372 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014373 goto done;
14374 }
14375 p->mark = _mark;
14376 D(fprintf(stderr, "%*c%s for_if_clauses[%d-%d]: %s failed!\n", p->level, ' ',
14377 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "for_if_clause+"));
14378 }
14379 _res = NULL;
14380 done:
14381 D(p->level--);
14382 return _res;
14383}
14384
14385// for_if_clause:
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030014386// | ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
14387// | 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
14388// | invalid_for_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014389static comprehension_ty
14390for_if_clause_rule(Parser *p)
14391{
14392 D(p->level++);
14393 if (p->error_indicator) {
14394 D(p->level--);
14395 return NULL;
14396 }
14397 comprehension_ty _res = NULL;
14398 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030014399 { // ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014400 if (p->error_indicator) {
14401 D(p->level--);
14402 return NULL;
14403 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030014404 D(fprintf(stderr, "%*c> for_if_clause[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
14405 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014406 Token * _keyword;
14407 Token * _keyword_1;
14408 expr_ty a;
14409 Token * async_var;
14410 expr_ty b;
Pablo Galindoa5634c42020-09-16 19:42:00 +010014411 asdl_expr_seq* c;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014412 if (
14413 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
14414 &&
14415 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
14416 &&
14417 (a = star_targets_rule(p)) // star_targets
14418 &&
14419 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
14420 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030014421 (_cut_var = 1)
14422 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014423 (b = disjunction_rule(p)) // disjunction
14424 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080014425 (c = (asdl_expr_seq*)_loop0_120_rule(p)) // (('if' disjunction))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014426 )
14427 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030014428 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))*"));
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +030014429 _res = CHECK_VERSION ( comprehension_ty , 6 , "Async comprehensions are" , _Py_comprehension ( a , b , c , 1 , p -> arena ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014430 if (_res == NULL && PyErr_Occurred()) {
14431 p->error_indicator = 1;
14432 D(p->level--);
14433 return NULL;
14434 }
14435 goto done;
14436 }
14437 p->mark = _mark;
14438 D(fprintf(stderr, "%*c%s for_if_clause[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030014439 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
14440 if (_cut_var) {
14441 D(p->level--);
14442 return NULL;
14443 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014444 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030014445 { // 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014446 if (p->error_indicator) {
14447 D(p->level--);
14448 return NULL;
14449 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030014450 D(fprintf(stderr, "%*c> for_if_clause[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
14451 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014452 Token * _keyword;
14453 Token * _keyword_1;
14454 expr_ty a;
14455 expr_ty b;
Pablo Galindoa5634c42020-09-16 19:42:00 +010014456 asdl_expr_seq* c;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014457 if (
14458 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
14459 &&
14460 (a = star_targets_rule(p)) // star_targets
14461 &&
14462 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
14463 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030014464 (_cut_var = 1)
14465 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014466 (b = disjunction_rule(p)) // disjunction
14467 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080014468 (c = (asdl_expr_seq*)_loop0_121_rule(p)) // (('if' disjunction))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014469 )
14470 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030014471 D(fprintf(stderr, "%*c+ for_if_clause[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014472 _res = _Py_comprehension ( a , b , c , 0 , p -> arena );
14473 if (_res == NULL && PyErr_Occurred()) {
14474 p->error_indicator = 1;
14475 D(p->level--);
14476 return NULL;
14477 }
14478 goto done;
14479 }
14480 p->mark = _mark;
14481 D(fprintf(stderr, "%*c%s for_if_clause[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030014482 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
14483 if (_cut_var) {
14484 D(p->level--);
14485 return NULL;
14486 }
14487 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014488 if (p->call_invalid_rules) { // invalid_for_target
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030014489 if (p->error_indicator) {
14490 D(p->level--);
14491 return NULL;
14492 }
14493 D(fprintf(stderr, "%*c> for_if_clause[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
14494 void *invalid_for_target_var;
14495 if (
14496 (invalid_for_target_var = invalid_for_target_rule(p)) // invalid_for_target
14497 )
14498 {
14499 D(fprintf(stderr, "%*c+ for_if_clause[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
14500 _res = invalid_for_target_var;
14501 goto done;
14502 }
14503 p->mark = _mark;
14504 D(fprintf(stderr, "%*c%s for_if_clause[%d-%d]: %s failed!\n", p->level, ' ',
14505 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_for_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014506 }
14507 _res = NULL;
14508 done:
14509 D(p->level--);
14510 return _res;
14511}
14512
14513// yield_expr: 'yield' 'from' expression | 'yield' star_expressions?
14514static expr_ty
14515yield_expr_rule(Parser *p)
14516{
14517 D(p->level++);
14518 if (p->error_indicator) {
14519 D(p->level--);
14520 return NULL;
14521 }
14522 expr_ty _res = NULL;
14523 int _mark = p->mark;
14524 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14525 p->error_indicator = 1;
14526 D(p->level--);
14527 return NULL;
14528 }
14529 int _start_lineno = p->tokens[_mark]->lineno;
14530 UNUSED(_start_lineno); // Only used by EXTRA macro
14531 int _start_col_offset = p->tokens[_mark]->col_offset;
14532 UNUSED(_start_col_offset); // Only used by EXTRA macro
14533 { // 'yield' 'from' expression
14534 if (p->error_indicator) {
14535 D(p->level--);
14536 return NULL;
14537 }
14538 D(fprintf(stderr, "%*c> yield_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'yield' 'from' expression"));
14539 Token * _keyword;
14540 Token * _keyword_1;
14541 expr_ty a;
14542 if (
14543 (_keyword = _PyPegen_expect_token(p, 504)) // token='yield'
14544 &&
14545 (_keyword_1 = _PyPegen_expect_token(p, 514)) // token='from'
14546 &&
14547 (a = expression_rule(p)) // expression
14548 )
14549 {
14550 D(fprintf(stderr, "%*c+ yield_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'yield' 'from' expression"));
14551 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14552 if (_token == NULL) {
14553 D(p->level--);
14554 return NULL;
14555 }
14556 int _end_lineno = _token->end_lineno;
14557 UNUSED(_end_lineno); // Only used by EXTRA macro
14558 int _end_col_offset = _token->end_col_offset;
14559 UNUSED(_end_col_offset); // Only used by EXTRA macro
14560 _res = _Py_YieldFrom ( a , EXTRA );
14561 if (_res == NULL && PyErr_Occurred()) {
14562 p->error_indicator = 1;
14563 D(p->level--);
14564 return NULL;
14565 }
14566 goto done;
14567 }
14568 p->mark = _mark;
14569 D(fprintf(stderr, "%*c%s yield_expr[%d-%d]: %s failed!\n", p->level, ' ',
14570 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'yield' 'from' expression"));
14571 }
14572 { // 'yield' star_expressions?
14573 if (p->error_indicator) {
14574 D(p->level--);
14575 return NULL;
14576 }
14577 D(fprintf(stderr, "%*c> yield_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'yield' star_expressions?"));
14578 Token * _keyword;
14579 void *a;
14580 if (
14581 (_keyword = _PyPegen_expect_token(p, 504)) // token='yield'
14582 &&
14583 (a = star_expressions_rule(p), 1) // star_expressions?
14584 )
14585 {
14586 D(fprintf(stderr, "%*c+ yield_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'yield' star_expressions?"));
14587 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14588 if (_token == NULL) {
14589 D(p->level--);
14590 return NULL;
14591 }
14592 int _end_lineno = _token->end_lineno;
14593 UNUSED(_end_lineno); // Only used by EXTRA macro
14594 int _end_col_offset = _token->end_col_offset;
14595 UNUSED(_end_col_offset); // Only used by EXTRA macro
14596 _res = _Py_Yield ( a , EXTRA );
14597 if (_res == NULL && PyErr_Occurred()) {
14598 p->error_indicator = 1;
14599 D(p->level--);
14600 return NULL;
14601 }
14602 goto done;
14603 }
14604 p->mark = _mark;
14605 D(fprintf(stderr, "%*c%s yield_expr[%d-%d]: %s failed!\n", p->level, ' ',
14606 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'yield' star_expressions?"));
14607 }
14608 _res = NULL;
14609 done:
14610 D(p->level--);
14611 return _res;
14612}
14613
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014614// arguments: args ','? &')' | invalid_arguments
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014615static expr_ty
14616arguments_rule(Parser *p)
14617{
14618 D(p->level++);
14619 if (p->error_indicator) {
14620 D(p->level--);
14621 return NULL;
14622 }
14623 expr_ty _res = NULL;
14624 if (_PyPegen_is_memoized(p, arguments_type, &_res)) {
14625 D(p->level--);
14626 return _res;
14627 }
14628 int _mark = p->mark;
14629 { // args ','? &')'
14630 if (p->error_indicator) {
14631 D(p->level--);
14632 return NULL;
14633 }
14634 D(fprintf(stderr, "%*c> arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args ','? &')'"));
14635 void *_opt_var;
14636 UNUSED(_opt_var); // Silence compiler warnings
14637 expr_ty a;
14638 if (
14639 (a = args_rule(p)) // args
14640 &&
14641 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
14642 &&
14643 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
14644 )
14645 {
14646 D(fprintf(stderr, "%*c+ arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args ','? &')'"));
14647 _res = a;
14648 if (_res == NULL && PyErr_Occurred()) {
14649 p->error_indicator = 1;
14650 D(p->level--);
14651 return NULL;
14652 }
14653 goto done;
14654 }
14655 p->mark = _mark;
14656 D(fprintf(stderr, "%*c%s arguments[%d-%d]: %s failed!\n", p->level, ' ',
14657 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ','? &')'"));
14658 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014659 if (p->call_invalid_rules) { // invalid_arguments
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014660 if (p->error_indicator) {
14661 D(p->level--);
14662 return NULL;
14663 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014664 D(fprintf(stderr, "%*c> arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_arguments"));
14665 void *invalid_arguments_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014666 if (
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014667 (invalid_arguments_var = invalid_arguments_rule(p)) // invalid_arguments
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014668 )
14669 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014670 D(fprintf(stderr, "%*c+ arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_arguments"));
14671 _res = invalid_arguments_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014672 goto done;
14673 }
14674 p->mark = _mark;
14675 D(fprintf(stderr, "%*c%s arguments[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014676 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_arguments"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014677 }
14678 _res = NULL;
14679 done:
14680 _PyPegen_insert_memo(p, _mark, arguments_type, _res);
14681 D(p->level--);
14682 return _res;
14683}
14684
Pablo Galindo4a97b152020-09-02 17:44:19 +010014685// args: ','.(starred_expression | named_expression !'=')+ [',' kwargs] | kwargs
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014686static expr_ty
14687args_rule(Parser *p)
14688{
14689 D(p->level++);
14690 if (p->error_indicator) {
14691 D(p->level--);
14692 return NULL;
14693 }
14694 expr_ty _res = NULL;
14695 int _mark = p->mark;
14696 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14697 p->error_indicator = 1;
14698 D(p->level--);
14699 return NULL;
14700 }
14701 int _start_lineno = p->tokens[_mark]->lineno;
14702 UNUSED(_start_lineno); // Only used by EXTRA macro
14703 int _start_col_offset = p->tokens[_mark]->col_offset;
14704 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo4a97b152020-09-02 17:44:19 +010014705 { // ','.(starred_expression | named_expression !'=')+ [',' kwargs]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014706 if (p->error_indicator) {
14707 D(p->level--);
14708 return NULL;
14709 }
Pablo Galindo4a97b152020-09-02 17:44:19 +010014710 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 +010014711 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014712 void *b;
14713 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080014714 (a = (asdl_expr_seq*)_gather_122_rule(p)) // ','.(starred_expression | named_expression !'=')+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014715 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080014716 (b = _tmp_124_rule(p), 1) // [',' kwargs]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014717 )
14718 {
Pablo Galindo4a97b152020-09-02 17:44:19 +010014719 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 +010014720 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14721 if (_token == NULL) {
14722 D(p->level--);
14723 return NULL;
14724 }
14725 int _end_lineno = _token->end_lineno;
14726 UNUSED(_end_lineno); // Only used by EXTRA macro
14727 int _end_col_offset = _token->end_col_offset;
14728 UNUSED(_end_col_offset); // Only used by EXTRA macro
14729 _res = _PyPegen_collect_call_seqs ( p , a , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014730 if (_res == NULL && PyErr_Occurred()) {
14731 p->error_indicator = 1;
14732 D(p->level--);
14733 return NULL;
14734 }
14735 goto done;
14736 }
14737 p->mark = _mark;
14738 D(fprintf(stderr, "%*c%s args[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo4a97b152020-09-02 17:44:19 +010014739 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.(starred_expression | named_expression !'=')+ [',' kwargs]"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014740 }
14741 { // kwargs
14742 if (p->error_indicator) {
14743 D(p->level--);
14744 return NULL;
14745 }
14746 D(fprintf(stderr, "%*c> args[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwargs"));
14747 asdl_seq* a;
14748 if (
14749 (a = kwargs_rule(p)) // kwargs
14750 )
14751 {
14752 D(fprintf(stderr, "%*c+ args[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwargs"));
14753 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14754 if (_token == NULL) {
14755 D(p->level--);
14756 return NULL;
14757 }
14758 int _end_lineno = _token->end_lineno;
14759 UNUSED(_end_lineno); // Only used by EXTRA macro
14760 int _end_col_offset = _token->end_col_offset;
14761 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +030014762 _res = _Py_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 +010014763 if (_res == NULL && PyErr_Occurred()) {
14764 p->error_indicator = 1;
14765 D(p->level--);
14766 return NULL;
14767 }
14768 goto done;
14769 }
14770 p->mark = _mark;
14771 D(fprintf(stderr, "%*c%s args[%d-%d]: %s failed!\n", p->level, ' ',
14772 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwargs"));
14773 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014774 _res = NULL;
14775 done:
14776 D(p->level--);
14777 return _res;
14778}
14779
14780// kwargs:
14781// | ','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+
14782// | ','.kwarg_or_starred+
14783// | ','.kwarg_or_double_starred+
14784static asdl_seq*
14785kwargs_rule(Parser *p)
14786{
14787 D(p->level++);
14788 if (p->error_indicator) {
14789 D(p->level--);
14790 return NULL;
14791 }
14792 asdl_seq* _res = NULL;
14793 int _mark = p->mark;
14794 { // ','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+
14795 if (p->error_indicator) {
14796 D(p->level--);
14797 return NULL;
14798 }
14799 D(fprintf(stderr, "%*c> kwargs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+"));
14800 Token * _literal;
14801 asdl_seq * a;
14802 asdl_seq * b;
14803 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080014804 (a = _gather_125_rule(p)) // ','.kwarg_or_starred+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014805 &&
14806 (_literal = _PyPegen_expect_token(p, 12)) // token=','
14807 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080014808 (b = _gather_127_rule(p)) // ','.kwarg_or_double_starred+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014809 )
14810 {
14811 D(fprintf(stderr, "%*c+ kwargs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+"));
14812 _res = _PyPegen_join_sequences ( p , a , b );
14813 if (_res == NULL && PyErr_Occurred()) {
14814 p->error_indicator = 1;
14815 D(p->level--);
14816 return NULL;
14817 }
14818 goto done;
14819 }
14820 p->mark = _mark;
14821 D(fprintf(stderr, "%*c%s kwargs[%d-%d]: %s failed!\n", p->level, ' ',
14822 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+"));
14823 }
14824 { // ','.kwarg_or_starred+
14825 if (p->error_indicator) {
14826 D(p->level--);
14827 return NULL;
14828 }
14829 D(fprintf(stderr, "%*c> kwargs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_starred+"));
Brandt Bucher145bf262021-02-26 14:51:55 -080014830 asdl_seq * _gather_129_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014831 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080014832 (_gather_129_var = _gather_129_rule(p)) // ','.kwarg_or_starred+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014833 )
14834 {
14835 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 -080014836 _res = _gather_129_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014837 goto done;
14838 }
14839 p->mark = _mark;
14840 D(fprintf(stderr, "%*c%s kwargs[%d-%d]: %s failed!\n", p->level, ' ',
14841 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.kwarg_or_starred+"));
14842 }
14843 { // ','.kwarg_or_double_starred+
14844 if (p->error_indicator) {
14845 D(p->level--);
14846 return NULL;
14847 }
14848 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 -080014849 asdl_seq * _gather_131_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014850 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080014851 (_gather_131_var = _gather_131_rule(p)) // ','.kwarg_or_double_starred+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014852 )
14853 {
14854 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 -080014855 _res = _gather_131_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014856 goto done;
14857 }
14858 p->mark = _mark;
14859 D(fprintf(stderr, "%*c%s kwargs[%d-%d]: %s failed!\n", p->level, ' ',
14860 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.kwarg_or_double_starred+"));
14861 }
14862 _res = NULL;
14863 done:
14864 D(p->level--);
14865 return _res;
14866}
14867
14868// starred_expression: '*' expression
14869static expr_ty
14870starred_expression_rule(Parser *p)
14871{
14872 D(p->level++);
14873 if (p->error_indicator) {
14874 D(p->level--);
14875 return NULL;
14876 }
14877 expr_ty _res = NULL;
14878 int _mark = p->mark;
14879 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14880 p->error_indicator = 1;
14881 D(p->level--);
14882 return NULL;
14883 }
14884 int _start_lineno = p->tokens[_mark]->lineno;
14885 UNUSED(_start_lineno); // Only used by EXTRA macro
14886 int _start_col_offset = p->tokens[_mark]->col_offset;
14887 UNUSED(_start_col_offset); // Only used by EXTRA macro
14888 { // '*' expression
14889 if (p->error_indicator) {
14890 D(p->level--);
14891 return NULL;
14892 }
14893 D(fprintf(stderr, "%*c> starred_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' expression"));
14894 Token * _literal;
14895 expr_ty a;
14896 if (
14897 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
14898 &&
14899 (a = expression_rule(p)) // expression
14900 )
14901 {
14902 D(fprintf(stderr, "%*c+ starred_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' expression"));
14903 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14904 if (_token == NULL) {
14905 D(p->level--);
14906 return NULL;
14907 }
14908 int _end_lineno = _token->end_lineno;
14909 UNUSED(_end_lineno); // Only used by EXTRA macro
14910 int _end_col_offset = _token->end_col_offset;
14911 UNUSED(_end_col_offset); // Only used by EXTRA macro
14912 _res = _Py_Starred ( a , Load , EXTRA );
14913 if (_res == NULL && PyErr_Occurred()) {
14914 p->error_indicator = 1;
14915 D(p->level--);
14916 return NULL;
14917 }
14918 goto done;
14919 }
14920 p->mark = _mark;
14921 D(fprintf(stderr, "%*c%s starred_expression[%d-%d]: %s failed!\n", p->level, ' ',
14922 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' expression"));
14923 }
14924 _res = NULL;
14925 done:
14926 D(p->level--);
14927 return _res;
14928}
14929
14930// kwarg_or_starred: NAME '=' expression | starred_expression | invalid_kwarg
14931static KeywordOrStarred*
14932kwarg_or_starred_rule(Parser *p)
14933{
14934 D(p->level++);
14935 if (p->error_indicator) {
14936 D(p->level--);
14937 return NULL;
14938 }
14939 KeywordOrStarred* _res = NULL;
14940 int _mark = p->mark;
14941 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14942 p->error_indicator = 1;
14943 D(p->level--);
14944 return NULL;
14945 }
14946 int _start_lineno = p->tokens[_mark]->lineno;
14947 UNUSED(_start_lineno); // Only used by EXTRA macro
14948 int _start_col_offset = p->tokens[_mark]->col_offset;
14949 UNUSED(_start_col_offset); // Only used by EXTRA macro
14950 { // NAME '=' expression
14951 if (p->error_indicator) {
14952 D(p->level--);
14953 return NULL;
14954 }
14955 D(fprintf(stderr, "%*c> kwarg_or_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '=' expression"));
14956 Token * _literal;
14957 expr_ty a;
14958 expr_ty b;
14959 if (
14960 (a = _PyPegen_name_token(p)) // NAME
14961 &&
14962 (_literal = _PyPegen_expect_token(p, 22)) // token='='
14963 &&
14964 (b = expression_rule(p)) // expression
14965 )
14966 {
14967 D(fprintf(stderr, "%*c+ kwarg_or_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '=' expression"));
14968 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14969 if (_token == NULL) {
14970 D(p->level--);
14971 return NULL;
14972 }
14973 int _end_lineno = _token->end_lineno;
14974 UNUSED(_end_lineno); // Only used by EXTRA macro
14975 int _end_col_offset = _token->end_col_offset;
14976 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +030014977 _res = _PyPegen_keyword_or_starred ( p , CHECK ( keyword_ty , _Py_keyword ( a -> v . Name . id , b , EXTRA ) ) , 1 );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014978 if (_res == NULL && PyErr_Occurred()) {
14979 p->error_indicator = 1;
14980 D(p->level--);
14981 return NULL;
14982 }
14983 goto done;
14984 }
14985 p->mark = _mark;
14986 D(fprintf(stderr, "%*c%s kwarg_or_starred[%d-%d]: %s failed!\n", p->level, ' ',
14987 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' expression"));
14988 }
14989 { // starred_expression
14990 if (p->error_indicator) {
14991 D(p->level--);
14992 return NULL;
14993 }
14994 D(fprintf(stderr, "%*c> kwarg_or_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "starred_expression"));
14995 expr_ty a;
14996 if (
14997 (a = starred_expression_rule(p)) // starred_expression
14998 )
14999 {
15000 D(fprintf(stderr, "%*c+ kwarg_or_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "starred_expression"));
15001 _res = _PyPegen_keyword_or_starred ( p , a , 0 );
15002 if (_res == NULL && PyErr_Occurred()) {
15003 p->error_indicator = 1;
15004 D(p->level--);
15005 return NULL;
15006 }
15007 goto done;
15008 }
15009 p->mark = _mark;
15010 D(fprintf(stderr, "%*c%s kwarg_or_starred[%d-%d]: %s failed!\n", p->level, ' ',
15011 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "starred_expression"));
15012 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020015013 if (p->call_invalid_rules) { // invalid_kwarg
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015014 if (p->error_indicator) {
15015 D(p->level--);
15016 return NULL;
15017 }
15018 D(fprintf(stderr, "%*c> kwarg_or_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_kwarg"));
15019 void *invalid_kwarg_var;
15020 if (
15021 (invalid_kwarg_var = invalid_kwarg_rule(p)) // invalid_kwarg
15022 )
15023 {
15024 D(fprintf(stderr, "%*c+ kwarg_or_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_kwarg"));
15025 _res = invalid_kwarg_var;
15026 goto done;
15027 }
15028 p->mark = _mark;
15029 D(fprintf(stderr, "%*c%s kwarg_or_starred[%d-%d]: %s failed!\n", p->level, ' ',
15030 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_kwarg"));
15031 }
15032 _res = NULL;
15033 done:
15034 D(p->level--);
15035 return _res;
15036}
15037
15038// kwarg_or_double_starred: NAME '=' expression | '**' expression | invalid_kwarg
15039static KeywordOrStarred*
15040kwarg_or_double_starred_rule(Parser *p)
15041{
15042 D(p->level++);
15043 if (p->error_indicator) {
15044 D(p->level--);
15045 return NULL;
15046 }
15047 KeywordOrStarred* _res = NULL;
15048 int _mark = p->mark;
15049 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
15050 p->error_indicator = 1;
15051 D(p->level--);
15052 return NULL;
15053 }
15054 int _start_lineno = p->tokens[_mark]->lineno;
15055 UNUSED(_start_lineno); // Only used by EXTRA macro
15056 int _start_col_offset = p->tokens[_mark]->col_offset;
15057 UNUSED(_start_col_offset); // Only used by EXTRA macro
15058 { // NAME '=' expression
15059 if (p->error_indicator) {
15060 D(p->level--);
15061 return NULL;
15062 }
15063 D(fprintf(stderr, "%*c> kwarg_or_double_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '=' expression"));
15064 Token * _literal;
15065 expr_ty a;
15066 expr_ty b;
15067 if (
15068 (a = _PyPegen_name_token(p)) // NAME
15069 &&
15070 (_literal = _PyPegen_expect_token(p, 22)) // token='='
15071 &&
15072 (b = expression_rule(p)) // expression
15073 )
15074 {
15075 D(fprintf(stderr, "%*c+ kwarg_or_double_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '=' expression"));
15076 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15077 if (_token == NULL) {
15078 D(p->level--);
15079 return NULL;
15080 }
15081 int _end_lineno = _token->end_lineno;
15082 UNUSED(_end_lineno); // Only used by EXTRA macro
15083 int _end_col_offset = _token->end_col_offset;
15084 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +030015085 _res = _PyPegen_keyword_or_starred ( p , CHECK ( keyword_ty , _Py_keyword ( a -> v . Name . id , b , EXTRA ) ) , 1 );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015086 if (_res == NULL && PyErr_Occurred()) {
15087 p->error_indicator = 1;
15088 D(p->level--);
15089 return NULL;
15090 }
15091 goto done;
15092 }
15093 p->mark = _mark;
15094 D(fprintf(stderr, "%*c%s kwarg_or_double_starred[%d-%d]: %s failed!\n", p->level, ' ',
15095 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' expression"));
15096 }
15097 { // '**' expression
15098 if (p->error_indicator) {
15099 D(p->level--);
15100 return NULL;
15101 }
15102 D(fprintf(stderr, "%*c> kwarg_or_double_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' expression"));
15103 Token * _literal;
15104 expr_ty a;
15105 if (
15106 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
15107 &&
15108 (a = expression_rule(p)) // expression
15109 )
15110 {
15111 D(fprintf(stderr, "%*c+ kwarg_or_double_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' expression"));
15112 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15113 if (_token == NULL) {
15114 D(p->level--);
15115 return NULL;
15116 }
15117 int _end_lineno = _token->end_lineno;
15118 UNUSED(_end_lineno); // Only used by EXTRA macro
15119 int _end_col_offset = _token->end_col_offset;
15120 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +030015121 _res = _PyPegen_keyword_or_starred ( p , CHECK ( keyword_ty , _Py_keyword ( NULL , a , EXTRA ) ) , 1 );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015122 if (_res == NULL && PyErr_Occurred()) {
15123 p->error_indicator = 1;
15124 D(p->level--);
15125 return NULL;
15126 }
15127 goto done;
15128 }
15129 p->mark = _mark;
15130 D(fprintf(stderr, "%*c%s kwarg_or_double_starred[%d-%d]: %s failed!\n", p->level, ' ',
15131 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' expression"));
15132 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020015133 if (p->call_invalid_rules) { // invalid_kwarg
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015134 if (p->error_indicator) {
15135 D(p->level--);
15136 return NULL;
15137 }
15138 D(fprintf(stderr, "%*c> kwarg_or_double_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_kwarg"));
15139 void *invalid_kwarg_var;
15140 if (
15141 (invalid_kwarg_var = invalid_kwarg_rule(p)) // invalid_kwarg
15142 )
15143 {
15144 D(fprintf(stderr, "%*c+ kwarg_or_double_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_kwarg"));
15145 _res = invalid_kwarg_var;
15146 goto done;
15147 }
15148 p->mark = _mark;
15149 D(fprintf(stderr, "%*c%s kwarg_or_double_starred[%d-%d]: %s failed!\n", p->level, ' ',
15150 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_kwarg"));
15151 }
15152 _res = NULL;
15153 done:
15154 D(p->level--);
15155 return _res;
15156}
15157
15158// star_targets: star_target !',' | star_target ((',' star_target))* ','?
15159static expr_ty
15160star_targets_rule(Parser *p)
15161{
15162 D(p->level++);
15163 if (p->error_indicator) {
15164 D(p->level--);
15165 return NULL;
15166 }
15167 expr_ty _res = NULL;
15168 int _mark = p->mark;
15169 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
15170 p->error_indicator = 1;
15171 D(p->level--);
15172 return NULL;
15173 }
15174 int _start_lineno = p->tokens[_mark]->lineno;
15175 UNUSED(_start_lineno); // Only used by EXTRA macro
15176 int _start_col_offset = p->tokens[_mark]->col_offset;
15177 UNUSED(_start_col_offset); // Only used by EXTRA macro
15178 { // star_target !','
15179 if (p->error_indicator) {
15180 D(p->level--);
15181 return NULL;
15182 }
15183 D(fprintf(stderr, "%*c> star_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target !','"));
15184 expr_ty a;
15185 if (
15186 (a = star_target_rule(p)) // star_target
15187 &&
15188 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 12) // token=','
15189 )
15190 {
15191 D(fprintf(stderr, "%*c+ star_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target !','"));
15192 _res = a;
15193 if (_res == NULL && PyErr_Occurred()) {
15194 p->error_indicator = 1;
15195 D(p->level--);
15196 return NULL;
15197 }
15198 goto done;
15199 }
15200 p->mark = _mark;
15201 D(fprintf(stderr, "%*c%s star_targets[%d-%d]: %s failed!\n", p->level, ' ',
15202 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target !','"));
15203 }
15204 { // star_target ((',' star_target))* ','?
15205 if (p->error_indicator) {
15206 D(p->level--);
15207 return NULL;
15208 }
15209 D(fprintf(stderr, "%*c> star_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target ((',' star_target))* ','?"));
15210 void *_opt_var;
15211 UNUSED(_opt_var); // Silence compiler warnings
15212 expr_ty a;
15213 asdl_seq * b;
15214 if (
15215 (a = star_target_rule(p)) // star_target
15216 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080015217 (b = _loop0_133_rule(p)) // ((',' star_target))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015218 &&
15219 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
15220 )
15221 {
15222 D(fprintf(stderr, "%*c+ star_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target ((',' star_target))* ','?"));
15223 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15224 if (_token == NULL) {
15225 D(p->level--);
15226 return NULL;
15227 }
15228 int _end_lineno = _token->end_lineno;
15229 UNUSED(_end_lineno); // Only used by EXTRA macro
15230 int _end_col_offset = _token->end_col_offset;
15231 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +030015232 _res = _Py_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , a , b ) ) , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015233 if (_res == NULL && PyErr_Occurred()) {
15234 p->error_indicator = 1;
15235 D(p->level--);
15236 return NULL;
15237 }
15238 goto done;
15239 }
15240 p->mark = _mark;
15241 D(fprintf(stderr, "%*c%s star_targets[%d-%d]: %s failed!\n", p->level, ' ',
15242 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target ((',' star_target))* ','?"));
15243 }
15244 _res = NULL;
15245 done:
15246 D(p->level--);
15247 return _res;
15248}
15249
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015250// star_targets_list_seq: ','.star_target+ ','?
Pablo Galindoa5634c42020-09-16 19:42:00 +010015251static asdl_expr_seq*
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015252star_targets_list_seq_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015253{
15254 D(p->level++);
15255 if (p->error_indicator) {
15256 D(p->level--);
15257 return NULL;
15258 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010015259 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015260 int _mark = p->mark;
15261 { // ','.star_target+ ','?
15262 if (p->error_indicator) {
15263 D(p->level--);
15264 return NULL;
15265 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015266 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 +010015267 void *_opt_var;
15268 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +010015269 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015270 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080015271 (a = (asdl_expr_seq*)_gather_134_rule(p)) // ','.star_target+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015272 &&
15273 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
15274 )
15275 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015276 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 +010015277 _res = a;
15278 if (_res == NULL && PyErr_Occurred()) {
15279 p->error_indicator = 1;
15280 D(p->level--);
15281 return NULL;
15282 }
15283 goto done;
15284 }
15285 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015286 D(fprintf(stderr, "%*c%s star_targets_list_seq[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015287 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.star_target+ ','?"));
15288 }
15289 _res = NULL;
15290 done:
15291 D(p->level--);
15292 return _res;
15293}
15294
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015295// star_targets_tuple_seq: star_target ((',' star_target))+ ','? | star_target ','
15296static asdl_expr_seq*
15297star_targets_tuple_seq_rule(Parser *p)
15298{
15299 D(p->level++);
15300 if (p->error_indicator) {
15301 D(p->level--);
15302 return NULL;
15303 }
15304 asdl_expr_seq* _res = NULL;
15305 int _mark = p->mark;
15306 { // star_target ((',' star_target))+ ','?
15307 if (p->error_indicator) {
15308 D(p->level--);
15309 return NULL;
15310 }
15311 D(fprintf(stderr, "%*c> star_targets_tuple_seq[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target ((',' star_target))+ ','?"));
15312 void *_opt_var;
15313 UNUSED(_opt_var); // Silence compiler warnings
15314 expr_ty a;
15315 asdl_seq * b;
15316 if (
15317 (a = star_target_rule(p)) // star_target
15318 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080015319 (b = _loop1_136_rule(p)) // ((',' star_target))+
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015320 &&
15321 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
15322 )
15323 {
15324 D(fprintf(stderr, "%*c+ star_targets_tuple_seq[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target ((',' star_target))+ ','?"));
15325 _res = ( asdl_expr_seq * ) _PyPegen_seq_insert_in_front ( p , a , b );
15326 if (_res == NULL && PyErr_Occurred()) {
15327 p->error_indicator = 1;
15328 D(p->level--);
15329 return NULL;
15330 }
15331 goto done;
15332 }
15333 p->mark = _mark;
15334 D(fprintf(stderr, "%*c%s star_targets_tuple_seq[%d-%d]: %s failed!\n", p->level, ' ',
15335 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target ((',' star_target))+ ','?"));
15336 }
15337 { // star_target ','
15338 if (p->error_indicator) {
15339 D(p->level--);
15340 return NULL;
15341 }
15342 D(fprintf(stderr, "%*c> star_targets_tuple_seq[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target ','"));
15343 Token * _literal;
15344 expr_ty a;
15345 if (
15346 (a = star_target_rule(p)) // star_target
15347 &&
15348 (_literal = _PyPegen_expect_token(p, 12)) // token=','
15349 )
15350 {
15351 D(fprintf(stderr, "%*c+ star_targets_tuple_seq[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target ','"));
15352 _res = ( asdl_expr_seq * ) _PyPegen_singleton_seq ( p , a );
15353 if (_res == NULL && PyErr_Occurred()) {
15354 p->error_indicator = 1;
15355 D(p->level--);
15356 return NULL;
15357 }
15358 goto done;
15359 }
15360 p->mark = _mark;
15361 D(fprintf(stderr, "%*c%s star_targets_tuple_seq[%d-%d]: %s failed!\n", p->level, ' ',
15362 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target ','"));
15363 }
15364 _res = NULL;
15365 done:
15366 D(p->level--);
15367 return _res;
15368}
15369
15370// star_target: '*' (!'*' star_target) | target_with_star_atom
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015371static expr_ty
15372star_target_rule(Parser *p)
15373{
15374 D(p->level++);
15375 if (p->error_indicator) {
15376 D(p->level--);
15377 return NULL;
15378 }
15379 expr_ty _res = NULL;
15380 if (_PyPegen_is_memoized(p, star_target_type, &_res)) {
15381 D(p->level--);
15382 return _res;
15383 }
15384 int _mark = p->mark;
15385 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
15386 p->error_indicator = 1;
15387 D(p->level--);
15388 return NULL;
15389 }
15390 int _start_lineno = p->tokens[_mark]->lineno;
15391 UNUSED(_start_lineno); // Only used by EXTRA macro
15392 int _start_col_offset = p->tokens[_mark]->col_offset;
15393 UNUSED(_start_col_offset); // Only used by EXTRA macro
15394 { // '*' (!'*' star_target)
15395 if (p->error_indicator) {
15396 D(p->level--);
15397 return NULL;
15398 }
15399 D(fprintf(stderr, "%*c> star_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (!'*' star_target)"));
15400 Token * _literal;
15401 void *a;
15402 if (
15403 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
15404 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080015405 (a = _tmp_137_rule(p)) // !'*' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015406 )
15407 {
15408 D(fprintf(stderr, "%*c+ star_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (!'*' star_target)"));
15409 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15410 if (_token == NULL) {
15411 D(p->level--);
15412 return NULL;
15413 }
15414 int _end_lineno = _token->end_lineno;
15415 UNUSED(_end_lineno); // Only used by EXTRA macro
15416 int _end_col_offset = _token->end_col_offset;
15417 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +030015418 _res = _Py_Starred ( CHECK ( expr_ty , _PyPegen_set_expr_context ( p , a , Store ) ) , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015419 if (_res == NULL && PyErr_Occurred()) {
15420 p->error_indicator = 1;
15421 D(p->level--);
15422 return NULL;
15423 }
15424 goto done;
15425 }
15426 p->mark = _mark;
15427 D(fprintf(stderr, "%*c%s star_target[%d-%d]: %s failed!\n", p->level, ' ',
15428 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' (!'*' star_target)"));
15429 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015430 { // target_with_star_atom
15431 if (p->error_indicator) {
15432 D(p->level--);
15433 return NULL;
15434 }
15435 D(fprintf(stderr, "%*c> star_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "target_with_star_atom"));
15436 expr_ty target_with_star_atom_var;
15437 if (
15438 (target_with_star_atom_var = target_with_star_atom_rule(p)) // target_with_star_atom
15439 )
15440 {
15441 D(fprintf(stderr, "%*c+ star_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "target_with_star_atom"));
15442 _res = target_with_star_atom_var;
15443 goto done;
15444 }
15445 p->mark = _mark;
15446 D(fprintf(stderr, "%*c%s star_target[%d-%d]: %s failed!\n", p->level, ' ',
15447 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "target_with_star_atom"));
15448 }
15449 _res = NULL;
15450 done:
15451 _PyPegen_insert_memo(p, _mark, star_target_type, _res);
15452 D(p->level--);
15453 return _res;
15454}
15455
15456// target_with_star_atom:
15457// | t_primary '.' NAME !t_lookahead
15458// | t_primary '[' slices ']' !t_lookahead
15459// | star_atom
15460static expr_ty
15461target_with_star_atom_rule(Parser *p)
15462{
15463 D(p->level++);
15464 if (p->error_indicator) {
15465 D(p->level--);
15466 return NULL;
15467 }
15468 expr_ty _res = NULL;
15469 if (_PyPegen_is_memoized(p, target_with_star_atom_type, &_res)) {
15470 D(p->level--);
15471 return _res;
15472 }
15473 int _mark = p->mark;
15474 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
15475 p->error_indicator = 1;
15476 D(p->level--);
15477 return NULL;
15478 }
15479 int _start_lineno = p->tokens[_mark]->lineno;
15480 UNUSED(_start_lineno); // Only used by EXTRA macro
15481 int _start_col_offset = p->tokens[_mark]->col_offset;
15482 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015483 { // t_primary '.' NAME !t_lookahead
15484 if (p->error_indicator) {
15485 D(p->level--);
15486 return NULL;
15487 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015488 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 +010015489 Token * _literal;
15490 expr_ty a;
15491 expr_ty b;
15492 if (
15493 (a = t_primary_rule(p)) // t_primary
15494 &&
15495 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
15496 &&
15497 (b = _PyPegen_name_token(p)) // NAME
15498 &&
15499 _PyPegen_lookahead(0, t_lookahead_rule, p)
15500 )
15501 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015502 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 +010015503 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15504 if (_token == NULL) {
15505 D(p->level--);
15506 return NULL;
15507 }
15508 int _end_lineno = _token->end_lineno;
15509 UNUSED(_end_lineno); // Only used by EXTRA macro
15510 int _end_col_offset = _token->end_col_offset;
15511 UNUSED(_end_col_offset); // Only used by EXTRA macro
15512 _res = _Py_Attribute ( a , b -> v . Name . id , Store , EXTRA );
15513 if (_res == NULL && PyErr_Occurred()) {
15514 p->error_indicator = 1;
15515 D(p->level--);
15516 return NULL;
15517 }
15518 goto done;
15519 }
15520 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015521 D(fprintf(stderr, "%*c%s target_with_star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015522 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
15523 }
15524 { // t_primary '[' slices ']' !t_lookahead
15525 if (p->error_indicator) {
15526 D(p->level--);
15527 return NULL;
15528 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015529 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 +010015530 Token * _literal;
15531 Token * _literal_1;
15532 expr_ty a;
15533 expr_ty b;
15534 if (
15535 (a = t_primary_rule(p)) // t_primary
15536 &&
15537 (_literal = _PyPegen_expect_token(p, 9)) // token='['
15538 &&
15539 (b = slices_rule(p)) // slices
15540 &&
15541 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
15542 &&
15543 _PyPegen_lookahead(0, t_lookahead_rule, p)
15544 )
15545 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015546 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 +010015547 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15548 if (_token == NULL) {
15549 D(p->level--);
15550 return NULL;
15551 }
15552 int _end_lineno = _token->end_lineno;
15553 UNUSED(_end_lineno); // Only used by EXTRA macro
15554 int _end_col_offset = _token->end_col_offset;
15555 UNUSED(_end_col_offset); // Only used by EXTRA macro
15556 _res = _Py_Subscript ( a , b , Store , EXTRA );
15557 if (_res == NULL && PyErr_Occurred()) {
15558 p->error_indicator = 1;
15559 D(p->level--);
15560 return NULL;
15561 }
15562 goto done;
15563 }
15564 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015565 D(fprintf(stderr, "%*c%s target_with_star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015566 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
15567 }
15568 { // star_atom
15569 if (p->error_indicator) {
15570 D(p->level--);
15571 return NULL;
15572 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015573 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 +010015574 expr_ty star_atom_var;
15575 if (
15576 (star_atom_var = star_atom_rule(p)) // star_atom
15577 )
15578 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015579 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 +010015580 _res = star_atom_var;
15581 goto done;
15582 }
15583 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015584 D(fprintf(stderr, "%*c%s target_with_star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015585 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_atom"));
15586 }
15587 _res = NULL;
15588 done:
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015589 _PyPegen_insert_memo(p, _mark, target_with_star_atom_type, _res);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015590 D(p->level--);
15591 return _res;
15592}
15593
15594// star_atom:
15595// | NAME
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015596// | '(' target_with_star_atom ')'
15597// | '(' star_targets_tuple_seq? ')'
15598// | '[' star_targets_list_seq? ']'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015599static expr_ty
15600star_atom_rule(Parser *p)
15601{
15602 D(p->level++);
15603 if (p->error_indicator) {
15604 D(p->level--);
15605 return NULL;
15606 }
15607 expr_ty _res = NULL;
15608 int _mark = p->mark;
15609 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
15610 p->error_indicator = 1;
15611 D(p->level--);
15612 return NULL;
15613 }
15614 int _start_lineno = p->tokens[_mark]->lineno;
15615 UNUSED(_start_lineno); // Only used by EXTRA macro
15616 int _start_col_offset = p->tokens[_mark]->col_offset;
15617 UNUSED(_start_col_offset); // Only used by EXTRA macro
15618 { // NAME
15619 if (p->error_indicator) {
15620 D(p->level--);
15621 return NULL;
15622 }
15623 D(fprintf(stderr, "%*c> star_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
15624 expr_ty a;
15625 if (
15626 (a = _PyPegen_name_token(p)) // NAME
15627 )
15628 {
15629 D(fprintf(stderr, "%*c+ star_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
15630 _res = _PyPegen_set_expr_context ( p , a , Store );
15631 if (_res == NULL && PyErr_Occurred()) {
15632 p->error_indicator = 1;
15633 D(p->level--);
15634 return NULL;
15635 }
15636 goto done;
15637 }
15638 p->mark = _mark;
15639 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
15640 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
15641 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015642 { // '(' target_with_star_atom ')'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015643 if (p->error_indicator) {
15644 D(p->level--);
15645 return NULL;
15646 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015647 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 +010015648 Token * _literal;
15649 Token * _literal_1;
15650 expr_ty a;
15651 if (
15652 (_literal = _PyPegen_expect_token(p, 7)) // token='('
15653 &&
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015654 (a = target_with_star_atom_rule(p)) // target_with_star_atom
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015655 &&
15656 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
15657 )
15658 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015659 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 +010015660 _res = _PyPegen_set_expr_context ( p , a , Store );
15661 if (_res == NULL && PyErr_Occurred()) {
15662 p->error_indicator = 1;
15663 D(p->level--);
15664 return NULL;
15665 }
15666 goto done;
15667 }
15668 p->mark = _mark;
15669 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015670 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' target_with_star_atom ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015671 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015672 { // '(' star_targets_tuple_seq? ')'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015673 if (p->error_indicator) {
15674 D(p->level--);
15675 return NULL;
15676 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015677 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 +010015678 Token * _literal;
15679 Token * _literal_1;
15680 void *a;
15681 if (
15682 (_literal = _PyPegen_expect_token(p, 7)) // token='('
15683 &&
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015684 (a = star_targets_tuple_seq_rule(p), 1) // star_targets_tuple_seq?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015685 &&
15686 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
15687 )
15688 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015689 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 +010015690 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15691 if (_token == NULL) {
15692 D(p->level--);
15693 return NULL;
15694 }
15695 int _end_lineno = _token->end_lineno;
15696 UNUSED(_end_lineno); // Only used by EXTRA macro
15697 int _end_col_offset = _token->end_col_offset;
15698 UNUSED(_end_col_offset); // Only used by EXTRA macro
15699 _res = _Py_Tuple ( a , Store , EXTRA );
15700 if (_res == NULL && PyErr_Occurred()) {
15701 p->error_indicator = 1;
15702 D(p->level--);
15703 return NULL;
15704 }
15705 goto done;
15706 }
15707 p->mark = _mark;
15708 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015709 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' star_targets_tuple_seq? ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015710 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015711 { // '[' star_targets_list_seq? ']'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015712 if (p->error_indicator) {
15713 D(p->level--);
15714 return NULL;
15715 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015716 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 +010015717 Token * _literal;
15718 Token * _literal_1;
15719 void *a;
15720 if (
15721 (_literal = _PyPegen_expect_token(p, 9)) // token='['
15722 &&
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015723 (a = star_targets_list_seq_rule(p), 1) // star_targets_list_seq?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015724 &&
15725 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
15726 )
15727 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015728 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 +010015729 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15730 if (_token == NULL) {
15731 D(p->level--);
15732 return NULL;
15733 }
15734 int _end_lineno = _token->end_lineno;
15735 UNUSED(_end_lineno); // Only used by EXTRA macro
15736 int _end_col_offset = _token->end_col_offset;
15737 UNUSED(_end_col_offset); // Only used by EXTRA macro
15738 _res = _Py_List ( a , Store , EXTRA );
15739 if (_res == NULL && PyErr_Occurred()) {
15740 p->error_indicator = 1;
15741 D(p->level--);
15742 return NULL;
15743 }
15744 goto done;
15745 }
15746 p->mark = _mark;
15747 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015748 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' star_targets_list_seq? ']'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015749 }
15750 _res = NULL;
15751 done:
15752 D(p->level--);
15753 return _res;
15754}
15755
15756// single_target: single_subscript_attribute_target | NAME | '(' single_target ')'
15757static expr_ty
15758single_target_rule(Parser *p)
15759{
15760 D(p->level++);
15761 if (p->error_indicator) {
15762 D(p->level--);
15763 return NULL;
15764 }
15765 expr_ty _res = NULL;
15766 int _mark = p->mark;
15767 { // single_subscript_attribute_target
15768 if (p->error_indicator) {
15769 D(p->level--);
15770 return NULL;
15771 }
15772 D(fprintf(stderr, "%*c> single_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "single_subscript_attribute_target"));
15773 expr_ty single_subscript_attribute_target_var;
15774 if (
15775 (single_subscript_attribute_target_var = single_subscript_attribute_target_rule(p)) // single_subscript_attribute_target
15776 )
15777 {
15778 D(fprintf(stderr, "%*c+ single_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "single_subscript_attribute_target"));
15779 _res = single_subscript_attribute_target_var;
15780 goto done;
15781 }
15782 p->mark = _mark;
15783 D(fprintf(stderr, "%*c%s single_target[%d-%d]: %s failed!\n", p->level, ' ',
15784 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "single_subscript_attribute_target"));
15785 }
15786 { // NAME
15787 if (p->error_indicator) {
15788 D(p->level--);
15789 return NULL;
15790 }
15791 D(fprintf(stderr, "%*c> single_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
15792 expr_ty a;
15793 if (
15794 (a = _PyPegen_name_token(p)) // NAME
15795 )
15796 {
15797 D(fprintf(stderr, "%*c+ single_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
15798 _res = _PyPegen_set_expr_context ( p , a , Store );
15799 if (_res == NULL && PyErr_Occurred()) {
15800 p->error_indicator = 1;
15801 D(p->level--);
15802 return NULL;
15803 }
15804 goto done;
15805 }
15806 p->mark = _mark;
15807 D(fprintf(stderr, "%*c%s single_target[%d-%d]: %s failed!\n", p->level, ' ',
15808 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
15809 }
15810 { // '(' single_target ')'
15811 if (p->error_indicator) {
15812 D(p->level--);
15813 return NULL;
15814 }
15815 D(fprintf(stderr, "%*c> single_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
15816 Token * _literal;
15817 Token * _literal_1;
15818 expr_ty a;
15819 if (
15820 (_literal = _PyPegen_expect_token(p, 7)) // token='('
15821 &&
15822 (a = single_target_rule(p)) // single_target
15823 &&
15824 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
15825 )
15826 {
15827 D(fprintf(stderr, "%*c+ single_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
15828 _res = a;
15829 if (_res == NULL && PyErr_Occurred()) {
15830 p->error_indicator = 1;
15831 D(p->level--);
15832 return NULL;
15833 }
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_target ')'"));
15839 }
15840 _res = NULL;
15841 done:
15842 D(p->level--);
15843 return _res;
15844}
15845
15846// single_subscript_attribute_target:
15847// | t_primary '.' NAME !t_lookahead
15848// | t_primary '[' slices ']' !t_lookahead
15849static expr_ty
15850single_subscript_attribute_target_rule(Parser *p)
15851{
15852 D(p->level++);
15853 if (p->error_indicator) {
15854 D(p->level--);
15855 return NULL;
15856 }
15857 expr_ty _res = NULL;
15858 int _mark = p->mark;
15859 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
15860 p->error_indicator = 1;
15861 D(p->level--);
15862 return NULL;
15863 }
15864 int _start_lineno = p->tokens[_mark]->lineno;
15865 UNUSED(_start_lineno); // Only used by EXTRA macro
15866 int _start_col_offset = p->tokens[_mark]->col_offset;
15867 UNUSED(_start_col_offset); // Only used by EXTRA macro
15868 { // t_primary '.' NAME !t_lookahead
15869 if (p->error_indicator) {
15870 D(p->level--);
15871 return NULL;
15872 }
15873 D(fprintf(stderr, "%*c> single_subscript_attribute_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
15874 Token * _literal;
15875 expr_ty a;
15876 expr_ty b;
15877 if (
15878 (a = t_primary_rule(p)) // t_primary
15879 &&
15880 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
15881 &&
15882 (b = _PyPegen_name_token(p)) // NAME
15883 &&
15884 _PyPegen_lookahead(0, t_lookahead_rule, p)
15885 )
15886 {
15887 D(fprintf(stderr, "%*c+ single_subscript_attribute_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
15888 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15889 if (_token == NULL) {
15890 D(p->level--);
15891 return NULL;
15892 }
15893 int _end_lineno = _token->end_lineno;
15894 UNUSED(_end_lineno); // Only used by EXTRA macro
15895 int _end_col_offset = _token->end_col_offset;
15896 UNUSED(_end_col_offset); // Only used by EXTRA macro
15897 _res = _Py_Attribute ( a , b -> v . Name . id , Store , EXTRA );
15898 if (_res == NULL && PyErr_Occurred()) {
15899 p->error_indicator = 1;
15900 D(p->level--);
15901 return NULL;
15902 }
15903 goto done;
15904 }
15905 p->mark = _mark;
15906 D(fprintf(stderr, "%*c%s single_subscript_attribute_target[%d-%d]: %s failed!\n", p->level, ' ',
15907 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
15908 }
15909 { // t_primary '[' slices ']' !t_lookahead
15910 if (p->error_indicator) {
15911 D(p->level--);
15912 return NULL;
15913 }
15914 D(fprintf(stderr, "%*c> single_subscript_attribute_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
15915 Token * _literal;
15916 Token * _literal_1;
15917 expr_ty a;
15918 expr_ty b;
15919 if (
15920 (a = t_primary_rule(p)) // t_primary
15921 &&
15922 (_literal = _PyPegen_expect_token(p, 9)) // token='['
15923 &&
15924 (b = slices_rule(p)) // slices
15925 &&
15926 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
15927 &&
15928 _PyPegen_lookahead(0, t_lookahead_rule, p)
15929 )
15930 {
15931 D(fprintf(stderr, "%*c+ single_subscript_attribute_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
15932 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15933 if (_token == NULL) {
15934 D(p->level--);
15935 return NULL;
15936 }
15937 int _end_lineno = _token->end_lineno;
15938 UNUSED(_end_lineno); // Only used by EXTRA macro
15939 int _end_col_offset = _token->end_col_offset;
15940 UNUSED(_end_col_offset); // Only used by EXTRA macro
15941 _res = _Py_Subscript ( a , b , Store , EXTRA );
15942 if (_res == NULL && PyErr_Occurred()) {
15943 p->error_indicator = 1;
15944 D(p->level--);
15945 return NULL;
15946 }
15947 goto done;
15948 }
15949 p->mark = _mark;
15950 D(fprintf(stderr, "%*c%s single_subscript_attribute_target[%d-%d]: %s failed!\n", p->level, ' ',
15951 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
15952 }
15953 _res = NULL;
15954 done:
15955 D(p->level--);
15956 return _res;
15957}
15958
15959// del_targets: ','.del_target+ ','?
Pablo Galindoa5634c42020-09-16 19:42:00 +010015960static asdl_expr_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015961del_targets_rule(Parser *p)
15962{
15963 D(p->level++);
15964 if (p->error_indicator) {
15965 D(p->level--);
15966 return NULL;
15967 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010015968 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015969 int _mark = p->mark;
15970 { // ','.del_target+ ','?
15971 if (p->error_indicator) {
15972 D(p->level--);
15973 return NULL;
15974 }
15975 D(fprintf(stderr, "%*c> del_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.del_target+ ','?"));
15976 void *_opt_var;
15977 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +010015978 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015979 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080015980 (a = (asdl_expr_seq*)_gather_138_rule(p)) // ','.del_target+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015981 &&
15982 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
15983 )
15984 {
15985 D(fprintf(stderr, "%*c+ del_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.del_target+ ','?"));
15986 _res = a;
15987 if (_res == NULL && PyErr_Occurred()) {
15988 p->error_indicator = 1;
15989 D(p->level--);
15990 return NULL;
15991 }
15992 goto done;
15993 }
15994 p->mark = _mark;
15995 D(fprintf(stderr, "%*c%s del_targets[%d-%d]: %s failed!\n", p->level, ' ',
15996 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.del_target+ ','?"));
15997 }
15998 _res = NULL;
15999 done:
16000 D(p->level--);
16001 return _res;
16002}
16003
16004// del_target:
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016005// | t_primary '.' NAME !t_lookahead
16006// | t_primary '[' slices ']' !t_lookahead
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016007// | del_t_atom
16008static expr_ty
16009del_target_rule(Parser *p)
16010{
16011 D(p->level++);
16012 if (p->error_indicator) {
16013 D(p->level--);
16014 return NULL;
16015 }
16016 expr_ty _res = NULL;
16017 if (_PyPegen_is_memoized(p, del_target_type, &_res)) {
16018 D(p->level--);
16019 return _res;
16020 }
16021 int _mark = p->mark;
16022 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
16023 p->error_indicator = 1;
16024 D(p->level--);
16025 return NULL;
16026 }
16027 int _start_lineno = p->tokens[_mark]->lineno;
16028 UNUSED(_start_lineno); // Only used by EXTRA macro
16029 int _start_col_offset = p->tokens[_mark]->col_offset;
16030 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016031 { // t_primary '.' NAME !t_lookahead
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016032 if (p->error_indicator) {
16033 D(p->level--);
16034 return NULL;
16035 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016036 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 +010016037 Token * _literal;
16038 expr_ty a;
16039 expr_ty b;
16040 if (
16041 (a = t_primary_rule(p)) // t_primary
16042 &&
16043 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
16044 &&
16045 (b = _PyPegen_name_token(p)) // NAME
16046 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016047 _PyPegen_lookahead(0, t_lookahead_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016048 )
16049 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016050 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 +010016051 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16052 if (_token == NULL) {
16053 D(p->level--);
16054 return NULL;
16055 }
16056 int _end_lineno = _token->end_lineno;
16057 UNUSED(_end_lineno); // Only used by EXTRA macro
16058 int _end_col_offset = _token->end_col_offset;
16059 UNUSED(_end_col_offset); // Only used by EXTRA macro
16060 _res = _Py_Attribute ( a , b -> v . Name . id , Del , EXTRA );
16061 if (_res == NULL && PyErr_Occurred()) {
16062 p->error_indicator = 1;
16063 D(p->level--);
16064 return NULL;
16065 }
16066 goto done;
16067 }
16068 p->mark = _mark;
16069 D(fprintf(stderr, "%*c%s del_target[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016070 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016071 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016072 { // t_primary '[' slices ']' !t_lookahead
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016073 if (p->error_indicator) {
16074 D(p->level--);
16075 return NULL;
16076 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016077 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 +010016078 Token * _literal;
16079 Token * _literal_1;
16080 expr_ty a;
16081 expr_ty b;
16082 if (
16083 (a = t_primary_rule(p)) // t_primary
16084 &&
16085 (_literal = _PyPegen_expect_token(p, 9)) // token='['
16086 &&
16087 (b = slices_rule(p)) // slices
16088 &&
16089 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
16090 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016091 _PyPegen_lookahead(0, t_lookahead_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016092 )
16093 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016094 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 +010016095 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16096 if (_token == NULL) {
16097 D(p->level--);
16098 return NULL;
16099 }
16100 int _end_lineno = _token->end_lineno;
16101 UNUSED(_end_lineno); // Only used by EXTRA macro
16102 int _end_col_offset = _token->end_col_offset;
16103 UNUSED(_end_col_offset); // Only used by EXTRA macro
16104 _res = _Py_Subscript ( a , b , Del , EXTRA );
16105 if (_res == NULL && PyErr_Occurred()) {
16106 p->error_indicator = 1;
16107 D(p->level--);
16108 return NULL;
16109 }
16110 goto done;
16111 }
16112 p->mark = _mark;
16113 D(fprintf(stderr, "%*c%s del_target[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016114 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016115 }
16116 { // del_t_atom
16117 if (p->error_indicator) {
16118 D(p->level--);
16119 return NULL;
16120 }
16121 D(fprintf(stderr, "%*c> del_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "del_t_atom"));
16122 expr_ty del_t_atom_var;
16123 if (
16124 (del_t_atom_var = del_t_atom_rule(p)) // del_t_atom
16125 )
16126 {
16127 D(fprintf(stderr, "%*c+ del_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "del_t_atom"));
16128 _res = del_t_atom_var;
16129 goto done;
16130 }
16131 p->mark = _mark;
16132 D(fprintf(stderr, "%*c%s del_target[%d-%d]: %s failed!\n", p->level, ' ',
16133 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "del_t_atom"));
16134 }
16135 _res = NULL;
16136 done:
16137 _PyPegen_insert_memo(p, _mark, del_target_type, _res);
16138 D(p->level--);
16139 return _res;
16140}
16141
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016142// del_t_atom: NAME | '(' del_target ')' | '(' del_targets? ')' | '[' del_targets? ']'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016143static expr_ty
16144del_t_atom_rule(Parser *p)
16145{
16146 D(p->level++);
16147 if (p->error_indicator) {
16148 D(p->level--);
16149 return NULL;
16150 }
16151 expr_ty _res = NULL;
16152 int _mark = p->mark;
16153 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
16154 p->error_indicator = 1;
16155 D(p->level--);
16156 return NULL;
16157 }
16158 int _start_lineno = p->tokens[_mark]->lineno;
16159 UNUSED(_start_lineno); // Only used by EXTRA macro
16160 int _start_col_offset = p->tokens[_mark]->col_offset;
16161 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016162 { // NAME
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016163 if (p->error_indicator) {
16164 D(p->level--);
16165 return NULL;
16166 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016167 D(fprintf(stderr, "%*c> del_t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016168 expr_ty a;
16169 if (
16170 (a = _PyPegen_name_token(p)) // NAME
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016171 )
16172 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016173 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 +010016174 _res = _PyPegen_set_expr_context ( p , a , Del );
16175 if (_res == NULL && PyErr_Occurred()) {
16176 p->error_indicator = 1;
16177 D(p->level--);
16178 return NULL;
16179 }
16180 goto done;
16181 }
16182 p->mark = _mark;
16183 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016184 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016185 }
16186 { // '(' del_target ')'
16187 if (p->error_indicator) {
16188 D(p->level--);
16189 return NULL;
16190 }
16191 D(fprintf(stderr, "%*c> del_t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' del_target ')'"));
16192 Token * _literal;
16193 Token * _literal_1;
16194 expr_ty a;
16195 if (
16196 (_literal = _PyPegen_expect_token(p, 7)) // token='('
16197 &&
16198 (a = del_target_rule(p)) // del_target
16199 &&
16200 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
16201 )
16202 {
16203 D(fprintf(stderr, "%*c+ del_t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' del_target ')'"));
16204 _res = _PyPegen_set_expr_context ( p , a , Del );
16205 if (_res == NULL && PyErr_Occurred()) {
16206 p->error_indicator = 1;
16207 D(p->level--);
16208 return NULL;
16209 }
16210 goto done;
16211 }
16212 p->mark = _mark;
16213 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
16214 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' del_target ')'"));
16215 }
16216 { // '(' del_targets? ')'
16217 if (p->error_indicator) {
16218 D(p->level--);
16219 return NULL;
16220 }
16221 D(fprintf(stderr, "%*c> del_t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' del_targets? ')'"));
16222 Token * _literal;
16223 Token * _literal_1;
16224 void *a;
16225 if (
16226 (_literal = _PyPegen_expect_token(p, 7)) // token='('
16227 &&
16228 (a = del_targets_rule(p), 1) // del_targets?
16229 &&
16230 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
16231 )
16232 {
16233 D(fprintf(stderr, "%*c+ del_t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' del_targets? ')'"));
16234 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16235 if (_token == NULL) {
16236 D(p->level--);
16237 return NULL;
16238 }
16239 int _end_lineno = _token->end_lineno;
16240 UNUSED(_end_lineno); // Only used by EXTRA macro
16241 int _end_col_offset = _token->end_col_offset;
16242 UNUSED(_end_col_offset); // Only used by EXTRA macro
16243 _res = _Py_Tuple ( a , Del , EXTRA );
16244 if (_res == NULL && PyErr_Occurred()) {
16245 p->error_indicator = 1;
16246 D(p->level--);
16247 return NULL;
16248 }
16249 goto done;
16250 }
16251 p->mark = _mark;
16252 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
16253 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' del_targets? ')'"));
16254 }
16255 { // '[' del_targets? ']'
16256 if (p->error_indicator) {
16257 D(p->level--);
16258 return NULL;
16259 }
16260 D(fprintf(stderr, "%*c> del_t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' del_targets? ']'"));
16261 Token * _literal;
16262 Token * _literal_1;
16263 void *a;
16264 if (
16265 (_literal = _PyPegen_expect_token(p, 9)) // token='['
16266 &&
16267 (a = del_targets_rule(p), 1) // del_targets?
16268 &&
16269 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
16270 )
16271 {
16272 D(fprintf(stderr, "%*c+ del_t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' del_targets? ']'"));
16273 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16274 if (_token == NULL) {
16275 D(p->level--);
16276 return NULL;
16277 }
16278 int _end_lineno = _token->end_lineno;
16279 UNUSED(_end_lineno); // Only used by EXTRA macro
16280 int _end_col_offset = _token->end_col_offset;
16281 UNUSED(_end_col_offset); // Only used by EXTRA macro
16282 _res = _Py_List ( a , Del , EXTRA );
16283 if (_res == NULL && PyErr_Occurred()) {
16284 p->error_indicator = 1;
16285 D(p->level--);
16286 return NULL;
16287 }
16288 goto done;
16289 }
16290 p->mark = _mark;
16291 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
16292 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' del_targets? ']'"));
16293 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016294 _res = NULL;
16295 done:
16296 D(p->level--);
16297 return _res;
16298}
16299
16300// targets: ','.target+ ','?
Pablo Galindoa5634c42020-09-16 19:42:00 +010016301static asdl_expr_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016302targets_rule(Parser *p)
16303{
16304 D(p->level++);
16305 if (p->error_indicator) {
16306 D(p->level--);
16307 return NULL;
16308 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010016309 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016310 int _mark = p->mark;
16311 { // ','.target+ ','?
16312 if (p->error_indicator) {
16313 D(p->level--);
16314 return NULL;
16315 }
16316 D(fprintf(stderr, "%*c> targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.target+ ','?"));
16317 void *_opt_var;
16318 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +010016319 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016320 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080016321 (a = (asdl_expr_seq*)_gather_140_rule(p)) // ','.target+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016322 &&
16323 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
16324 )
16325 {
16326 D(fprintf(stderr, "%*c+ targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.target+ ','?"));
16327 _res = a;
16328 if (_res == NULL && PyErr_Occurred()) {
16329 p->error_indicator = 1;
16330 D(p->level--);
16331 return NULL;
16332 }
16333 goto done;
16334 }
16335 p->mark = _mark;
16336 D(fprintf(stderr, "%*c%s targets[%d-%d]: %s failed!\n", p->level, ' ',
16337 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.target+ ','?"));
16338 }
16339 _res = NULL;
16340 done:
16341 D(p->level--);
16342 return _res;
16343}
16344
16345// target:
16346// | t_primary '.' NAME !t_lookahead
16347// | t_primary '[' slices ']' !t_lookahead
16348// | t_atom
16349static expr_ty
16350target_rule(Parser *p)
16351{
16352 D(p->level++);
16353 if (p->error_indicator) {
16354 D(p->level--);
16355 return NULL;
16356 }
16357 expr_ty _res = NULL;
16358 if (_PyPegen_is_memoized(p, target_type, &_res)) {
16359 D(p->level--);
16360 return _res;
16361 }
16362 int _mark = p->mark;
16363 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
16364 p->error_indicator = 1;
16365 D(p->level--);
16366 return NULL;
16367 }
16368 int _start_lineno = p->tokens[_mark]->lineno;
16369 UNUSED(_start_lineno); // Only used by EXTRA macro
16370 int _start_col_offset = p->tokens[_mark]->col_offset;
16371 UNUSED(_start_col_offset); // Only used by EXTRA macro
16372 { // t_primary '.' NAME !t_lookahead
16373 if (p->error_indicator) {
16374 D(p->level--);
16375 return NULL;
16376 }
16377 D(fprintf(stderr, "%*c> target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
16378 Token * _literal;
16379 expr_ty a;
16380 expr_ty b;
16381 if (
16382 (a = t_primary_rule(p)) // t_primary
16383 &&
16384 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
16385 &&
16386 (b = _PyPegen_name_token(p)) // NAME
16387 &&
16388 _PyPegen_lookahead(0, t_lookahead_rule, p)
16389 )
16390 {
16391 D(fprintf(stderr, "%*c+ target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
16392 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16393 if (_token == NULL) {
16394 D(p->level--);
16395 return NULL;
16396 }
16397 int _end_lineno = _token->end_lineno;
16398 UNUSED(_end_lineno); // Only used by EXTRA macro
16399 int _end_col_offset = _token->end_col_offset;
16400 UNUSED(_end_col_offset); // Only used by EXTRA macro
16401 _res = _Py_Attribute ( a , b -> v . Name . id , Store , EXTRA );
16402 if (_res == NULL && PyErr_Occurred()) {
16403 p->error_indicator = 1;
16404 D(p->level--);
16405 return NULL;
16406 }
16407 goto done;
16408 }
16409 p->mark = _mark;
16410 D(fprintf(stderr, "%*c%s target[%d-%d]: %s failed!\n", p->level, ' ',
16411 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
16412 }
16413 { // t_primary '[' slices ']' !t_lookahead
16414 if (p->error_indicator) {
16415 D(p->level--);
16416 return NULL;
16417 }
16418 D(fprintf(stderr, "%*c> target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
16419 Token * _literal;
16420 Token * _literal_1;
16421 expr_ty a;
16422 expr_ty b;
16423 if (
16424 (a = t_primary_rule(p)) // t_primary
16425 &&
16426 (_literal = _PyPegen_expect_token(p, 9)) // token='['
16427 &&
16428 (b = slices_rule(p)) // slices
16429 &&
16430 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
16431 &&
16432 _PyPegen_lookahead(0, t_lookahead_rule, p)
16433 )
16434 {
16435 D(fprintf(stderr, "%*c+ target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
16436 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16437 if (_token == NULL) {
16438 D(p->level--);
16439 return NULL;
16440 }
16441 int _end_lineno = _token->end_lineno;
16442 UNUSED(_end_lineno); // Only used by EXTRA macro
16443 int _end_col_offset = _token->end_col_offset;
16444 UNUSED(_end_col_offset); // Only used by EXTRA macro
16445 _res = _Py_Subscript ( a , b , Store , EXTRA );
16446 if (_res == NULL && PyErr_Occurred()) {
16447 p->error_indicator = 1;
16448 D(p->level--);
16449 return NULL;
16450 }
16451 goto done;
16452 }
16453 p->mark = _mark;
16454 D(fprintf(stderr, "%*c%s target[%d-%d]: %s failed!\n", p->level, ' ',
16455 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
16456 }
16457 { // t_atom
16458 if (p->error_indicator) {
16459 D(p->level--);
16460 return NULL;
16461 }
16462 D(fprintf(stderr, "%*c> target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_atom"));
16463 expr_ty t_atom_var;
16464 if (
16465 (t_atom_var = t_atom_rule(p)) // t_atom
16466 )
16467 {
16468 D(fprintf(stderr, "%*c+ target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_atom"));
16469 _res = t_atom_var;
16470 goto done;
16471 }
16472 p->mark = _mark;
16473 D(fprintf(stderr, "%*c%s target[%d-%d]: %s failed!\n", p->level, ' ',
16474 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_atom"));
16475 }
16476 _res = NULL;
16477 done:
16478 _PyPegen_insert_memo(p, _mark, target_type, _res);
16479 D(p->level--);
16480 return _res;
16481}
16482
16483// Left-recursive
16484// t_primary:
16485// | t_primary '.' NAME &t_lookahead
16486// | t_primary '[' slices ']' &t_lookahead
16487// | t_primary genexp &t_lookahead
16488// | t_primary '(' arguments? ')' &t_lookahead
16489// | atom &t_lookahead
16490static expr_ty t_primary_raw(Parser *);
16491static expr_ty
16492t_primary_rule(Parser *p)
16493{
16494 D(p->level++);
16495 expr_ty _res = NULL;
16496 if (_PyPegen_is_memoized(p, t_primary_type, &_res)) {
16497 D(p->level--);
16498 return _res;
16499 }
16500 int _mark = p->mark;
16501 int _resmark = p->mark;
16502 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080016503 int tmpvar_9 = _PyPegen_update_memo(p, _mark, t_primary_type, _res);
16504 if (tmpvar_9) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016505 D(p->level--);
16506 return _res;
16507 }
16508 p->mark = _mark;
16509 void *_raw = t_primary_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020016510 if (p->error_indicator)
16511 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016512 if (_raw == NULL || p->mark <= _resmark)
16513 break;
16514 _resmark = p->mark;
16515 _res = _raw;
16516 }
16517 p->mark = _resmark;
16518 D(p->level--);
16519 return _res;
16520}
16521static expr_ty
16522t_primary_raw(Parser *p)
16523{
16524 D(p->level++);
16525 if (p->error_indicator) {
16526 D(p->level--);
16527 return NULL;
16528 }
16529 expr_ty _res = NULL;
16530 int _mark = p->mark;
16531 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
16532 p->error_indicator = 1;
16533 D(p->level--);
16534 return NULL;
16535 }
16536 int _start_lineno = p->tokens[_mark]->lineno;
16537 UNUSED(_start_lineno); // Only used by EXTRA macro
16538 int _start_col_offset = p->tokens[_mark]->col_offset;
16539 UNUSED(_start_col_offset); // Only used by EXTRA macro
16540 { // t_primary '.' NAME &t_lookahead
16541 if (p->error_indicator) {
16542 D(p->level--);
16543 return NULL;
16544 }
16545 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME &t_lookahead"));
16546 Token * _literal;
16547 expr_ty a;
16548 expr_ty b;
16549 if (
16550 (a = t_primary_rule(p)) // t_primary
16551 &&
16552 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
16553 &&
16554 (b = _PyPegen_name_token(p)) // NAME
16555 &&
16556 _PyPegen_lookahead(1, t_lookahead_rule, p)
16557 )
16558 {
16559 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME &t_lookahead"));
16560 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16561 if (_token == NULL) {
16562 D(p->level--);
16563 return NULL;
16564 }
16565 int _end_lineno = _token->end_lineno;
16566 UNUSED(_end_lineno); // Only used by EXTRA macro
16567 int _end_col_offset = _token->end_col_offset;
16568 UNUSED(_end_col_offset); // Only used by EXTRA macro
16569 _res = _Py_Attribute ( a , b -> v . Name . id , Load , EXTRA );
16570 if (_res == NULL && PyErr_Occurred()) {
16571 p->error_indicator = 1;
16572 D(p->level--);
16573 return NULL;
16574 }
16575 goto done;
16576 }
16577 p->mark = _mark;
16578 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
16579 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME &t_lookahead"));
16580 }
16581 { // t_primary '[' slices ']' &t_lookahead
16582 if (p->error_indicator) {
16583 D(p->level--);
16584 return NULL;
16585 }
16586 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' &t_lookahead"));
16587 Token * _literal;
16588 Token * _literal_1;
16589 expr_ty a;
16590 expr_ty b;
16591 if (
16592 (a = t_primary_rule(p)) // t_primary
16593 &&
16594 (_literal = _PyPegen_expect_token(p, 9)) // token='['
16595 &&
16596 (b = slices_rule(p)) // slices
16597 &&
16598 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
16599 &&
16600 _PyPegen_lookahead(1, t_lookahead_rule, p)
16601 )
16602 {
16603 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' &t_lookahead"));
16604 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16605 if (_token == NULL) {
16606 D(p->level--);
16607 return NULL;
16608 }
16609 int _end_lineno = _token->end_lineno;
16610 UNUSED(_end_lineno); // Only used by EXTRA macro
16611 int _end_col_offset = _token->end_col_offset;
16612 UNUSED(_end_col_offset); // Only used by EXTRA macro
16613 _res = _Py_Subscript ( a , b , Load , EXTRA );
16614 if (_res == NULL && PyErr_Occurred()) {
16615 p->error_indicator = 1;
16616 D(p->level--);
16617 return NULL;
16618 }
16619 goto done;
16620 }
16621 p->mark = _mark;
16622 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
16623 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' &t_lookahead"));
16624 }
16625 { // t_primary genexp &t_lookahead
16626 if (p->error_indicator) {
16627 D(p->level--);
16628 return NULL;
16629 }
16630 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary genexp &t_lookahead"));
16631 expr_ty a;
16632 expr_ty b;
16633 if (
16634 (a = t_primary_rule(p)) // t_primary
16635 &&
16636 (b = genexp_rule(p)) // genexp
16637 &&
16638 _PyPegen_lookahead(1, t_lookahead_rule, p)
16639 )
16640 {
16641 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary genexp &t_lookahead"));
16642 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16643 if (_token == NULL) {
16644 D(p->level--);
16645 return NULL;
16646 }
16647 int _end_lineno = _token->end_lineno;
16648 UNUSED(_end_lineno); // Only used by EXTRA macro
16649 int _end_col_offset = _token->end_col_offset;
16650 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +030016651 _res = _Py_Call ( a , CHECK ( asdl_expr_seq * , ( asdl_expr_seq * ) _PyPegen_singleton_seq ( p , b ) ) , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016652 if (_res == NULL && PyErr_Occurred()) {
16653 p->error_indicator = 1;
16654 D(p->level--);
16655 return NULL;
16656 }
16657 goto done;
16658 }
16659 p->mark = _mark;
16660 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
16661 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary genexp &t_lookahead"));
16662 }
16663 { // t_primary '(' arguments? ')' &t_lookahead
16664 if (p->error_indicator) {
16665 D(p->level--);
16666 return NULL;
16667 }
16668 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '(' arguments? ')' &t_lookahead"));
16669 Token * _literal;
16670 Token * _literal_1;
16671 expr_ty a;
16672 void *b;
16673 if (
16674 (a = t_primary_rule(p)) // t_primary
16675 &&
16676 (_literal = _PyPegen_expect_token(p, 7)) // token='('
16677 &&
16678 (b = arguments_rule(p), 1) // arguments?
16679 &&
16680 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
16681 &&
16682 _PyPegen_lookahead(1, t_lookahead_rule, p)
16683 )
16684 {
16685 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '(' arguments? ')' &t_lookahead"));
16686 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16687 if (_token == NULL) {
16688 D(p->level--);
16689 return NULL;
16690 }
16691 int _end_lineno = _token->end_lineno;
16692 UNUSED(_end_lineno); // Only used by EXTRA macro
16693 int _end_col_offset = _token->end_col_offset;
16694 UNUSED(_end_col_offset); // Only used by EXTRA macro
16695 _res = _Py_Call ( a , ( b ) ? ( ( expr_ty ) b ) -> v . Call . args : NULL , ( b ) ? ( ( expr_ty ) b ) -> v . Call . keywords : NULL , EXTRA );
16696 if (_res == NULL && PyErr_Occurred()) {
16697 p->error_indicator = 1;
16698 D(p->level--);
16699 return NULL;
16700 }
16701 goto done;
16702 }
16703 p->mark = _mark;
16704 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
16705 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '(' arguments? ')' &t_lookahead"));
16706 }
16707 { // atom &t_lookahead
16708 if (p->error_indicator) {
16709 D(p->level--);
16710 return NULL;
16711 }
16712 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "atom &t_lookahead"));
16713 expr_ty a;
16714 if (
16715 (a = atom_rule(p)) // atom
16716 &&
16717 _PyPegen_lookahead(1, t_lookahead_rule, p)
16718 )
16719 {
16720 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "atom &t_lookahead"));
16721 _res = a;
16722 if (_res == NULL && PyErr_Occurred()) {
16723 p->error_indicator = 1;
16724 D(p->level--);
16725 return NULL;
16726 }
16727 goto done;
16728 }
16729 p->mark = _mark;
16730 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
16731 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "atom &t_lookahead"));
16732 }
16733 _res = NULL;
16734 done:
16735 D(p->level--);
16736 return _res;
16737}
16738
16739// t_lookahead: '(' | '[' | '.'
16740static void *
16741t_lookahead_rule(Parser *p)
16742{
16743 D(p->level++);
16744 if (p->error_indicator) {
16745 D(p->level--);
16746 return NULL;
16747 }
16748 void * _res = NULL;
16749 int _mark = p->mark;
16750 { // '('
16751 if (p->error_indicator) {
16752 D(p->level--);
16753 return NULL;
16754 }
16755 D(fprintf(stderr, "%*c> t_lookahead[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('"));
16756 Token * _literal;
16757 if (
16758 (_literal = _PyPegen_expect_token(p, 7)) // token='('
16759 )
16760 {
16761 D(fprintf(stderr, "%*c+ t_lookahead[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('"));
16762 _res = _literal;
16763 goto done;
16764 }
16765 p->mark = _mark;
16766 D(fprintf(stderr, "%*c%s t_lookahead[%d-%d]: %s failed!\n", p->level, ' ',
16767 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('"));
16768 }
16769 { // '['
16770 if (p->error_indicator) {
16771 D(p->level--);
16772 return NULL;
16773 }
16774 D(fprintf(stderr, "%*c> t_lookahead[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['"));
16775 Token * _literal;
16776 if (
16777 (_literal = _PyPegen_expect_token(p, 9)) // token='['
16778 )
16779 {
16780 D(fprintf(stderr, "%*c+ t_lookahead[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['"));
16781 _res = _literal;
16782 goto done;
16783 }
16784 p->mark = _mark;
16785 D(fprintf(stderr, "%*c%s t_lookahead[%d-%d]: %s failed!\n", p->level, ' ',
16786 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['"));
16787 }
16788 { // '.'
16789 if (p->error_indicator) {
16790 D(p->level--);
16791 return NULL;
16792 }
16793 D(fprintf(stderr, "%*c> t_lookahead[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
16794 Token * _literal;
16795 if (
16796 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
16797 )
16798 {
16799 D(fprintf(stderr, "%*c+ t_lookahead[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
16800 _res = _literal;
16801 goto done;
16802 }
16803 p->mark = _mark;
16804 D(fprintf(stderr, "%*c%s t_lookahead[%d-%d]: %s failed!\n", p->level, ' ',
16805 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
16806 }
16807 _res = NULL;
16808 done:
16809 D(p->level--);
16810 return _res;
16811}
16812
16813// t_atom: NAME | '(' target ')' | '(' targets? ')' | '[' targets? ']'
16814static expr_ty
16815t_atom_rule(Parser *p)
16816{
16817 D(p->level++);
16818 if (p->error_indicator) {
16819 D(p->level--);
16820 return NULL;
16821 }
16822 expr_ty _res = NULL;
16823 int _mark = p->mark;
16824 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
16825 p->error_indicator = 1;
16826 D(p->level--);
16827 return NULL;
16828 }
16829 int _start_lineno = p->tokens[_mark]->lineno;
16830 UNUSED(_start_lineno); // Only used by EXTRA macro
16831 int _start_col_offset = p->tokens[_mark]->col_offset;
16832 UNUSED(_start_col_offset); // Only used by EXTRA macro
16833 { // NAME
16834 if (p->error_indicator) {
16835 D(p->level--);
16836 return NULL;
16837 }
16838 D(fprintf(stderr, "%*c> t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
16839 expr_ty a;
16840 if (
16841 (a = _PyPegen_name_token(p)) // NAME
16842 )
16843 {
16844 D(fprintf(stderr, "%*c+ t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
16845 _res = _PyPegen_set_expr_context ( p , a , Store );
16846 if (_res == NULL && PyErr_Occurred()) {
16847 p->error_indicator = 1;
16848 D(p->level--);
16849 return NULL;
16850 }
16851 goto done;
16852 }
16853 p->mark = _mark;
16854 D(fprintf(stderr, "%*c%s t_atom[%d-%d]: %s failed!\n", p->level, ' ',
16855 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
16856 }
16857 { // '(' target ')'
16858 if (p->error_indicator) {
16859 D(p->level--);
16860 return NULL;
16861 }
16862 D(fprintf(stderr, "%*c> t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' target ')'"));
16863 Token * _literal;
16864 Token * _literal_1;
16865 expr_ty a;
16866 if (
16867 (_literal = _PyPegen_expect_token(p, 7)) // token='('
16868 &&
16869 (a = target_rule(p)) // target
16870 &&
16871 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
16872 )
16873 {
16874 D(fprintf(stderr, "%*c+ t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' target ')'"));
16875 _res = _PyPegen_set_expr_context ( p , a , Store );
16876 if (_res == NULL && PyErr_Occurred()) {
16877 p->error_indicator = 1;
16878 D(p->level--);
16879 return NULL;
16880 }
16881 goto done;
16882 }
16883 p->mark = _mark;
16884 D(fprintf(stderr, "%*c%s t_atom[%d-%d]: %s failed!\n", p->level, ' ',
16885 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' target ')'"));
16886 }
16887 { // '(' targets? ')'
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, "'(' targets? ')'"));
16893 Token * _literal;
16894 Token * _literal_1;
16895 void *b;
16896 if (
16897 (_literal = _PyPegen_expect_token(p, 7)) // token='('
16898 &&
16899 (b = targets_rule(p), 1) // targets?
16900 &&
16901 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
16902 )
16903 {
16904 D(fprintf(stderr, "%*c+ t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' targets? ')'"));
16905 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16906 if (_token == NULL) {
16907 D(p->level--);
16908 return NULL;
16909 }
16910 int _end_lineno = _token->end_lineno;
16911 UNUSED(_end_lineno); // Only used by EXTRA macro
16912 int _end_col_offset = _token->end_col_offset;
16913 UNUSED(_end_col_offset); // Only used by EXTRA macro
16914 _res = _Py_Tuple ( b , Store , EXTRA );
16915 if (_res == NULL && PyErr_Occurred()) {
16916 p->error_indicator = 1;
16917 D(p->level--);
16918 return NULL;
16919 }
16920 goto done;
16921 }
16922 p->mark = _mark;
16923 D(fprintf(stderr, "%*c%s t_atom[%d-%d]: %s failed!\n", p->level, ' ',
16924 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' targets? ')'"));
16925 }
16926 { // '[' targets? ']'
16927 if (p->error_indicator) {
16928 D(p->level--);
16929 return NULL;
16930 }
16931 D(fprintf(stderr, "%*c> t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' targets? ']'"));
16932 Token * _literal;
16933 Token * _literal_1;
16934 void *b;
16935 if (
16936 (_literal = _PyPegen_expect_token(p, 9)) // token='['
16937 &&
16938 (b = targets_rule(p), 1) // targets?
16939 &&
16940 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
16941 )
16942 {
16943 D(fprintf(stderr, "%*c+ t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' targets? ']'"));
16944 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16945 if (_token == NULL) {
16946 D(p->level--);
16947 return NULL;
16948 }
16949 int _end_lineno = _token->end_lineno;
16950 UNUSED(_end_lineno); // Only used by EXTRA macro
16951 int _end_col_offset = _token->end_col_offset;
16952 UNUSED(_end_col_offset); // Only used by EXTRA macro
16953 _res = _Py_List ( b , Store , EXTRA );
16954 if (_res == NULL && PyErr_Occurred()) {
16955 p->error_indicator = 1;
16956 D(p->level--);
16957 return NULL;
16958 }
16959 goto done;
16960 }
16961 p->mark = _mark;
16962 D(fprintf(stderr, "%*c%s t_atom[%d-%d]: %s failed!\n", p->level, ' ',
16963 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' targets? ']'"));
16964 }
16965 _res = NULL;
16966 done:
16967 D(p->level--);
16968 return _res;
16969}
16970
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020016971// invalid_arguments:
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016972// | args ',' '*'
16973// | expression for_if_clauses ',' [args | expression for_if_clauses]
16974// | args for_if_clauses
16975// | args ',' expression for_if_clauses
16976// | args ',' args
16977static void *
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020016978invalid_arguments_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016979{
16980 D(p->level++);
16981 if (p->error_indicator) {
16982 D(p->level--);
16983 return NULL;
16984 }
16985 void * _res = NULL;
16986 int _mark = p->mark;
16987 { // args ',' '*'
16988 if (p->error_indicator) {
16989 D(p->level--);
16990 return NULL;
16991 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020016992 D(fprintf(stderr, "%*c> invalid_arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args ',' '*'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016993 Token * _literal;
16994 Token * _literal_1;
16995 expr_ty args_var;
16996 if (
16997 (args_var = args_rule(p)) // args
16998 &&
16999 (_literal = _PyPegen_expect_token(p, 12)) // token=','
17000 &&
17001 (_literal_1 = _PyPegen_expect_token(p, 16)) // token='*'
17002 )
17003 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017004 D(fprintf(stderr, "%*c+ invalid_arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args ',' '*'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017005 _res = RAISE_SYNTAX_ERROR ( "iterable argument unpacking follows keyword argument unpacking" );
17006 if (_res == NULL && PyErr_Occurred()) {
17007 p->error_indicator = 1;
17008 D(p->level--);
17009 return NULL;
17010 }
17011 goto done;
17012 }
17013 p->mark = _mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017014 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017015 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ',' '*'"));
17016 }
17017 { // expression for_if_clauses ',' [args | expression for_if_clauses]
17018 if (p->error_indicator) {
17019 D(p->level--);
17020 return NULL;
17021 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017022 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 +010017023 Token * _literal;
17024 void *_opt_var;
17025 UNUSED(_opt_var); // Silence compiler warnings
17026 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010017027 asdl_comprehension_seq* for_if_clauses_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017028 if (
17029 (a = expression_rule(p)) // expression
17030 &&
17031 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
17032 &&
17033 (_literal = _PyPegen_expect_token(p, 12)) // token=','
17034 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080017035 (_opt_var = _tmp_142_rule(p), 1) // [args | expression for_if_clauses]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017036 )
17037 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017038 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 +010017039 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "Generator expression must be parenthesized" );
17040 if (_res == NULL && PyErr_Occurred()) {
17041 p->error_indicator = 1;
17042 D(p->level--);
17043 return NULL;
17044 }
17045 goto done;
17046 }
17047 p->mark = _mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017048 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017049 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression for_if_clauses ',' [args | expression for_if_clauses]"));
17050 }
17051 { // args for_if_clauses
17052 if (p->error_indicator) {
17053 D(p->level--);
17054 return NULL;
17055 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017056 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 +010017057 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010017058 asdl_comprehension_seq* for_if_clauses_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017059 if (
17060 (a = args_rule(p)) // args
17061 &&
17062 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
17063 )
17064 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017065 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 +010017066 _res = _PyPegen_nonparen_genexp_in_call ( p , a );
17067 if (_res == NULL && PyErr_Occurred()) {
17068 p->error_indicator = 1;
17069 D(p->level--);
17070 return NULL;
17071 }
17072 goto done;
17073 }
17074 p->mark = _mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017075 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017076 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args for_if_clauses"));
17077 }
17078 { // args ',' expression for_if_clauses
17079 if (p->error_indicator) {
17080 D(p->level--);
17081 return NULL;
17082 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017083 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 +010017084 Token * _literal;
17085 expr_ty a;
17086 expr_ty args_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +010017087 asdl_comprehension_seq* for_if_clauses_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017088 if (
17089 (args_var = args_rule(p)) // args
17090 &&
17091 (_literal = _PyPegen_expect_token(p, 12)) // token=','
17092 &&
17093 (a = expression_rule(p)) // expression
17094 &&
17095 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
17096 )
17097 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017098 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 +010017099 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "Generator expression must be parenthesized" );
17100 if (_res == NULL && PyErr_Occurred()) {
17101 p->error_indicator = 1;
17102 D(p->level--);
17103 return NULL;
17104 }
17105 goto done;
17106 }
17107 p->mark = _mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017108 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017109 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ',' expression for_if_clauses"));
17110 }
17111 { // args ',' args
17112 if (p->error_indicator) {
17113 D(p->level--);
17114 return NULL;
17115 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017116 D(fprintf(stderr, "%*c> invalid_arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args ',' args"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017117 Token * _literal;
17118 expr_ty a;
17119 expr_ty args_var;
17120 if (
17121 (a = args_rule(p)) // args
17122 &&
17123 (_literal = _PyPegen_expect_token(p, 12)) // token=','
17124 &&
17125 (args_var = args_rule(p)) // args
17126 )
17127 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017128 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 +010017129 _res = _PyPegen_arguments_parsing_error ( p , a );
17130 if (_res == NULL && PyErr_Occurred()) {
17131 p->error_indicator = 1;
17132 D(p->level--);
17133 return NULL;
17134 }
17135 goto done;
17136 }
17137 p->mark = _mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017138 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017139 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ',' args"));
17140 }
17141 _res = NULL;
17142 done:
17143 D(p->level--);
17144 return _res;
17145}
17146
17147// invalid_kwarg: expression '='
17148static void *
17149invalid_kwarg_rule(Parser *p)
17150{
17151 D(p->level++);
17152 if (p->error_indicator) {
17153 D(p->level--);
17154 return NULL;
17155 }
17156 void * _res = NULL;
17157 int _mark = p->mark;
17158 { // expression '='
17159 if (p->error_indicator) {
17160 D(p->level--);
17161 return NULL;
17162 }
17163 D(fprintf(stderr, "%*c> invalid_kwarg[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression '='"));
Pablo Galindo43c4fb62020-12-13 16:46:48 +000017164 Token * a;
17165 expr_ty expression_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017166 if (
Pablo Galindo43c4fb62020-12-13 16:46:48 +000017167 (expression_var = expression_rule(p)) // expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017168 &&
Pablo Galindo43c4fb62020-12-13 16:46:48 +000017169 (a = _PyPegen_expect_token(p, 22)) // token='='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017170 )
17171 {
17172 D(fprintf(stderr, "%*c+ invalid_kwarg[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression '='"));
17173 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "expression cannot contain assignment, perhaps you meant \"==\"?" );
17174 if (_res == NULL && PyErr_Occurred()) {
17175 p->error_indicator = 1;
17176 D(p->level--);
17177 return NULL;
17178 }
17179 goto done;
17180 }
17181 p->mark = _mark;
17182 D(fprintf(stderr, "%*c%s invalid_kwarg[%d-%d]: %s failed!\n", p->level, ' ',
17183 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression '='"));
17184 }
17185 _res = NULL;
17186 done:
17187 D(p->level--);
17188 return _res;
17189}
17190
17191// invalid_named_expression: expression ':=' expression
17192static void *
17193invalid_named_expression_rule(Parser *p)
17194{
17195 D(p->level++);
17196 if (p->error_indicator) {
17197 D(p->level--);
17198 return NULL;
17199 }
17200 void * _res = NULL;
17201 int _mark = p->mark;
17202 { // expression ':=' expression
17203 if (p->error_indicator) {
17204 D(p->level--);
17205 return NULL;
17206 }
17207 D(fprintf(stderr, "%*c> invalid_named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':=' expression"));
17208 Token * _literal;
17209 expr_ty a;
17210 expr_ty expression_var;
17211 if (
17212 (a = expression_rule(p)) // expression
17213 &&
17214 (_literal = _PyPegen_expect_token(p, 53)) // token=':='
17215 &&
17216 (expression_var = expression_rule(p)) // expression
17217 )
17218 {
17219 D(fprintf(stderr, "%*c+ invalid_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':=' expression"));
17220 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "cannot use assignment expressions with %s" , _PyPegen_get_expr_name ( a ) );
17221 if (_res == NULL && PyErr_Occurred()) {
17222 p->error_indicator = 1;
17223 D(p->level--);
17224 return NULL;
17225 }
17226 goto done;
17227 }
17228 p->mark = _mark;
17229 D(fprintf(stderr, "%*c%s invalid_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
17230 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':=' expression"));
17231 }
17232 _res = NULL;
17233 done:
17234 D(p->level--);
17235 return _res;
17236}
17237
17238// invalid_assignment:
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030017239// | invalid_ann_assign_target ':' expression
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030017240// | star_named_expression ',' star_named_expressions* ':' expression
17241// | expression ':' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017242// | ((star_targets '='))* star_expressions '='
17243// | ((star_targets '='))* yield_expr '='
17244// | star_expressions augassign (yield_expr | star_expressions)
17245static void *
17246invalid_assignment_rule(Parser *p)
17247{
17248 D(p->level++);
17249 if (p->error_indicator) {
17250 D(p->level--);
17251 return NULL;
17252 }
17253 void * _res = NULL;
17254 int _mark = p->mark;
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030017255 { // invalid_ann_assign_target ':' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017256 if (p->error_indicator) {
17257 D(p->level--);
17258 return NULL;
17259 }
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030017260 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 +010017261 Token * _literal;
17262 expr_ty a;
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030017263 expr_ty expression_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017264 if (
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030017265 (a = invalid_ann_assign_target_rule(p)) // invalid_ann_assign_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017266 &&
17267 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030017268 &&
17269 (expression_var = expression_rule(p)) // expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017270 )
17271 {
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030017272 D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_ann_assign_target ':' expression"));
17273 _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 +010017274 if (_res == NULL && PyErr_Occurred()) {
17275 p->error_indicator = 1;
17276 D(p->level--);
17277 return NULL;
17278 }
17279 goto done;
17280 }
17281 p->mark = _mark;
17282 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030017283 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_ann_assign_target ':' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017284 }
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030017285 { // star_named_expression ',' star_named_expressions* ':' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017286 if (p->error_indicator) {
17287 D(p->level--);
17288 return NULL;
17289 }
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030017290 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 +010017291 Token * _literal;
17292 Token * _literal_1;
Brandt Bucher145bf262021-02-26 14:51:55 -080017293 asdl_seq * _loop0_143_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017294 expr_ty a;
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030017295 expr_ty expression_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017296 if (
17297 (a = star_named_expression_rule(p)) // star_named_expression
17298 &&
17299 (_literal = _PyPegen_expect_token(p, 12)) // token=','
17300 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080017301 (_loop0_143_var = _loop0_143_rule(p)) // star_named_expressions*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017302 &&
17303 (_literal_1 = _PyPegen_expect_token(p, 11)) // token=':'
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030017304 &&
17305 (expression_var = expression_rule(p)) // expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017306 )
17307 {
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030017308 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 +010017309 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "only single target (not tuple) can be annotated" );
17310 if (_res == NULL && PyErr_Occurred()) {
17311 p->error_indicator = 1;
17312 D(p->level--);
17313 return NULL;
17314 }
17315 goto done;
17316 }
17317 p->mark = _mark;
17318 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030017319 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression ',' star_named_expressions* ':' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017320 }
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030017321 { // expression ':' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017322 if (p->error_indicator) {
17323 D(p->level--);
17324 return NULL;
17325 }
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030017326 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017327 Token * _literal;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017328 expr_ty a;
17329 expr_ty expression_var;
17330 if (
17331 (a = expression_rule(p)) // expression
17332 &&
17333 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
17334 &&
17335 (expression_var = expression_rule(p)) // expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017336 )
17337 {
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030017338 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 +010017339 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "illegal target for annotation" );
17340 if (_res == NULL && PyErr_Occurred()) {
17341 p->error_indicator = 1;
17342 D(p->level--);
17343 return NULL;
17344 }
17345 goto done;
17346 }
17347 p->mark = _mark;
17348 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030017349 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017350 }
17351 { // ((star_targets '='))* star_expressions '='
17352 if (p->error_indicator) {
17353 D(p->level--);
17354 return NULL;
17355 }
17356 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "((star_targets '='))* star_expressions '='"));
17357 Token * _literal;
Brandt Bucher145bf262021-02-26 14:51:55 -080017358 asdl_seq * _loop0_144_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017359 expr_ty a;
17360 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080017361 (_loop0_144_var = _loop0_144_rule(p)) // ((star_targets '='))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017362 &&
17363 (a = star_expressions_rule(p)) // star_expressions
17364 &&
17365 (_literal = _PyPegen_expect_token(p, 22)) // token='='
17366 )
17367 {
17368 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 +030017369 _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( STAR_TARGETS , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017370 if (_res == NULL && PyErr_Occurred()) {
17371 p->error_indicator = 1;
17372 D(p->level--);
17373 return NULL;
17374 }
17375 goto done;
17376 }
17377 p->mark = _mark;
17378 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
17379 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "((star_targets '='))* star_expressions '='"));
17380 }
17381 { // ((star_targets '='))* yield_expr '='
17382 if (p->error_indicator) {
17383 D(p->level--);
17384 return NULL;
17385 }
17386 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "((star_targets '='))* yield_expr '='"));
17387 Token * _literal;
Brandt Bucher145bf262021-02-26 14:51:55 -080017388 asdl_seq * _loop0_145_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017389 expr_ty a;
17390 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080017391 (_loop0_145_var = _loop0_145_rule(p)) // ((star_targets '='))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017392 &&
17393 (a = yield_expr_rule(p)) // yield_expr
17394 &&
17395 (_literal = _PyPegen_expect_token(p, 22)) // token='='
17396 )
17397 {
17398 D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "((star_targets '='))* yield_expr '='"));
17399 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "assignment to yield expression not possible" );
17400 if (_res == NULL && PyErr_Occurred()) {
17401 p->error_indicator = 1;
17402 D(p->level--);
17403 return NULL;
17404 }
17405 goto done;
17406 }
17407 p->mark = _mark;
17408 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
17409 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "((star_targets '='))* yield_expr '='"));
17410 }
17411 { // star_expressions augassign (yield_expr | star_expressions)
17412 if (p->error_indicator) {
17413 D(p->level--);
17414 return NULL;
17415 }
17416 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 -080017417 void *_tmp_146_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017418 expr_ty a;
17419 AugOperator* augassign_var;
17420 if (
17421 (a = star_expressions_rule(p)) // star_expressions
17422 &&
17423 (augassign_var = augassign_rule(p)) // augassign
17424 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080017425 (_tmp_146_var = _tmp_146_rule(p)) // yield_expr | star_expressions
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017426 )
17427 {
17428 D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions augassign (yield_expr | star_expressions)"));
17429 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "'%s' is an illegal expression for augmented assignment" , _PyPegen_get_expr_name ( a ) );
17430 if (_res == NULL && PyErr_Occurred()) {
17431 p->error_indicator = 1;
17432 D(p->level--);
17433 return NULL;
17434 }
17435 goto done;
17436 }
17437 p->mark = _mark;
17438 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
17439 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions augassign (yield_expr | star_expressions)"));
17440 }
17441 _res = NULL;
17442 done:
17443 D(p->level--);
17444 return _res;
17445}
17446
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030017447// invalid_ann_assign_target: list | tuple | '(' invalid_ann_assign_target ')'
17448static expr_ty
17449invalid_ann_assign_target_rule(Parser *p)
17450{
17451 D(p->level++);
17452 if (p->error_indicator) {
17453 D(p->level--);
17454 return NULL;
17455 }
17456 expr_ty _res = NULL;
17457 int _mark = p->mark;
17458 { // list
17459 if (p->error_indicator) {
17460 D(p->level--);
17461 return NULL;
17462 }
17463 D(fprintf(stderr, "%*c> invalid_ann_assign_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "list"));
17464 expr_ty list_var;
17465 if (
17466 (list_var = list_rule(p)) // list
17467 )
17468 {
17469 D(fprintf(stderr, "%*c+ invalid_ann_assign_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "list"));
17470 _res = list_var;
17471 goto done;
17472 }
17473 p->mark = _mark;
17474 D(fprintf(stderr, "%*c%s invalid_ann_assign_target[%d-%d]: %s failed!\n", p->level, ' ',
17475 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "list"));
17476 }
17477 { // tuple
17478 if (p->error_indicator) {
17479 D(p->level--);
17480 return NULL;
17481 }
17482 D(fprintf(stderr, "%*c> invalid_ann_assign_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "tuple"));
17483 expr_ty tuple_var;
17484 if (
17485 (tuple_var = tuple_rule(p)) // tuple
17486 )
17487 {
17488 D(fprintf(stderr, "%*c+ invalid_ann_assign_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "tuple"));
17489 _res = tuple_var;
17490 goto done;
17491 }
17492 p->mark = _mark;
17493 D(fprintf(stderr, "%*c%s invalid_ann_assign_target[%d-%d]: %s failed!\n", p->level, ' ',
17494 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "tuple"));
17495 }
17496 { // '(' invalid_ann_assign_target ')'
17497 if (p->error_indicator) {
17498 D(p->level--);
17499 return NULL;
17500 }
17501 D(fprintf(stderr, "%*c> invalid_ann_assign_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' invalid_ann_assign_target ')'"));
17502 Token * _literal;
17503 Token * _literal_1;
17504 expr_ty a;
17505 if (
17506 (_literal = _PyPegen_expect_token(p, 7)) // token='('
17507 &&
17508 (a = invalid_ann_assign_target_rule(p)) // invalid_ann_assign_target
17509 &&
17510 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
17511 )
17512 {
17513 D(fprintf(stderr, "%*c+ invalid_ann_assign_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' invalid_ann_assign_target ')'"));
17514 _res = a;
17515 if (_res == NULL && PyErr_Occurred()) {
17516 p->error_indicator = 1;
17517 D(p->level--);
17518 return NULL;
17519 }
17520 goto done;
17521 }
17522 p->mark = _mark;
17523 D(fprintf(stderr, "%*c%s invalid_ann_assign_target[%d-%d]: %s failed!\n", p->level, ' ',
17524 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' invalid_ann_assign_target ')'"));
17525 }
17526 _res = NULL;
17527 done:
17528 D(p->level--);
17529 return _res;
17530}
17531
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017532// invalid_del_stmt: 'del' star_expressions
17533static void *
17534invalid_del_stmt_rule(Parser *p)
17535{
17536 D(p->level++);
17537 if (p->error_indicator) {
17538 D(p->level--);
17539 return NULL;
17540 }
17541 void * _res = NULL;
17542 int _mark = p->mark;
17543 { // 'del' star_expressions
17544 if (p->error_indicator) {
17545 D(p->level--);
17546 return NULL;
17547 }
17548 D(fprintf(stderr, "%*c> invalid_del_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'del' star_expressions"));
17549 Token * _keyword;
17550 expr_ty a;
17551 if (
17552 (_keyword = _PyPegen_expect_token(p, 503)) // token='del'
17553 &&
17554 (a = star_expressions_rule(p)) // star_expressions
17555 )
17556 {
17557 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 +030017558 _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( DEL_TARGETS , a );
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017559 if (_res == NULL && PyErr_Occurred()) {
17560 p->error_indicator = 1;
17561 D(p->level--);
17562 return NULL;
17563 }
17564 goto done;
17565 }
17566 p->mark = _mark;
17567 D(fprintf(stderr, "%*c%s invalid_del_stmt[%d-%d]: %s failed!\n", p->level, ' ',
17568 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'del' star_expressions"));
17569 }
17570 _res = NULL;
17571 done:
17572 D(p->level--);
17573 return _res;
17574}
17575
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017576// invalid_block: NEWLINE !INDENT
17577static void *
17578invalid_block_rule(Parser *p)
17579{
17580 D(p->level++);
17581 if (p->error_indicator) {
17582 D(p->level--);
17583 return NULL;
17584 }
17585 void * _res = NULL;
17586 int _mark = p->mark;
17587 { // NEWLINE !INDENT
17588 if (p->error_indicator) {
17589 D(p->level--);
17590 return NULL;
17591 }
17592 D(fprintf(stderr, "%*c> invalid_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE !INDENT"));
17593 Token * newline_var;
17594 if (
17595 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
17596 &&
17597 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
17598 )
17599 {
17600 D(fprintf(stderr, "%*c+ invalid_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE !INDENT"));
17601 _res = RAISE_INDENTATION_ERROR ( "expected an indented block" );
17602 if (_res == NULL && PyErr_Occurred()) {
17603 p->error_indicator = 1;
17604 D(p->level--);
17605 return NULL;
17606 }
17607 goto done;
17608 }
17609 p->mark = _mark;
17610 D(fprintf(stderr, "%*c%s invalid_block[%d-%d]: %s failed!\n", p->level, ' ',
17611 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE !INDENT"));
17612 }
17613 _res = NULL;
17614 done:
17615 D(p->level--);
17616 return _res;
17617}
17618
Lysandros Nikolaou15acc4e2020-10-27 20:54:20 +020017619// Left-recursive
17620// invalid_primary: primary '{'
17621static void *
17622invalid_primary_rule(Parser *p)
17623{
17624 D(p->level++);
17625 if (p->error_indicator) {
17626 D(p->level--);
17627 return NULL;
17628 }
17629 void * _res = NULL;
17630 int _mark = p->mark;
17631 { // primary '{'
17632 if (p->error_indicator) {
17633 D(p->level--);
17634 return NULL;
17635 }
17636 D(fprintf(stderr, "%*c> invalid_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '{'"));
17637 Token * a;
17638 expr_ty primary_var;
17639 if (
17640 (primary_var = primary_rule(p)) // primary
17641 &&
17642 (a = _PyPegen_expect_token(p, 25)) // token='{'
17643 )
17644 {
17645 D(fprintf(stderr, "%*c+ invalid_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '{'"));
17646 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "invalid syntax" );
17647 if (_res == NULL && PyErr_Occurred()) {
17648 p->error_indicator = 1;
17649 D(p->level--);
17650 return NULL;
17651 }
17652 goto done;
17653 }
17654 p->mark = _mark;
17655 D(fprintf(stderr, "%*c%s invalid_primary[%d-%d]: %s failed!\n", p->level, ' ',
17656 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '{'"));
17657 }
17658 _res = NULL;
17659 done:
17660 D(p->level--);
17661 return _res;
17662}
17663
Pablo Galindo835f14f2021-01-31 22:52:56 +000017664// invalid_comprehension:
17665// | ('[' | '(' | '{') starred_expression for_if_clauses
Pablo Galindod4e6ed72021-02-03 23:29:26 +000017666// | ('[' | '{') star_named_expression ',' star_named_expressions? for_if_clauses
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017667static void *
17668invalid_comprehension_rule(Parser *p)
17669{
17670 D(p->level++);
17671 if (p->error_indicator) {
17672 D(p->level--);
17673 return NULL;
17674 }
17675 void * _res = NULL;
17676 int _mark = p->mark;
17677 { // ('[' | '(' | '{') starred_expression for_if_clauses
17678 if (p->error_indicator) {
17679 D(p->level--);
17680 return NULL;
17681 }
17682 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 -080017683 void *_tmp_147_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017684 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010017685 asdl_comprehension_seq* for_if_clauses_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017686 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080017687 (_tmp_147_var = _tmp_147_rule(p)) // '[' | '(' | '{'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017688 &&
17689 (a = starred_expression_rule(p)) // starred_expression
17690 &&
17691 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
17692 )
17693 {
17694 D(fprintf(stderr, "%*c+ invalid_comprehension[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "('[' | '(' | '{') starred_expression for_if_clauses"));
17695 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "iterable unpacking cannot be used in comprehension" );
17696 if (_res == NULL && PyErr_Occurred()) {
17697 p->error_indicator = 1;
17698 D(p->level--);
17699 return NULL;
17700 }
17701 goto done;
17702 }
17703 p->mark = _mark;
17704 D(fprintf(stderr, "%*c%s invalid_comprehension[%d-%d]: %s failed!\n", p->level, ' ',
17705 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('[' | '(' | '{') starred_expression for_if_clauses"));
17706 }
Pablo Galindod4e6ed72021-02-03 23:29:26 +000017707 { // ('[' | '{') star_named_expression ',' star_named_expressions? for_if_clauses
Pablo Galindo835f14f2021-01-31 22:52:56 +000017708 if (p->error_indicator) {
17709 D(p->level--);
17710 return NULL;
17711 }
Pablo Galindod4e6ed72021-02-03 23:29:26 +000017712 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 +000017713 Token * _literal;
17714 void *_opt_var;
17715 UNUSED(_opt_var); // Silence compiler warnings
Brandt Bucher145bf262021-02-26 14:51:55 -080017716 void *_tmp_148_var;
Pablo Galindo835f14f2021-01-31 22:52:56 +000017717 expr_ty a;
Pablo Galindod4e6ed72021-02-03 23:29:26 +000017718 asdl_comprehension_seq* for_if_clauses_var;
Pablo Galindo835f14f2021-01-31 22:52:56 +000017719 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080017720 (_tmp_148_var = _tmp_148_rule(p)) // '[' | '{'
Pablo Galindo835f14f2021-01-31 22:52:56 +000017721 &&
17722 (a = star_named_expression_rule(p)) // star_named_expression
17723 &&
17724 (_literal = _PyPegen_expect_token(p, 12)) // token=','
17725 &&
17726 (_opt_var = star_named_expressions_rule(p), 1) // star_named_expressions?
Pablo Galindod4e6ed72021-02-03 23:29:26 +000017727 &&
17728 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
Pablo Galindo835f14f2021-01-31 22:52:56 +000017729 )
17730 {
Pablo Galindod4e6ed72021-02-03 23:29:26 +000017731 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 +000017732 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "did you forget parentheses around the comprehension target?" );
17733 if (_res == NULL && PyErr_Occurred()) {
17734 p->error_indicator = 1;
17735 D(p->level--);
17736 return NULL;
17737 }
17738 goto done;
17739 }
17740 p->mark = _mark;
17741 D(fprintf(stderr, "%*c%s invalid_comprehension[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindod4e6ed72021-02-03 23:29:26 +000017742 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('[' | '{') star_named_expression ',' star_named_expressions? for_if_clauses"));
Pablo Galindo835f14f2021-01-31 22:52:56 +000017743 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017744 _res = NULL;
17745 done:
17746 D(p->level--);
17747 return _res;
17748}
17749
17750// invalid_dict_comprehension: '{' '**' bitwise_or for_if_clauses '}'
17751static void *
17752invalid_dict_comprehension_rule(Parser *p)
17753{
17754 D(p->level++);
17755 if (p->error_indicator) {
17756 D(p->level--);
17757 return NULL;
17758 }
17759 void * _res = NULL;
17760 int _mark = p->mark;
17761 { // '{' '**' bitwise_or for_if_clauses '}'
17762 if (p->error_indicator) {
17763 D(p->level--);
17764 return NULL;
17765 }
17766 D(fprintf(stderr, "%*c> invalid_dict_comprehension[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' '**' bitwise_or for_if_clauses '}'"));
17767 Token * _literal;
17768 Token * _literal_1;
17769 Token * a;
17770 expr_ty bitwise_or_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +010017771 asdl_comprehension_seq* for_if_clauses_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017772 if (
17773 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
17774 &&
17775 (a = _PyPegen_expect_token(p, 35)) // token='**'
17776 &&
17777 (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or
17778 &&
17779 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
17780 &&
17781 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
17782 )
17783 {
17784 D(fprintf(stderr, "%*c+ invalid_dict_comprehension[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' '**' bitwise_or for_if_clauses '}'"));
17785 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "dict unpacking cannot be used in dict comprehension" );
17786 if (_res == NULL && PyErr_Occurred()) {
17787 p->error_indicator = 1;
17788 D(p->level--);
17789 return NULL;
17790 }
17791 goto done;
17792 }
17793 p->mark = _mark;
17794 D(fprintf(stderr, "%*c%s invalid_dict_comprehension[%d-%d]: %s failed!\n", p->level, ' ',
17795 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' '**' bitwise_or for_if_clauses '}'"));
17796 }
17797 _res = NULL;
17798 done:
17799 D(p->level--);
17800 return _res;
17801}
17802
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020017803// invalid_parameters: param_no_default* invalid_parameters_helper param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017804static void *
17805invalid_parameters_rule(Parser *p)
17806{
17807 D(p->level++);
17808 if (p->error_indicator) {
17809 D(p->level--);
17810 return NULL;
17811 }
17812 void * _res = NULL;
17813 int _mark = p->mark;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020017814 { // param_no_default* invalid_parameters_helper param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017815 if (p->error_indicator) {
17816 D(p->level--);
17817 return NULL;
17818 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020017819 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 -080017820 asdl_seq * _loop0_149_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020017821 void *invalid_parameters_helper_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017822 arg_ty param_no_default_var;
17823 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080017824 (_loop0_149_var = _loop0_149_rule(p)) // param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017825 &&
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020017826 (invalid_parameters_helper_var = invalid_parameters_helper_rule(p)) // invalid_parameters_helper
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017827 &&
17828 (param_no_default_var = param_no_default_rule(p)) // param_no_default
17829 )
17830 {
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020017831 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 +010017832 _res = RAISE_SYNTAX_ERROR ( "non-default argument follows default argument" );
17833 if (_res == NULL && PyErr_Occurred()) {
17834 p->error_indicator = 1;
17835 D(p->level--);
17836 return NULL;
17837 }
17838 goto done;
17839 }
17840 p->mark = _mark;
17841 D(fprintf(stderr, "%*c%s invalid_parameters[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020017842 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default* invalid_parameters_helper param_no_default"));
17843 }
17844 _res = NULL;
17845 done:
17846 D(p->level--);
17847 return _res;
17848}
17849
17850// invalid_parameters_helper: slash_with_default | param_with_default+
17851static void *
17852invalid_parameters_helper_rule(Parser *p)
17853{
17854 D(p->level++);
17855 if (p->error_indicator) {
17856 D(p->level--);
17857 return NULL;
17858 }
17859 void * _res = NULL;
17860 int _mark = p->mark;
17861 { // slash_with_default
17862 if (p->error_indicator) {
17863 D(p->level--);
17864 return NULL;
17865 }
17866 D(fprintf(stderr, "%*c> invalid_parameters_helper[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slash_with_default"));
17867 SlashWithDefault* a;
17868 if (
17869 (a = slash_with_default_rule(p)) // slash_with_default
17870 )
17871 {
17872 D(fprintf(stderr, "%*c+ invalid_parameters_helper[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slash_with_default"));
17873 _res = _PyPegen_singleton_seq ( p , a );
17874 if (_res == NULL && PyErr_Occurred()) {
17875 p->error_indicator = 1;
17876 D(p->level--);
17877 return NULL;
17878 }
17879 goto done;
17880 }
17881 p->mark = _mark;
17882 D(fprintf(stderr, "%*c%s invalid_parameters_helper[%d-%d]: %s failed!\n", p->level, ' ',
17883 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_with_default"));
17884 }
17885 { // param_with_default+
17886 if (p->error_indicator) {
17887 D(p->level--);
17888 return NULL;
17889 }
17890 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 -080017891 asdl_seq * _loop1_150_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020017892 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080017893 (_loop1_150_var = _loop1_150_rule(p)) // param_with_default+
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020017894 )
17895 {
17896 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 -080017897 _res = _loop1_150_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020017898 goto done;
17899 }
17900 p->mark = _mark;
17901 D(fprintf(stderr, "%*c%s invalid_parameters_helper[%d-%d]: %s failed!\n", p->level, ' ',
17902 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default+"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017903 }
17904 _res = NULL;
17905 done:
17906 D(p->level--);
17907 return _res;
17908}
17909
17910// invalid_lambda_parameters:
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020017911// | lambda_param_no_default* invalid_lambda_parameters_helper lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017912static void *
17913invalid_lambda_parameters_rule(Parser *p)
17914{
17915 D(p->level++);
17916 if (p->error_indicator) {
17917 D(p->level--);
17918 return NULL;
17919 }
17920 void * _res = NULL;
17921 int _mark = p->mark;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020017922 { // lambda_param_no_default* invalid_lambda_parameters_helper lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017923 if (p->error_indicator) {
17924 D(p->level--);
17925 return NULL;
17926 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020017927 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 -080017928 asdl_seq * _loop0_151_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020017929 void *invalid_lambda_parameters_helper_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017930 arg_ty lambda_param_no_default_var;
17931 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080017932 (_loop0_151_var = _loop0_151_rule(p)) // lambda_param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017933 &&
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020017934 (invalid_lambda_parameters_helper_var = invalid_lambda_parameters_helper_rule(p)) // invalid_lambda_parameters_helper
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017935 &&
17936 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
17937 )
17938 {
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020017939 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 +010017940 _res = RAISE_SYNTAX_ERROR ( "non-default argument follows default argument" );
17941 if (_res == NULL && PyErr_Occurred()) {
17942 p->error_indicator = 1;
17943 D(p->level--);
17944 return NULL;
17945 }
17946 goto done;
17947 }
17948 p->mark = _mark;
17949 D(fprintf(stderr, "%*c%s invalid_lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020017950 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default* invalid_lambda_parameters_helper lambda_param_no_default"));
17951 }
17952 _res = NULL;
17953 done:
17954 D(p->level--);
17955 return _res;
17956}
17957
17958// invalid_lambda_parameters_helper:
17959// | lambda_slash_with_default
17960// | lambda_param_with_default+
17961static void *
17962invalid_lambda_parameters_helper_rule(Parser *p)
17963{
17964 D(p->level++);
17965 if (p->error_indicator) {
17966 D(p->level--);
17967 return NULL;
17968 }
17969 void * _res = NULL;
17970 int _mark = p->mark;
17971 { // lambda_slash_with_default
17972 if (p->error_indicator) {
17973 D(p->level--);
17974 return NULL;
17975 }
17976 D(fprintf(stderr, "%*c> invalid_lambda_parameters_helper[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_slash_with_default"));
17977 SlashWithDefault* a;
17978 if (
17979 (a = lambda_slash_with_default_rule(p)) // lambda_slash_with_default
17980 )
17981 {
17982 D(fprintf(stderr, "%*c+ invalid_lambda_parameters_helper[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_slash_with_default"));
17983 _res = _PyPegen_singleton_seq ( p , a );
17984 if (_res == NULL && PyErr_Occurred()) {
17985 p->error_indicator = 1;
17986 D(p->level--);
17987 return NULL;
17988 }
17989 goto done;
17990 }
17991 p->mark = _mark;
17992 D(fprintf(stderr, "%*c%s invalid_lambda_parameters_helper[%d-%d]: %s failed!\n", p->level, ' ',
17993 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_slash_with_default"));
17994 }
17995 { // lambda_param_with_default+
17996 if (p->error_indicator) {
17997 D(p->level--);
17998 return NULL;
17999 }
18000 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 -080018001 asdl_seq * _loop1_152_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020018002 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080018003 (_loop1_152_var = _loop1_152_rule(p)) // lambda_param_with_default+
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020018004 )
18005 {
18006 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 -080018007 _res = _loop1_152_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020018008 goto done;
18009 }
18010 p->mark = _mark;
18011 D(fprintf(stderr, "%*c%s invalid_lambda_parameters_helper[%d-%d]: %s failed!\n", p->level, ' ',
18012 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default+"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018013 }
18014 _res = NULL;
18015 done:
18016 D(p->level--);
18017 return _res;
18018}
18019
18020// invalid_star_etc: '*' (')' | ',' (')' | '**')) | '*' ',' TYPE_COMMENT
18021static void *
18022invalid_star_etc_rule(Parser *p)
18023{
18024 D(p->level++);
18025 if (p->error_indicator) {
18026 D(p->level--);
18027 return NULL;
18028 }
18029 void * _res = NULL;
18030 int _mark = p->mark;
18031 { // '*' (')' | ',' (')' | '**'))
18032 if (p->error_indicator) {
18033 D(p->level--);
18034 return NULL;
18035 }
18036 D(fprintf(stderr, "%*c> invalid_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (')' | ',' (')' | '**'))"));
18037 Token * _literal;
Brandt Bucher145bf262021-02-26 14:51:55 -080018038 void *_tmp_153_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018039 if (
18040 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
18041 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080018042 (_tmp_153_var = _tmp_153_rule(p)) // ')' | ',' (')' | '**')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018043 )
18044 {
18045 D(fprintf(stderr, "%*c+ invalid_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (')' | ',' (')' | '**'))"));
18046 _res = RAISE_SYNTAX_ERROR ( "named arguments must follow bare *" );
18047 if (_res == NULL && PyErr_Occurred()) {
18048 p->error_indicator = 1;
18049 D(p->level--);
18050 return NULL;
18051 }
18052 goto done;
18053 }
18054 p->mark = _mark;
18055 D(fprintf(stderr, "%*c%s invalid_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
18056 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' (')' | ',' (')' | '**'))"));
18057 }
18058 { // '*' ',' TYPE_COMMENT
18059 if (p->error_indicator) {
18060 D(p->level--);
18061 return NULL;
18062 }
18063 D(fprintf(stderr, "%*c> invalid_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' ',' TYPE_COMMENT"));
18064 Token * _literal;
18065 Token * _literal_1;
18066 Token * type_comment_var;
18067 if (
18068 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
18069 &&
18070 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
18071 &&
18072 (type_comment_var = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
18073 )
18074 {
18075 D(fprintf(stderr, "%*c+ invalid_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' ',' TYPE_COMMENT"));
18076 _res = RAISE_SYNTAX_ERROR ( "bare * has associated type comment" );
18077 if (_res == NULL && PyErr_Occurred()) {
18078 p->error_indicator = 1;
18079 D(p->level--);
18080 return NULL;
18081 }
18082 goto done;
18083 }
18084 p->mark = _mark;
18085 D(fprintf(stderr, "%*c%s invalid_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
18086 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' ',' TYPE_COMMENT"));
18087 }
18088 _res = NULL;
18089 done:
18090 D(p->level--);
18091 return _res;
18092}
18093
18094// invalid_lambda_star_etc: '*' (':' | ',' (':' | '**'))
18095static void *
18096invalid_lambda_star_etc_rule(Parser *p)
18097{
18098 D(p->level++);
18099 if (p->error_indicator) {
18100 D(p->level--);
18101 return NULL;
18102 }
18103 void * _res = NULL;
18104 int _mark = p->mark;
18105 { // '*' (':' | ',' (':' | '**'))
18106 if (p->error_indicator) {
18107 D(p->level--);
18108 return NULL;
18109 }
18110 D(fprintf(stderr, "%*c> invalid_lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (':' | ',' (':' | '**'))"));
18111 Token * _literal;
Brandt Bucher145bf262021-02-26 14:51:55 -080018112 void *_tmp_154_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018113 if (
18114 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
18115 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080018116 (_tmp_154_var = _tmp_154_rule(p)) // ':' | ',' (':' | '**')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018117 )
18118 {
18119 D(fprintf(stderr, "%*c+ invalid_lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (':' | ',' (':' | '**'))"));
18120 _res = RAISE_SYNTAX_ERROR ( "named arguments must follow bare *" );
18121 if (_res == NULL && PyErr_Occurred()) {
18122 p->error_indicator = 1;
18123 D(p->level--);
18124 return NULL;
18125 }
18126 goto done;
18127 }
18128 p->mark = _mark;
18129 D(fprintf(stderr, "%*c%s invalid_lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
18130 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' (':' | ',' (':' | '**'))"));
18131 }
18132 _res = NULL;
18133 done:
18134 D(p->level--);
18135 return _res;
18136}
18137
18138// invalid_double_type_comments: TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT
18139static void *
18140invalid_double_type_comments_rule(Parser *p)
18141{
18142 D(p->level++);
18143 if (p->error_indicator) {
18144 D(p->level--);
18145 return NULL;
18146 }
18147 void * _res = NULL;
18148 int _mark = p->mark;
18149 { // TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT
18150 if (p->error_indicator) {
18151 D(p->level--);
18152 return NULL;
18153 }
18154 D(fprintf(stderr, "%*c> invalid_double_type_comments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT"));
18155 Token * indent_var;
18156 Token * newline_var;
18157 Token * newline_var_1;
18158 Token * type_comment_var;
18159 Token * type_comment_var_1;
18160 if (
18161 (type_comment_var = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
18162 &&
18163 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
18164 &&
18165 (type_comment_var_1 = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
18166 &&
18167 (newline_var_1 = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
18168 &&
18169 (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
18170 )
18171 {
18172 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"));
18173 _res = RAISE_SYNTAX_ERROR ( "Cannot have two type comments on def" );
18174 if (_res == NULL && PyErr_Occurred()) {
18175 p->error_indicator = 1;
18176 D(p->level--);
18177 return NULL;
18178 }
18179 goto done;
18180 }
18181 p->mark = _mark;
18182 D(fprintf(stderr, "%*c%s invalid_double_type_comments[%d-%d]: %s failed!\n", p->level, ' ',
18183 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT"));
18184 }
18185 _res = NULL;
18186 done:
18187 D(p->level--);
18188 return _res;
18189}
18190
Pablo Galindo58fb1562021-02-02 19:54:22 +000018191// invalid_with_item: expression 'as' expression &(',' | ')' | ':')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018192static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018193invalid_with_item_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018194{
18195 D(p->level++);
18196 if (p->error_indicator) {
18197 D(p->level--);
18198 return NULL;
18199 }
18200 void * _res = NULL;
18201 int _mark = p->mark;
Pablo Galindo58fb1562021-02-02 19:54:22 +000018202 { // expression 'as' expression &(',' | ')' | ':')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018203 if (p->error_indicator) {
18204 D(p->level--);
18205 return NULL;
18206 }
Pablo Galindo58fb1562021-02-02 19:54:22 +000018207 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 +030018208 Token * _keyword;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018209 expr_ty a;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018210 expr_ty expression_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018211 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018212 (expression_var = expression_rule(p)) // expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018213 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018214 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
18215 &&
18216 (a = expression_rule(p)) // expression
Pablo Galindo58fb1562021-02-02 19:54:22 +000018217 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080018218 _PyPegen_lookahead(1, _tmp_155_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018219 )
18220 {
Pablo Galindo58fb1562021-02-02 19:54:22 +000018221 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 +030018222 _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( STAR_TARGETS , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018223 if (_res == NULL && PyErr_Occurred()) {
18224 p->error_indicator = 1;
18225 D(p->level--);
18226 return NULL;
18227 }
18228 goto done;
18229 }
18230 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018231 D(fprintf(stderr, "%*c%s invalid_with_item[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +000018232 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression 'as' expression &(',' | ')' | ':')"));
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018233 }
18234 _res = NULL;
18235 done:
18236 D(p->level--);
18237 return _res;
18238}
18239
18240// invalid_for_target: ASYNC? 'for' star_expressions
18241static void *
18242invalid_for_target_rule(Parser *p)
18243{
18244 D(p->level++);
18245 if (p->error_indicator) {
18246 D(p->level--);
18247 return NULL;
18248 }
18249 void * _res = NULL;
18250 int _mark = p->mark;
18251 { // ASYNC? 'for' star_expressions
18252 if (p->error_indicator) {
18253 D(p->level--);
18254 return NULL;
18255 }
18256 D(fprintf(stderr, "%*c> invalid_for_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'for' star_expressions"));
18257 Token * _keyword;
18258 void *_opt_var;
18259 UNUSED(_opt_var); // Silence compiler warnings
18260 expr_ty a;
18261 if (
18262 (_opt_var = _PyPegen_expect_token(p, ASYNC), 1) // ASYNC?
18263 &&
18264 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
18265 &&
18266 (a = star_expressions_rule(p)) // star_expressions
18267 )
18268 {
18269 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 +030018270 _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( FOR_TARGETS , a );
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018271 if (_res == NULL && PyErr_Occurred()) {
18272 p->error_indicator = 1;
18273 D(p->level--);
18274 return NULL;
18275 }
18276 goto done;
18277 }
18278 p->mark = _mark;
18279 D(fprintf(stderr, "%*c%s invalid_for_target[%d-%d]: %s failed!\n", p->level, ' ',
18280 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'for' star_expressions"));
18281 }
18282 _res = NULL;
18283 done:
18284 D(p->level--);
18285 return _res;
18286}
18287
Pablo Galindo8efad612021-03-24 19:34:17 +000018288// invalid_group: '(' starred_expression ')' | '(' '**' expression ')'
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018289static void *
18290invalid_group_rule(Parser *p)
18291{
18292 D(p->level++);
18293 if (p->error_indicator) {
18294 D(p->level--);
18295 return NULL;
18296 }
18297 void * _res = NULL;
18298 int _mark = p->mark;
18299 { // '(' starred_expression ')'
18300 if (p->error_indicator) {
18301 D(p->level--);
18302 return NULL;
18303 }
18304 D(fprintf(stderr, "%*c> invalid_group[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' starred_expression ')'"));
18305 Token * _literal;
18306 Token * _literal_1;
18307 expr_ty a;
18308 if (
18309 (_literal = _PyPegen_expect_token(p, 7)) // token='('
18310 &&
18311 (a = starred_expression_rule(p)) // starred_expression
18312 &&
18313 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
18314 )
18315 {
18316 D(fprintf(stderr, "%*c+ invalid_group[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' starred_expression ')'"));
18317 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "can't use starred expression here" );
18318 if (_res == NULL && PyErr_Occurred()) {
18319 p->error_indicator = 1;
18320 D(p->level--);
18321 return NULL;
18322 }
18323 goto done;
18324 }
18325 p->mark = _mark;
18326 D(fprintf(stderr, "%*c%s invalid_group[%d-%d]: %s failed!\n", p->level, ' ',
18327 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' starred_expression ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018328 }
Pablo Galindo8efad612021-03-24 19:34:17 +000018329 { // '(' '**' expression ')'
18330 if (p->error_indicator) {
18331 D(p->level--);
18332 return NULL;
18333 }
18334 D(fprintf(stderr, "%*c> invalid_group[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' '**' expression ')'"));
18335 Token * _literal;
18336 Token * _literal_1;
18337 Token * a;
18338 expr_ty expression_var;
18339 if (
18340 (_literal = _PyPegen_expect_token(p, 7)) // token='('
18341 &&
18342 (a = _PyPegen_expect_token(p, 35)) // token='**'
18343 &&
18344 (expression_var = expression_rule(p)) // expression
18345 &&
18346 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
18347 )
18348 {
18349 D(fprintf(stderr, "%*c+ invalid_group[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' '**' expression ')'"));
18350 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "can't use double starred expression here" );
18351 if (_res == NULL && PyErr_Occurred()) {
18352 p->error_indicator = 1;
18353 D(p->level--);
18354 return NULL;
18355 }
18356 goto done;
18357 }
18358 p->mark = _mark;
18359 D(fprintf(stderr, "%*c%s invalid_group[%d-%d]: %s failed!\n", p->level, ' ',
18360 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' '**' expression ')'"));
18361 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018362 _res = NULL;
18363 done:
18364 D(p->level--);
18365 return _res;
18366}
18367
18368// invalid_import_from_targets: import_from_as_names ','
18369static void *
18370invalid_import_from_targets_rule(Parser *p)
18371{
18372 D(p->level++);
18373 if (p->error_indicator) {
18374 D(p->level--);
18375 return NULL;
18376 }
18377 void * _res = NULL;
18378 int _mark = p->mark;
18379 { // import_from_as_names ','
18380 if (p->error_indicator) {
18381 D(p->level--);
18382 return NULL;
18383 }
18384 D(fprintf(stderr, "%*c> invalid_import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "import_from_as_names ','"));
18385 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +010018386 asdl_alias_seq* import_from_as_names_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018387 if (
18388 (import_from_as_names_var = import_from_as_names_rule(p)) // import_from_as_names
18389 &&
18390 (_literal = _PyPegen_expect_token(p, 12)) // token=','
18391 )
18392 {
18393 D(fprintf(stderr, "%*c+ invalid_import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_from_as_names ','"));
18394 _res = RAISE_SYNTAX_ERROR ( "trailing comma not allowed without surrounding parentheses" );
18395 if (_res == NULL && PyErr_Occurred()) {
18396 p->error_indicator = 1;
18397 D(p->level--);
18398 return NULL;
18399 }
18400 goto done;
18401 }
18402 p->mark = _mark;
18403 D(fprintf(stderr, "%*c%s invalid_import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
18404 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from_as_names ','"));
18405 }
18406 _res = NULL;
18407 done:
18408 D(p->level--);
18409 return _res;
18410}
18411
Pablo Galindo58fb1562021-02-02 19:54:22 +000018412// invalid_with_stmt:
18413// | ASYNC? 'with' ','.(expression ['as' star_target])+ &&':'
18414// | ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' &&':'
18415static void *
18416invalid_with_stmt_rule(Parser *p)
18417{
18418 D(p->level++);
18419 if (p->error_indicator) {
18420 D(p->level--);
18421 return NULL;
18422 }
18423 void * _res = NULL;
18424 int _mark = p->mark;
18425 { // ASYNC? 'with' ','.(expression ['as' star_target])+ &&':'
18426 if (p->error_indicator) {
18427 D(p->level--);
18428 return NULL;
18429 }
18430 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 -080018431 asdl_seq * _gather_156_var;
Pablo Galindo58fb1562021-02-02 19:54:22 +000018432 Token * _keyword;
18433 Token * _literal;
18434 void *_opt_var;
18435 UNUSED(_opt_var); // Silence compiler warnings
18436 if (
18437 (_opt_var = _PyPegen_expect_token(p, ASYNC), 1) // ASYNC?
18438 &&
18439 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
18440 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080018441 (_gather_156_var = _gather_156_rule(p)) // ','.(expression ['as' star_target])+
Pablo Galindo58fb1562021-02-02 19:54:22 +000018442 &&
18443 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
18444 )
18445 {
18446 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 -080018447 _res = _PyPegen_dummy_name(p, _opt_var, _keyword, _gather_156_var, _literal);
Pablo Galindo58fb1562021-02-02 19:54:22 +000018448 goto done;
18449 }
18450 p->mark = _mark;
18451 D(fprintf(stderr, "%*c%s invalid_with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
18452 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'with' ','.(expression ['as' star_target])+ &&':'"));
18453 }
18454 { // ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' &&':'
18455 if (p->error_indicator) {
18456 D(p->level--);
18457 return NULL;
18458 }
18459 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 -080018460 asdl_seq * _gather_158_var;
Pablo Galindo58fb1562021-02-02 19:54:22 +000018461 Token * _keyword;
18462 Token * _literal;
18463 Token * _literal_1;
18464 Token * _literal_2;
18465 void *_opt_var;
18466 UNUSED(_opt_var); // Silence compiler warnings
18467 void *_opt_var_1;
18468 UNUSED(_opt_var_1); // Silence compiler warnings
18469 if (
18470 (_opt_var = _PyPegen_expect_token(p, ASYNC), 1) // ASYNC?
18471 &&
18472 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
18473 &&
18474 (_literal = _PyPegen_expect_token(p, 7)) // token='('
18475 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080018476 (_gather_158_var = _gather_158_rule(p)) // ','.(expressions ['as' star_target])+
Pablo Galindo58fb1562021-02-02 19:54:22 +000018477 &&
18478 (_opt_var_1 = _PyPegen_expect_token(p, 12), 1) // ','?
18479 &&
18480 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
18481 &&
18482 (_literal_2 = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
18483 )
18484 {
18485 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 -080018486 _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 +000018487 goto done;
18488 }
18489 p->mark = _mark;
18490 D(fprintf(stderr, "%*c%s invalid_with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
18491 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' &&':'"));
18492 }
18493 _res = NULL;
18494 done:
18495 D(p->level--);
18496 return _res;
18497}
18498
Pablo Galindo206cbda2021-02-07 18:42:21 +000018499// invalid_except_block:
18500// | 'except' expression ',' expressions ['as' NAME] ':'
18501// | 'except' expression ['as' NAME] &&':'
18502// | 'except' &&':'
18503static void *
18504invalid_except_block_rule(Parser *p)
18505{
18506 D(p->level++);
18507 if (p->error_indicator) {
18508 D(p->level--);
18509 return NULL;
18510 }
18511 void * _res = NULL;
18512 int _mark = p->mark;
18513 { // 'except' expression ',' expressions ['as' NAME] ':'
18514 if (p->error_indicator) {
18515 D(p->level--);
18516 return NULL;
18517 }
18518 D(fprintf(stderr, "%*c> invalid_except_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' expression ',' expressions ['as' NAME] ':'"));
18519 Token * _keyword;
18520 Token * _literal;
18521 Token * _literal_1;
18522 void *_opt_var;
18523 UNUSED(_opt_var); // Silence compiler warnings
18524 expr_ty a;
18525 expr_ty expressions_var;
18526 if (
18527 (_keyword = _PyPegen_expect_token(p, 521)) // token='except'
18528 &&
18529 (a = expression_rule(p)) // expression
18530 &&
18531 (_literal = _PyPegen_expect_token(p, 12)) // token=','
18532 &&
18533 (expressions_var = expressions_rule(p)) // expressions
18534 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080018535 (_opt_var = _tmp_160_rule(p), 1) // ['as' NAME]
Pablo Galindo206cbda2021-02-07 18:42:21 +000018536 &&
18537 (_literal_1 = _PyPegen_expect_token(p, 11)) // token=':'
18538 )
18539 {
18540 D(fprintf(stderr, "%*c+ invalid_except_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' expression ',' expressions ['as' NAME] ':'"));
18541 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "exception group must be parenthesized" );
18542 if (_res == NULL && PyErr_Occurred()) {
18543 p->error_indicator = 1;
18544 D(p->level--);
18545 return NULL;
18546 }
18547 goto done;
18548 }
18549 p->mark = _mark;
18550 D(fprintf(stderr, "%*c%s invalid_except_block[%d-%d]: %s failed!\n", p->level, ' ',
18551 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' expression ',' expressions ['as' NAME] ':'"));
18552 }
18553 { // 'except' expression ['as' NAME] &&':'
18554 if (p->error_indicator) {
18555 D(p->level--);
18556 return NULL;
18557 }
18558 D(fprintf(stderr, "%*c> invalid_except_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' expression ['as' NAME] &&':'"));
18559 Token * _keyword;
18560 Token * _literal;
18561 void *_opt_var;
18562 UNUSED(_opt_var); // Silence compiler warnings
18563 expr_ty expression_var;
18564 if (
18565 (_keyword = _PyPegen_expect_token(p, 521)) // token='except'
18566 &&
18567 (expression_var = expression_rule(p)) // expression
18568 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080018569 (_opt_var = _tmp_161_rule(p), 1) // ['as' NAME]
Pablo Galindo206cbda2021-02-07 18:42:21 +000018570 &&
18571 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
18572 )
18573 {
18574 D(fprintf(stderr, "%*c+ invalid_except_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' expression ['as' NAME] &&':'"));
18575 _res = _PyPegen_dummy_name(p, _keyword, expression_var, _opt_var, _literal);
18576 goto done;
18577 }
18578 p->mark = _mark;
18579 D(fprintf(stderr, "%*c%s invalid_except_block[%d-%d]: %s failed!\n", p->level, ' ',
18580 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' expression ['as' NAME] &&':'"));
18581 }
18582 { // 'except' &&':'
18583 if (p->error_indicator) {
18584 D(p->level--);
18585 return NULL;
18586 }
18587 D(fprintf(stderr, "%*c> invalid_except_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' &&':'"));
18588 Token * _keyword;
18589 Token * _literal;
18590 if (
18591 (_keyword = _PyPegen_expect_token(p, 521)) // token='except'
18592 &&
18593 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
18594 )
18595 {
18596 D(fprintf(stderr, "%*c+ invalid_except_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' &&':'"));
18597 _res = _PyPegen_dummy_name(p, _keyword, _literal);
18598 goto done;
18599 }
18600 p->mark = _mark;
18601 D(fprintf(stderr, "%*c%s invalid_except_block[%d-%d]: %s failed!\n", p->level, ' ',
18602 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' &&':'"));
18603 }
18604 _res = NULL;
18605 done:
18606 D(p->level--);
18607 return _res;
18608}
18609
Pablo Galindo08fb8ac2021-03-18 01:03:11 +000018610// invalid_match_stmt: "match" subject_expr !':'
18611static void *
18612invalid_match_stmt_rule(Parser *p)
18613{
18614 D(p->level++);
18615 if (p->error_indicator) {
18616 D(p->level--);
18617 return NULL;
18618 }
18619 void * _res = NULL;
18620 int _mark = p->mark;
18621 { // "match" subject_expr !':'
18622 if (p->error_indicator) {
18623 D(p->level--);
18624 return NULL;
18625 }
18626 D(fprintf(stderr, "%*c> invalid_match_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"match\" subject_expr !':'"));
18627 expr_ty _keyword;
18628 expr_ty subject_expr_var;
18629 if (
18630 (_keyword = _PyPegen_expect_soft_keyword(p, "match")) // soft_keyword='"match"'
18631 &&
18632 (subject_expr_var = subject_expr_rule(p)) // subject_expr
18633 &&
18634 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 11) // token=':'
18635 )
18636 {
18637 D(fprintf(stderr, "%*c+ invalid_match_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"match\" subject_expr !':'"));
18638 _res = CHECK_VERSION ( void * , 10 , "Pattern matching is" , RAISE_SYNTAX_ERROR ( "expected ':'" ) );
18639 if (_res == NULL && PyErr_Occurred()) {
18640 p->error_indicator = 1;
18641 D(p->level--);
18642 return NULL;
18643 }
18644 goto done;
18645 }
18646 p->mark = _mark;
18647 D(fprintf(stderr, "%*c%s invalid_match_stmt[%d-%d]: %s failed!\n", p->level, ' ',
18648 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"match\" subject_expr !':'"));
18649 }
18650 _res = NULL;
18651 done:
18652 D(p->level--);
18653 return _res;
18654}
18655
18656// invalid_case_block: "case" patterns guard? !':'
18657static void *
18658invalid_case_block_rule(Parser *p)
18659{
18660 D(p->level++);
18661 if (p->error_indicator) {
18662 D(p->level--);
18663 return NULL;
18664 }
18665 void * _res = NULL;
18666 int _mark = p->mark;
18667 { // "case" patterns guard? !':'
18668 if (p->error_indicator) {
18669 D(p->level--);
18670 return NULL;
18671 }
18672 D(fprintf(stderr, "%*c> invalid_case_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"case\" patterns guard? !':'"));
18673 expr_ty _keyword;
18674 void *_opt_var;
18675 UNUSED(_opt_var); // Silence compiler warnings
18676 expr_ty patterns_var;
18677 if (
18678 (_keyword = _PyPegen_expect_soft_keyword(p, "case")) // soft_keyword='"case"'
18679 &&
18680 (patterns_var = patterns_rule(p)) // patterns
18681 &&
18682 (_opt_var = guard_rule(p), 1) // guard?
18683 &&
18684 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 11) // token=':'
18685 )
18686 {
18687 D(fprintf(stderr, "%*c+ invalid_case_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"case\" patterns guard? !':'"));
18688 _res = RAISE_SYNTAX_ERROR ( "expected ':'" );
18689 if (_res == NULL && PyErr_Occurred()) {
18690 p->error_indicator = 1;
18691 D(p->level--);
18692 return NULL;
18693 }
18694 goto done;
18695 }
18696 p->mark = _mark;
18697 D(fprintf(stderr, "%*c%s invalid_case_block[%d-%d]: %s failed!\n", p->level, ' ',
18698 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"case\" patterns guard? !':'"));
18699 }
18700 _res = NULL;
18701 done:
18702 D(p->level--);
18703 return _res;
18704}
18705
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018706// _loop0_1: NEWLINE
18707static asdl_seq *
18708_loop0_1_rule(Parser *p)
18709{
18710 D(p->level++);
18711 if (p->error_indicator) {
18712 D(p->level--);
18713 return NULL;
18714 }
18715 void *_res = NULL;
18716 int _mark = p->mark;
18717 int _start_mark = p->mark;
18718 void **_children = PyMem_Malloc(sizeof(void *));
18719 if (!_children) {
18720 p->error_indicator = 1;
18721 PyErr_NoMemory();
18722 D(p->level--);
18723 return NULL;
18724 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010018725 Py_ssize_t _children_capacity = 1;
18726 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018727 { // NEWLINE
18728 if (p->error_indicator) {
18729 D(p->level--);
18730 return NULL;
18731 }
18732 D(fprintf(stderr, "%*c> _loop0_1[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
18733 Token * newline_var;
18734 while (
18735 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
18736 )
18737 {
18738 _res = newline_var;
18739 if (_n == _children_capacity) {
18740 _children_capacity *= 2;
18741 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18742 if (!_new_children) {
18743 p->error_indicator = 1;
18744 PyErr_NoMemory();
18745 D(p->level--);
18746 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000018747 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018748 _children = _new_children;
18749 }
18750 _children[_n++] = _res;
18751 _mark = p->mark;
18752 }
18753 p->mark = _mark;
18754 D(fprintf(stderr, "%*c%s _loop0_1[%d-%d]: %s failed!\n", p->level, ' ',
18755 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
18756 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010018757 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018758 if (!_seq) {
18759 PyMem_Free(_children);
18760 p->error_indicator = 1;
18761 PyErr_NoMemory();
18762 D(p->level--);
18763 return NULL;
18764 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010018765 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018766 PyMem_Free(_children);
18767 _PyPegen_insert_memo(p, _start_mark, _loop0_1_type, _seq);
18768 D(p->level--);
18769 return _seq;
18770}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000018771
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018772// _loop0_2: NEWLINE
18773static asdl_seq *
18774_loop0_2_rule(Parser *p)
18775{
18776 D(p->level++);
18777 if (p->error_indicator) {
18778 D(p->level--);
18779 return NULL;
18780 }
18781 void *_res = NULL;
18782 int _mark = p->mark;
18783 int _start_mark = p->mark;
18784 void **_children = PyMem_Malloc(sizeof(void *));
18785 if (!_children) {
18786 p->error_indicator = 1;
18787 PyErr_NoMemory();
18788 D(p->level--);
18789 return NULL;
18790 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010018791 Py_ssize_t _children_capacity = 1;
18792 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018793 { // NEWLINE
18794 if (p->error_indicator) {
18795 D(p->level--);
18796 return NULL;
18797 }
18798 D(fprintf(stderr, "%*c> _loop0_2[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
18799 Token * newline_var;
18800 while (
18801 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
18802 )
18803 {
18804 _res = newline_var;
18805 if (_n == _children_capacity) {
18806 _children_capacity *= 2;
18807 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18808 if (!_new_children) {
18809 p->error_indicator = 1;
18810 PyErr_NoMemory();
18811 D(p->level--);
18812 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000018813 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018814 _children = _new_children;
18815 }
18816 _children[_n++] = _res;
18817 _mark = p->mark;
18818 }
18819 p->mark = _mark;
18820 D(fprintf(stderr, "%*c%s _loop0_2[%d-%d]: %s failed!\n", p->level, ' ',
18821 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
18822 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010018823 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018824 if (!_seq) {
18825 PyMem_Free(_children);
18826 p->error_indicator = 1;
18827 PyErr_NoMemory();
18828 D(p->level--);
18829 return NULL;
18830 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010018831 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018832 PyMem_Free(_children);
18833 _PyPegen_insert_memo(p, _start_mark, _loop0_2_type, _seq);
18834 D(p->level--);
18835 return _seq;
18836}
18837
18838// _loop0_4: ',' expression
18839static asdl_seq *
18840_loop0_4_rule(Parser *p)
18841{
18842 D(p->level++);
18843 if (p->error_indicator) {
18844 D(p->level--);
18845 return NULL;
18846 }
18847 void *_res = NULL;
18848 int _mark = p->mark;
18849 int _start_mark = p->mark;
18850 void **_children = PyMem_Malloc(sizeof(void *));
18851 if (!_children) {
18852 p->error_indicator = 1;
18853 PyErr_NoMemory();
18854 D(p->level--);
18855 return NULL;
18856 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010018857 Py_ssize_t _children_capacity = 1;
18858 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018859 { // ',' expression
18860 if (p->error_indicator) {
18861 D(p->level--);
18862 return NULL;
18863 }
18864 D(fprintf(stderr, "%*c> _loop0_4[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
18865 Token * _literal;
18866 expr_ty elem;
18867 while (
18868 (_literal = _PyPegen_expect_token(p, 12)) // token=','
18869 &&
18870 (elem = expression_rule(p)) // expression
18871 )
18872 {
18873 _res = elem;
18874 if (_res == NULL && PyErr_Occurred()) {
18875 p->error_indicator = 1;
18876 PyMem_Free(_children);
18877 D(p->level--);
18878 return NULL;
18879 }
18880 if (_n == _children_capacity) {
18881 _children_capacity *= 2;
18882 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18883 if (!_new_children) {
18884 p->error_indicator = 1;
18885 PyErr_NoMemory();
18886 D(p->level--);
18887 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000018888 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018889 _children = _new_children;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000018890 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018891 _children[_n++] = _res;
18892 _mark = p->mark;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000018893 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018894 p->mark = _mark;
18895 D(fprintf(stderr, "%*c%s _loop0_4[%d-%d]: %s failed!\n", p->level, ' ',
18896 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000018897 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010018898 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018899 if (!_seq) {
18900 PyMem_Free(_children);
18901 p->error_indicator = 1;
18902 PyErr_NoMemory();
18903 D(p->level--);
18904 return NULL;
18905 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010018906 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018907 PyMem_Free(_children);
18908 _PyPegen_insert_memo(p, _start_mark, _loop0_4_type, _seq);
18909 D(p->level--);
18910 return _seq;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000018911}
18912
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018913// _gather_3: expression _loop0_4
18914static asdl_seq *
18915_gather_3_rule(Parser *p)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000018916{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018917 D(p->level++);
18918 if (p->error_indicator) {
18919 D(p->level--);
18920 return NULL;
18921 }
18922 asdl_seq * _res = NULL;
18923 int _mark = p->mark;
18924 { // expression _loop0_4
18925 if (p->error_indicator) {
18926 D(p->level--);
18927 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000018928 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018929 D(fprintf(stderr, "%*c> _gather_3[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_4"));
18930 expr_ty elem;
18931 asdl_seq * seq;
18932 if (
18933 (elem = expression_rule(p)) // expression
18934 &&
18935 (seq = _loop0_4_rule(p)) // _loop0_4
18936 )
18937 {
18938 D(fprintf(stderr, "%*c+ _gather_3[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_4"));
18939 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
18940 goto done;
18941 }
18942 p->mark = _mark;
18943 D(fprintf(stderr, "%*c%s _gather_3[%d-%d]: %s failed!\n", p->level, ' ',
18944 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_4"));
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000018945 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018946 _res = NULL;
18947 done:
18948 D(p->level--);
18949 return _res;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000018950}
18951
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018952// _loop0_6: ',' expression
18953static asdl_seq *
18954_loop0_6_rule(Parser *p)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000018955{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018956 D(p->level++);
18957 if (p->error_indicator) {
18958 D(p->level--);
18959 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000018960 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018961 void *_res = NULL;
18962 int _mark = p->mark;
18963 int _start_mark = p->mark;
18964 void **_children = PyMem_Malloc(sizeof(void *));
18965 if (!_children) {
18966 p->error_indicator = 1;
18967 PyErr_NoMemory();
18968 D(p->level--);
18969 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000018970 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010018971 Py_ssize_t _children_capacity = 1;
18972 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018973 { // ',' expression
18974 if (p->error_indicator) {
18975 D(p->level--);
18976 return NULL;
18977 }
18978 D(fprintf(stderr, "%*c> _loop0_6[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
18979 Token * _literal;
18980 expr_ty elem;
18981 while (
18982 (_literal = _PyPegen_expect_token(p, 12)) // token=','
18983 &&
18984 (elem = expression_rule(p)) // expression
18985 )
18986 {
18987 _res = elem;
18988 if (_res == NULL && PyErr_Occurred()) {
18989 p->error_indicator = 1;
18990 PyMem_Free(_children);
18991 D(p->level--);
18992 return NULL;
18993 }
18994 if (_n == _children_capacity) {
18995 _children_capacity *= 2;
18996 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18997 if (!_new_children) {
18998 p->error_indicator = 1;
18999 PyErr_NoMemory();
19000 D(p->level--);
19001 return NULL;
19002 }
19003 _children = _new_children;
19004 }
19005 _children[_n++] = _res;
19006 _mark = p->mark;
19007 }
19008 p->mark = _mark;
19009 D(fprintf(stderr, "%*c%s _loop0_6[%d-%d]: %s failed!\n", p->level, ' ',
19010 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
19011 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019012 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019013 if (!_seq) {
19014 PyMem_Free(_children);
19015 p->error_indicator = 1;
19016 PyErr_NoMemory();
19017 D(p->level--);
19018 return NULL;
19019 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019020 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019021 PyMem_Free(_children);
19022 _PyPegen_insert_memo(p, _start_mark, _loop0_6_type, _seq);
19023 D(p->level--);
19024 return _seq;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000019025}
19026
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019027// _gather_5: expression _loop0_6
19028static asdl_seq *
19029_gather_5_rule(Parser *p)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000019030{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019031 D(p->level++);
19032 if (p->error_indicator) {
19033 D(p->level--);
19034 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000019035 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019036 asdl_seq * _res = NULL;
19037 int _mark = p->mark;
19038 { // expression _loop0_6
19039 if (p->error_indicator) {
19040 D(p->level--);
19041 return NULL;
19042 }
19043 D(fprintf(stderr, "%*c> _gather_5[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_6"));
19044 expr_ty elem;
19045 asdl_seq * seq;
19046 if (
19047 (elem = expression_rule(p)) // expression
19048 &&
19049 (seq = _loop0_6_rule(p)) // _loop0_6
19050 )
19051 {
19052 D(fprintf(stderr, "%*c+ _gather_5[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_6"));
19053 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
19054 goto done;
19055 }
19056 p->mark = _mark;
19057 D(fprintf(stderr, "%*c%s _gather_5[%d-%d]: %s failed!\n", p->level, ' ',
19058 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_6"));
19059 }
19060 _res = NULL;
19061 done:
19062 D(p->level--);
19063 return _res;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000019064}
19065
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019066// _loop0_8: ',' expression
19067static asdl_seq *
19068_loop0_8_rule(Parser *p)
19069{
19070 D(p->level++);
19071 if (p->error_indicator) {
19072 D(p->level--);
19073 return NULL;
19074 }
19075 void *_res = NULL;
19076 int _mark = p->mark;
19077 int _start_mark = p->mark;
19078 void **_children = PyMem_Malloc(sizeof(void *));
19079 if (!_children) {
19080 p->error_indicator = 1;
19081 PyErr_NoMemory();
19082 D(p->level--);
19083 return NULL;
19084 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010019085 Py_ssize_t _children_capacity = 1;
19086 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019087 { // ',' expression
19088 if (p->error_indicator) {
19089 D(p->level--);
19090 return NULL;
19091 }
19092 D(fprintf(stderr, "%*c> _loop0_8[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
19093 Token * _literal;
19094 expr_ty elem;
19095 while (
19096 (_literal = _PyPegen_expect_token(p, 12)) // token=','
19097 &&
19098 (elem = expression_rule(p)) // expression
19099 )
19100 {
19101 _res = elem;
19102 if (_res == NULL && PyErr_Occurred()) {
19103 p->error_indicator = 1;
19104 PyMem_Free(_children);
19105 D(p->level--);
19106 return NULL;
19107 }
19108 if (_n == _children_capacity) {
19109 _children_capacity *= 2;
19110 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19111 if (!_new_children) {
19112 p->error_indicator = 1;
19113 PyErr_NoMemory();
19114 D(p->level--);
19115 return NULL;
19116 }
19117 _children = _new_children;
19118 }
19119 _children[_n++] = _res;
19120 _mark = p->mark;
19121 }
19122 p->mark = _mark;
19123 D(fprintf(stderr, "%*c%s _loop0_8[%d-%d]: %s failed!\n", p->level, ' ',
19124 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
19125 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019126 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019127 if (!_seq) {
19128 PyMem_Free(_children);
19129 p->error_indicator = 1;
19130 PyErr_NoMemory();
19131 D(p->level--);
19132 return NULL;
19133 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019134 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019135 PyMem_Free(_children);
19136 _PyPegen_insert_memo(p, _start_mark, _loop0_8_type, _seq);
19137 D(p->level--);
19138 return _seq;
19139}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000019140
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019141// _gather_7: expression _loop0_8
19142static asdl_seq *
19143_gather_7_rule(Parser *p)
19144{
19145 D(p->level++);
19146 if (p->error_indicator) {
19147 D(p->level--);
19148 return NULL;
19149 }
19150 asdl_seq * _res = NULL;
19151 int _mark = p->mark;
19152 { // expression _loop0_8
19153 if (p->error_indicator) {
19154 D(p->level--);
19155 return NULL;
19156 }
19157 D(fprintf(stderr, "%*c> _gather_7[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_8"));
19158 expr_ty elem;
19159 asdl_seq * seq;
19160 if (
19161 (elem = expression_rule(p)) // expression
19162 &&
19163 (seq = _loop0_8_rule(p)) // _loop0_8
19164 )
19165 {
19166 D(fprintf(stderr, "%*c+ _gather_7[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_8"));
19167 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
19168 goto done;
19169 }
19170 p->mark = _mark;
19171 D(fprintf(stderr, "%*c%s _gather_7[%d-%d]: %s failed!\n", p->level, ' ',
19172 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_8"));
19173 }
19174 _res = NULL;
19175 done:
19176 D(p->level--);
19177 return _res;
19178}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000019179
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019180// _loop0_10: ',' expression
19181static asdl_seq *
19182_loop0_10_rule(Parser *p)
19183{
19184 D(p->level++);
19185 if (p->error_indicator) {
19186 D(p->level--);
19187 return NULL;
19188 }
19189 void *_res = NULL;
19190 int _mark = p->mark;
19191 int _start_mark = p->mark;
19192 void **_children = PyMem_Malloc(sizeof(void *));
19193 if (!_children) {
19194 p->error_indicator = 1;
19195 PyErr_NoMemory();
19196 D(p->level--);
19197 return NULL;
19198 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010019199 Py_ssize_t _children_capacity = 1;
19200 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019201 { // ',' expression
19202 if (p->error_indicator) {
19203 D(p->level--);
19204 return NULL;
19205 }
19206 D(fprintf(stderr, "%*c> _loop0_10[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
19207 Token * _literal;
19208 expr_ty elem;
19209 while (
19210 (_literal = _PyPegen_expect_token(p, 12)) // token=','
19211 &&
19212 (elem = expression_rule(p)) // expression
19213 )
19214 {
19215 _res = elem;
19216 if (_res == NULL && PyErr_Occurred()) {
19217 p->error_indicator = 1;
19218 PyMem_Free(_children);
19219 D(p->level--);
19220 return NULL;
19221 }
19222 if (_n == _children_capacity) {
19223 _children_capacity *= 2;
19224 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19225 if (!_new_children) {
19226 p->error_indicator = 1;
19227 PyErr_NoMemory();
19228 D(p->level--);
19229 return NULL;
19230 }
19231 _children = _new_children;
19232 }
19233 _children[_n++] = _res;
19234 _mark = p->mark;
19235 }
19236 p->mark = _mark;
19237 D(fprintf(stderr, "%*c%s _loop0_10[%d-%d]: %s failed!\n", p->level, ' ',
19238 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
19239 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019240 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019241 if (!_seq) {
19242 PyMem_Free(_children);
19243 p->error_indicator = 1;
19244 PyErr_NoMemory();
19245 D(p->level--);
19246 return NULL;
19247 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019248 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019249 PyMem_Free(_children);
19250 _PyPegen_insert_memo(p, _start_mark, _loop0_10_type, _seq);
19251 D(p->level--);
19252 return _seq;
19253}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000019254
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019255// _gather_9: expression _loop0_10
19256static asdl_seq *
19257_gather_9_rule(Parser *p)
19258{
19259 D(p->level++);
19260 if (p->error_indicator) {
19261 D(p->level--);
19262 return NULL;
19263 }
19264 asdl_seq * _res = NULL;
19265 int _mark = p->mark;
19266 { // expression _loop0_10
19267 if (p->error_indicator) {
19268 D(p->level--);
19269 return NULL;
19270 }
19271 D(fprintf(stderr, "%*c> _gather_9[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_10"));
19272 expr_ty elem;
19273 asdl_seq * seq;
19274 if (
19275 (elem = expression_rule(p)) // expression
19276 &&
19277 (seq = _loop0_10_rule(p)) // _loop0_10
19278 )
19279 {
19280 D(fprintf(stderr, "%*c+ _gather_9[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_10"));
19281 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
19282 goto done;
19283 }
19284 p->mark = _mark;
19285 D(fprintf(stderr, "%*c%s _gather_9[%d-%d]: %s failed!\n", p->level, ' ',
19286 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_10"));
19287 }
19288 _res = NULL;
19289 done:
19290 D(p->level--);
19291 return _res;
19292}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000019293
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019294// _loop1_11: statement
19295static asdl_seq *
19296_loop1_11_rule(Parser *p)
19297{
19298 D(p->level++);
19299 if (p->error_indicator) {
19300 D(p->level--);
19301 return NULL;
19302 }
19303 void *_res = NULL;
19304 int _mark = p->mark;
19305 int _start_mark = p->mark;
19306 void **_children = PyMem_Malloc(sizeof(void *));
19307 if (!_children) {
19308 p->error_indicator = 1;
19309 PyErr_NoMemory();
19310 D(p->level--);
19311 return NULL;
19312 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010019313 Py_ssize_t _children_capacity = 1;
19314 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019315 { // statement
19316 if (p->error_indicator) {
19317 D(p->level--);
19318 return NULL;
19319 }
19320 D(fprintf(stderr, "%*c> _loop1_11[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statement"));
Pablo Galindoa5634c42020-09-16 19:42:00 +010019321 asdl_stmt_seq* statement_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019322 while (
19323 (statement_var = statement_rule(p)) // statement
19324 )
19325 {
19326 _res = statement_var;
19327 if (_n == _children_capacity) {
19328 _children_capacity *= 2;
19329 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19330 if (!_new_children) {
19331 p->error_indicator = 1;
19332 PyErr_NoMemory();
19333 D(p->level--);
19334 return NULL;
19335 }
19336 _children = _new_children;
19337 }
19338 _children[_n++] = _res;
19339 _mark = p->mark;
19340 }
19341 p->mark = _mark;
19342 D(fprintf(stderr, "%*c%s _loop1_11[%d-%d]: %s failed!\n", p->level, ' ',
19343 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statement"));
19344 }
19345 if (_n == 0 || p->error_indicator) {
19346 PyMem_Free(_children);
19347 D(p->level--);
19348 return NULL;
19349 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019350 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019351 if (!_seq) {
19352 PyMem_Free(_children);
19353 p->error_indicator = 1;
19354 PyErr_NoMemory();
19355 D(p->level--);
19356 return NULL;
19357 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019358 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019359 PyMem_Free(_children);
19360 _PyPegen_insert_memo(p, _start_mark, _loop1_11_type, _seq);
19361 D(p->level--);
19362 return _seq;
19363}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000019364
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000019365// _loop0_13: ';' simple_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019366static asdl_seq *
19367_loop0_13_rule(Parser *p)
19368{
19369 D(p->level++);
19370 if (p->error_indicator) {
19371 D(p->level--);
19372 return NULL;
19373 }
19374 void *_res = NULL;
19375 int _mark = p->mark;
19376 int _start_mark = p->mark;
19377 void **_children = PyMem_Malloc(sizeof(void *));
19378 if (!_children) {
19379 p->error_indicator = 1;
19380 PyErr_NoMemory();
19381 D(p->level--);
19382 return NULL;
19383 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010019384 Py_ssize_t _children_capacity = 1;
19385 Py_ssize_t _n = 0;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000019386 { // ';' simple_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019387 if (p->error_indicator) {
19388 D(p->level--);
19389 return NULL;
19390 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000019391 D(fprintf(stderr, "%*c> _loop0_13[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "';' simple_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019392 Token * _literal;
19393 stmt_ty elem;
19394 while (
19395 (_literal = _PyPegen_expect_token(p, 13)) // token=';'
19396 &&
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000019397 (elem = simple_stmt_rule(p)) // simple_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019398 )
19399 {
19400 _res = elem;
19401 if (_res == NULL && PyErr_Occurred()) {
19402 p->error_indicator = 1;
19403 PyMem_Free(_children);
19404 D(p->level--);
19405 return NULL;
19406 }
19407 if (_n == _children_capacity) {
19408 _children_capacity *= 2;
19409 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19410 if (!_new_children) {
19411 p->error_indicator = 1;
19412 PyErr_NoMemory();
19413 D(p->level--);
19414 return NULL;
19415 }
19416 _children = _new_children;
19417 }
19418 _children[_n++] = _res;
19419 _mark = p->mark;
19420 }
19421 p->mark = _mark;
19422 D(fprintf(stderr, "%*c%s _loop0_13[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000019423 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "';' simple_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019424 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019425 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019426 if (!_seq) {
19427 PyMem_Free(_children);
19428 p->error_indicator = 1;
19429 PyErr_NoMemory();
19430 D(p->level--);
19431 return NULL;
19432 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019433 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019434 PyMem_Free(_children);
19435 _PyPegen_insert_memo(p, _start_mark, _loop0_13_type, _seq);
19436 D(p->level--);
19437 return _seq;
19438}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000019439
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000019440// _gather_12: simple_stmt _loop0_13
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019441static asdl_seq *
19442_gather_12_rule(Parser *p)
19443{
19444 D(p->level++);
19445 if (p->error_indicator) {
19446 D(p->level--);
19447 return NULL;
19448 }
19449 asdl_seq * _res = NULL;
19450 int _mark = p->mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000019451 { // simple_stmt _loop0_13
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019452 if (p->error_indicator) {
19453 D(p->level--);
19454 return NULL;
19455 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000019456 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 +010019457 stmt_ty elem;
19458 asdl_seq * seq;
19459 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000019460 (elem = simple_stmt_rule(p)) // simple_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019461 &&
19462 (seq = _loop0_13_rule(p)) // _loop0_13
19463 )
19464 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000019465 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 +010019466 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
19467 goto done;
19468 }
19469 p->mark = _mark;
19470 D(fprintf(stderr, "%*c%s _gather_12[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000019471 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmt _loop0_13"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019472 }
19473 _res = NULL;
19474 done:
19475 D(p->level--);
19476 return _res;
19477}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000019478
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019479// _tmp_14: 'import' | 'from'
19480static void *
19481_tmp_14_rule(Parser *p)
19482{
19483 D(p->level++);
19484 if (p->error_indicator) {
19485 D(p->level--);
19486 return NULL;
19487 }
19488 void * _res = NULL;
19489 int _mark = p->mark;
19490 { // 'import'
19491 if (p->error_indicator) {
19492 D(p->level--);
19493 return NULL;
19494 }
19495 D(fprintf(stderr, "%*c> _tmp_14[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'import'"));
19496 Token * _keyword;
19497 if (
19498 (_keyword = _PyPegen_expect_token(p, 513)) // token='import'
19499 )
19500 {
19501 D(fprintf(stderr, "%*c+ _tmp_14[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'import'"));
19502 _res = _keyword;
19503 goto done;
19504 }
19505 p->mark = _mark;
19506 D(fprintf(stderr, "%*c%s _tmp_14[%d-%d]: %s failed!\n", p->level, ' ',
19507 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'import'"));
19508 }
19509 { // 'from'
19510 if (p->error_indicator) {
19511 D(p->level--);
19512 return NULL;
19513 }
19514 D(fprintf(stderr, "%*c> _tmp_14[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from'"));
19515 Token * _keyword;
19516 if (
19517 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
19518 )
19519 {
19520 D(fprintf(stderr, "%*c+ _tmp_14[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'from'"));
19521 _res = _keyword;
19522 goto done;
19523 }
19524 p->mark = _mark;
19525 D(fprintf(stderr, "%*c%s _tmp_14[%d-%d]: %s failed!\n", p->level, ' ',
19526 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from'"));
19527 }
19528 _res = NULL;
19529 done:
19530 D(p->level--);
19531 return _res;
19532}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000019533
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019534// _tmp_15: 'def' | '@' | ASYNC
19535static void *
19536_tmp_15_rule(Parser *p)
19537{
19538 D(p->level++);
19539 if (p->error_indicator) {
19540 D(p->level--);
19541 return NULL;
19542 }
19543 void * _res = NULL;
19544 int _mark = p->mark;
19545 { // 'def'
19546 if (p->error_indicator) {
19547 D(p->level--);
19548 return NULL;
19549 }
19550 D(fprintf(stderr, "%*c> _tmp_15[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'def'"));
19551 Token * _keyword;
19552 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080019553 (_keyword = _PyPegen_expect_token(p, 526)) // token='def'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019554 )
19555 {
19556 D(fprintf(stderr, "%*c+ _tmp_15[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'def'"));
19557 _res = _keyword;
19558 goto done;
19559 }
19560 p->mark = _mark;
19561 D(fprintf(stderr, "%*c%s _tmp_15[%d-%d]: %s failed!\n", p->level, ' ',
19562 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'def'"));
19563 }
19564 { // '@'
19565 if (p->error_indicator) {
19566 D(p->level--);
19567 return NULL;
19568 }
19569 D(fprintf(stderr, "%*c> _tmp_15[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@'"));
19570 Token * _literal;
19571 if (
19572 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
19573 )
19574 {
19575 D(fprintf(stderr, "%*c+ _tmp_15[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@'"));
19576 _res = _literal;
19577 goto done;
19578 }
19579 p->mark = _mark;
19580 D(fprintf(stderr, "%*c%s _tmp_15[%d-%d]: %s failed!\n", p->level, ' ',
19581 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@'"));
19582 }
19583 { // ASYNC
19584 if (p->error_indicator) {
19585 D(p->level--);
19586 return NULL;
19587 }
19588 D(fprintf(stderr, "%*c> _tmp_15[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC"));
19589 Token * async_var;
19590 if (
19591 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
19592 )
19593 {
19594 D(fprintf(stderr, "%*c+ _tmp_15[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC"));
19595 _res = async_var;
19596 goto done;
19597 }
19598 p->mark = _mark;
19599 D(fprintf(stderr, "%*c%s _tmp_15[%d-%d]: %s failed!\n", p->level, ' ',
19600 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC"));
19601 }
19602 _res = NULL;
19603 done:
19604 D(p->level--);
19605 return _res;
19606}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000019607
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019608// _tmp_16: 'class' | '@'
19609static void *
19610_tmp_16_rule(Parser *p)
19611{
19612 D(p->level++);
19613 if (p->error_indicator) {
19614 D(p->level--);
19615 return NULL;
19616 }
19617 void * _res = NULL;
19618 int _mark = p->mark;
19619 { // 'class'
19620 if (p->error_indicator) {
19621 D(p->level--);
19622 return NULL;
19623 }
19624 D(fprintf(stderr, "%*c> _tmp_16[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'class'"));
19625 Token * _keyword;
19626 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080019627 (_keyword = _PyPegen_expect_token(p, 527)) // token='class'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019628 )
19629 {
19630 D(fprintf(stderr, "%*c+ _tmp_16[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'class'"));
19631 _res = _keyword;
19632 goto done;
19633 }
19634 p->mark = _mark;
19635 D(fprintf(stderr, "%*c%s _tmp_16[%d-%d]: %s failed!\n", p->level, ' ',
19636 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'class'"));
19637 }
19638 { // '@'
19639 if (p->error_indicator) {
19640 D(p->level--);
19641 return NULL;
19642 }
19643 D(fprintf(stderr, "%*c> _tmp_16[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@'"));
19644 Token * _literal;
19645 if (
19646 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
19647 )
19648 {
19649 D(fprintf(stderr, "%*c+ _tmp_16[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@'"));
19650 _res = _literal;
19651 goto done;
19652 }
19653 p->mark = _mark;
19654 D(fprintf(stderr, "%*c%s _tmp_16[%d-%d]: %s failed!\n", p->level, ' ',
19655 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@'"));
19656 }
19657 _res = NULL;
19658 done:
19659 D(p->level--);
19660 return _res;
19661}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000019662
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019663// _tmp_17: 'with' | ASYNC
19664static void *
19665_tmp_17_rule(Parser *p)
19666{
19667 D(p->level++);
19668 if (p->error_indicator) {
19669 D(p->level--);
19670 return NULL;
19671 }
19672 void * _res = NULL;
19673 int _mark = p->mark;
19674 { // 'with'
19675 if (p->error_indicator) {
19676 D(p->level--);
19677 return NULL;
19678 }
19679 D(fprintf(stderr, "%*c> _tmp_17[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'with'"));
19680 Token * _keyword;
19681 if (
19682 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
19683 )
19684 {
19685 D(fprintf(stderr, "%*c+ _tmp_17[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'with'"));
19686 _res = _keyword;
19687 goto done;
19688 }
19689 p->mark = _mark;
19690 D(fprintf(stderr, "%*c%s _tmp_17[%d-%d]: %s failed!\n", p->level, ' ',
19691 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'with'"));
19692 }
19693 { // ASYNC
19694 if (p->error_indicator) {
19695 D(p->level--);
19696 return NULL;
19697 }
19698 D(fprintf(stderr, "%*c> _tmp_17[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC"));
19699 Token * async_var;
19700 if (
19701 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
19702 )
19703 {
19704 D(fprintf(stderr, "%*c+ _tmp_17[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC"));
19705 _res = async_var;
19706 goto done;
19707 }
19708 p->mark = _mark;
19709 D(fprintf(stderr, "%*c%s _tmp_17[%d-%d]: %s failed!\n", p->level, ' ',
19710 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC"));
19711 }
19712 _res = NULL;
19713 done:
19714 D(p->level--);
19715 return _res;
19716}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000019717
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019718// _tmp_18: 'for' | ASYNC
19719static void *
19720_tmp_18_rule(Parser *p)
19721{
19722 D(p->level++);
19723 if (p->error_indicator) {
19724 D(p->level--);
19725 return NULL;
19726 }
19727 void * _res = NULL;
19728 int _mark = p->mark;
19729 { // 'for'
19730 if (p->error_indicator) {
19731 D(p->level--);
19732 return NULL;
19733 }
19734 D(fprintf(stderr, "%*c> _tmp_18[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'for'"));
19735 Token * _keyword;
19736 if (
19737 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
19738 )
19739 {
19740 D(fprintf(stderr, "%*c+ _tmp_18[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'for'"));
19741 _res = _keyword;
19742 goto done;
19743 }
19744 p->mark = _mark;
19745 D(fprintf(stderr, "%*c%s _tmp_18[%d-%d]: %s failed!\n", p->level, ' ',
19746 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'for'"));
19747 }
19748 { // ASYNC
19749 if (p->error_indicator) {
19750 D(p->level--);
19751 return NULL;
19752 }
19753 D(fprintf(stderr, "%*c> _tmp_18[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC"));
19754 Token * async_var;
19755 if (
19756 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
19757 )
19758 {
19759 D(fprintf(stderr, "%*c+ _tmp_18[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC"));
19760 _res = async_var;
19761 goto done;
19762 }
19763 p->mark = _mark;
19764 D(fprintf(stderr, "%*c%s _tmp_18[%d-%d]: %s failed!\n", p->level, ' ',
19765 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC"));
19766 }
19767 _res = NULL;
19768 done:
19769 D(p->level--);
19770 return _res;
19771}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000019772
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019773// _tmp_19: '=' annotated_rhs
19774static void *
19775_tmp_19_rule(Parser *p)
19776{
19777 D(p->level++);
19778 if (p->error_indicator) {
19779 D(p->level--);
19780 return NULL;
19781 }
19782 void * _res = NULL;
19783 int _mark = p->mark;
19784 { // '=' annotated_rhs
19785 if (p->error_indicator) {
19786 D(p->level--);
19787 return NULL;
19788 }
19789 D(fprintf(stderr, "%*c> _tmp_19[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
19790 Token * _literal;
19791 expr_ty d;
19792 if (
19793 (_literal = _PyPegen_expect_token(p, 22)) // token='='
19794 &&
19795 (d = annotated_rhs_rule(p)) // annotated_rhs
19796 )
19797 {
19798 D(fprintf(stderr, "%*c+ _tmp_19[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
19799 _res = d;
19800 if (_res == NULL && PyErr_Occurred()) {
19801 p->error_indicator = 1;
19802 D(p->level--);
19803 return NULL;
19804 }
19805 goto done;
19806 }
19807 p->mark = _mark;
19808 D(fprintf(stderr, "%*c%s _tmp_19[%d-%d]: %s failed!\n", p->level, ' ',
19809 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'=' annotated_rhs"));
19810 }
19811 _res = NULL;
19812 done:
19813 D(p->level--);
19814 return _res;
19815}
19816
19817// _tmp_20: '(' single_target ')' | single_subscript_attribute_target
19818static void *
19819_tmp_20_rule(Parser *p)
19820{
19821 D(p->level++);
19822 if (p->error_indicator) {
19823 D(p->level--);
19824 return NULL;
19825 }
19826 void * _res = NULL;
19827 int _mark = p->mark;
19828 { // '(' single_target ')'
19829 if (p->error_indicator) {
19830 D(p->level--);
19831 return NULL;
19832 }
19833 D(fprintf(stderr, "%*c> _tmp_20[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
19834 Token * _literal;
19835 Token * _literal_1;
19836 expr_ty b;
19837 if (
19838 (_literal = _PyPegen_expect_token(p, 7)) // token='('
19839 &&
19840 (b = single_target_rule(p)) // single_target
19841 &&
19842 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
19843 )
19844 {
19845 D(fprintf(stderr, "%*c+ _tmp_20[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
19846 _res = b;
19847 if (_res == NULL && PyErr_Occurred()) {
19848 p->error_indicator = 1;
19849 D(p->level--);
19850 return NULL;
19851 }
19852 goto done;
19853 }
19854 p->mark = _mark;
19855 D(fprintf(stderr, "%*c%s _tmp_20[%d-%d]: %s failed!\n", p->level, ' ',
19856 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' single_target ')'"));
19857 }
19858 { // single_subscript_attribute_target
19859 if (p->error_indicator) {
19860 D(p->level--);
19861 return NULL;
19862 }
19863 D(fprintf(stderr, "%*c> _tmp_20[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "single_subscript_attribute_target"));
19864 expr_ty single_subscript_attribute_target_var;
19865 if (
19866 (single_subscript_attribute_target_var = single_subscript_attribute_target_rule(p)) // single_subscript_attribute_target
19867 )
19868 {
19869 D(fprintf(stderr, "%*c+ _tmp_20[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "single_subscript_attribute_target"));
19870 _res = single_subscript_attribute_target_var;
19871 goto done;
19872 }
19873 p->mark = _mark;
19874 D(fprintf(stderr, "%*c%s _tmp_20[%d-%d]: %s failed!\n", p->level, ' ',
19875 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "single_subscript_attribute_target"));
19876 }
19877 _res = NULL;
19878 done:
19879 D(p->level--);
19880 return _res;
19881}
19882
19883// _tmp_21: '=' annotated_rhs
19884static void *
19885_tmp_21_rule(Parser *p)
19886{
19887 D(p->level++);
19888 if (p->error_indicator) {
19889 D(p->level--);
19890 return NULL;
19891 }
19892 void * _res = NULL;
19893 int _mark = p->mark;
19894 { // '=' annotated_rhs
19895 if (p->error_indicator) {
19896 D(p->level--);
19897 return NULL;
19898 }
19899 D(fprintf(stderr, "%*c> _tmp_21[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
19900 Token * _literal;
19901 expr_ty d;
19902 if (
19903 (_literal = _PyPegen_expect_token(p, 22)) // token='='
19904 &&
19905 (d = annotated_rhs_rule(p)) // annotated_rhs
19906 )
19907 {
19908 D(fprintf(stderr, "%*c+ _tmp_21[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
19909 _res = d;
19910 if (_res == NULL && PyErr_Occurred()) {
19911 p->error_indicator = 1;
19912 D(p->level--);
19913 return NULL;
19914 }
19915 goto done;
19916 }
19917 p->mark = _mark;
19918 D(fprintf(stderr, "%*c%s _tmp_21[%d-%d]: %s failed!\n", p->level, ' ',
19919 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'=' annotated_rhs"));
19920 }
19921 _res = NULL;
19922 done:
19923 D(p->level--);
19924 return _res;
19925}
19926
19927// _loop1_22: (star_targets '=')
19928static asdl_seq *
19929_loop1_22_rule(Parser *p)
19930{
19931 D(p->level++);
19932 if (p->error_indicator) {
19933 D(p->level--);
19934 return NULL;
19935 }
19936 void *_res = NULL;
19937 int _mark = p->mark;
19938 int _start_mark = p->mark;
19939 void **_children = PyMem_Malloc(sizeof(void *));
19940 if (!_children) {
19941 p->error_indicator = 1;
19942 PyErr_NoMemory();
19943 D(p->level--);
19944 return NULL;
19945 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010019946 Py_ssize_t _children_capacity = 1;
19947 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019948 { // (star_targets '=')
19949 if (p->error_indicator) {
19950 D(p->level--);
19951 return NULL;
19952 }
19953 D(fprintf(stderr, "%*c> _loop1_22[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')"));
Brandt Bucher145bf262021-02-26 14:51:55 -080019954 void *_tmp_162_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019955 while (
Brandt Bucher145bf262021-02-26 14:51:55 -080019956 (_tmp_162_var = _tmp_162_rule(p)) // star_targets '='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019957 )
19958 {
Brandt Bucher145bf262021-02-26 14:51:55 -080019959 _res = _tmp_162_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019960 if (_n == _children_capacity) {
19961 _children_capacity *= 2;
19962 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19963 if (!_new_children) {
19964 p->error_indicator = 1;
19965 PyErr_NoMemory();
19966 D(p->level--);
19967 return NULL;
19968 }
19969 _children = _new_children;
19970 }
19971 _children[_n++] = _res;
19972 _mark = p->mark;
19973 }
19974 p->mark = _mark;
19975 D(fprintf(stderr, "%*c%s _loop1_22[%d-%d]: %s failed!\n", p->level, ' ',
19976 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(star_targets '=')"));
19977 }
19978 if (_n == 0 || p->error_indicator) {
19979 PyMem_Free(_children);
19980 D(p->level--);
19981 return NULL;
19982 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019983 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019984 if (!_seq) {
19985 PyMem_Free(_children);
19986 p->error_indicator = 1;
19987 PyErr_NoMemory();
19988 D(p->level--);
19989 return NULL;
19990 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019991 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019992 PyMem_Free(_children);
19993 _PyPegen_insert_memo(p, _start_mark, _loop1_22_type, _seq);
19994 D(p->level--);
19995 return _seq;
19996}
19997
19998// _tmp_23: yield_expr | star_expressions
19999static void *
20000_tmp_23_rule(Parser *p)
20001{
20002 D(p->level++);
20003 if (p->error_indicator) {
20004 D(p->level--);
20005 return NULL;
20006 }
20007 void * _res = NULL;
20008 int _mark = p->mark;
20009 { // yield_expr
20010 if (p->error_indicator) {
20011 D(p->level--);
20012 return NULL;
20013 }
20014 D(fprintf(stderr, "%*c> _tmp_23[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
20015 expr_ty yield_expr_var;
20016 if (
20017 (yield_expr_var = yield_expr_rule(p)) // yield_expr
20018 )
20019 {
20020 D(fprintf(stderr, "%*c+ _tmp_23[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
20021 _res = yield_expr_var;
20022 goto done;
20023 }
20024 p->mark = _mark;
20025 D(fprintf(stderr, "%*c%s _tmp_23[%d-%d]: %s failed!\n", p->level, ' ',
20026 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
20027 }
20028 { // star_expressions
20029 if (p->error_indicator) {
20030 D(p->level--);
20031 return NULL;
20032 }
20033 D(fprintf(stderr, "%*c> _tmp_23[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
20034 expr_ty star_expressions_var;
20035 if (
20036 (star_expressions_var = star_expressions_rule(p)) // star_expressions
20037 )
20038 {
20039 D(fprintf(stderr, "%*c+ _tmp_23[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
20040 _res = star_expressions_var;
20041 goto done;
20042 }
20043 p->mark = _mark;
20044 D(fprintf(stderr, "%*c%s _tmp_23[%d-%d]: %s failed!\n", p->level, ' ',
20045 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
20046 }
20047 _res = NULL;
20048 done:
20049 D(p->level--);
20050 return _res;
20051}
20052
20053// _tmp_24: yield_expr | star_expressions
20054static void *
20055_tmp_24_rule(Parser *p)
20056{
20057 D(p->level++);
20058 if (p->error_indicator) {
20059 D(p->level--);
20060 return NULL;
20061 }
20062 void * _res = NULL;
20063 int _mark = p->mark;
20064 { // yield_expr
20065 if (p->error_indicator) {
20066 D(p->level--);
20067 return NULL;
20068 }
20069 D(fprintf(stderr, "%*c> _tmp_24[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
20070 expr_ty yield_expr_var;
20071 if (
20072 (yield_expr_var = yield_expr_rule(p)) // yield_expr
20073 )
20074 {
20075 D(fprintf(stderr, "%*c+ _tmp_24[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
20076 _res = yield_expr_var;
20077 goto done;
20078 }
20079 p->mark = _mark;
20080 D(fprintf(stderr, "%*c%s _tmp_24[%d-%d]: %s failed!\n", p->level, ' ',
20081 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
20082 }
20083 { // star_expressions
20084 if (p->error_indicator) {
20085 D(p->level--);
20086 return NULL;
20087 }
20088 D(fprintf(stderr, "%*c> _tmp_24[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
20089 expr_ty star_expressions_var;
20090 if (
20091 (star_expressions_var = star_expressions_rule(p)) // star_expressions
20092 )
20093 {
20094 D(fprintf(stderr, "%*c+ _tmp_24[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
20095 _res = star_expressions_var;
20096 goto done;
20097 }
20098 p->mark = _mark;
20099 D(fprintf(stderr, "%*c%s _tmp_24[%d-%d]: %s failed!\n", p->level, ' ',
20100 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
20101 }
20102 _res = NULL;
20103 done:
20104 D(p->level--);
20105 return _res;
20106}
20107
20108// _loop0_26: ',' NAME
20109static asdl_seq *
20110_loop0_26_rule(Parser *p)
20111{
20112 D(p->level++);
20113 if (p->error_indicator) {
20114 D(p->level--);
20115 return NULL;
20116 }
20117 void *_res = NULL;
20118 int _mark = p->mark;
20119 int _start_mark = p->mark;
20120 void **_children = PyMem_Malloc(sizeof(void *));
20121 if (!_children) {
20122 p->error_indicator = 1;
20123 PyErr_NoMemory();
20124 D(p->level--);
20125 return NULL;
20126 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010020127 Py_ssize_t _children_capacity = 1;
20128 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020129 { // ',' NAME
20130 if (p->error_indicator) {
20131 D(p->level--);
20132 return NULL;
20133 }
20134 D(fprintf(stderr, "%*c> _loop0_26[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' NAME"));
20135 Token * _literal;
20136 expr_ty elem;
20137 while (
20138 (_literal = _PyPegen_expect_token(p, 12)) // token=','
20139 &&
20140 (elem = _PyPegen_name_token(p)) // NAME
20141 )
20142 {
20143 _res = elem;
20144 if (_res == NULL && PyErr_Occurred()) {
20145 p->error_indicator = 1;
20146 PyMem_Free(_children);
20147 D(p->level--);
20148 return NULL;
20149 }
20150 if (_n == _children_capacity) {
20151 _children_capacity *= 2;
20152 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20153 if (!_new_children) {
20154 p->error_indicator = 1;
20155 PyErr_NoMemory();
20156 D(p->level--);
20157 return NULL;
20158 }
20159 _children = _new_children;
20160 }
20161 _children[_n++] = _res;
20162 _mark = p->mark;
20163 }
20164 p->mark = _mark;
20165 D(fprintf(stderr, "%*c%s _loop0_26[%d-%d]: %s failed!\n", p->level, ' ',
20166 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' NAME"));
20167 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020168 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020169 if (!_seq) {
20170 PyMem_Free(_children);
20171 p->error_indicator = 1;
20172 PyErr_NoMemory();
20173 D(p->level--);
20174 return NULL;
20175 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020176 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020177 PyMem_Free(_children);
20178 _PyPegen_insert_memo(p, _start_mark, _loop0_26_type, _seq);
20179 D(p->level--);
20180 return _seq;
20181}
20182
20183// _gather_25: NAME _loop0_26
20184static asdl_seq *
20185_gather_25_rule(Parser *p)
20186{
20187 D(p->level++);
20188 if (p->error_indicator) {
20189 D(p->level--);
20190 return NULL;
20191 }
20192 asdl_seq * _res = NULL;
20193 int _mark = p->mark;
20194 { // NAME _loop0_26
20195 if (p->error_indicator) {
20196 D(p->level--);
20197 return NULL;
20198 }
20199 D(fprintf(stderr, "%*c> _gather_25[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME _loop0_26"));
20200 expr_ty elem;
20201 asdl_seq * seq;
20202 if (
20203 (elem = _PyPegen_name_token(p)) // NAME
20204 &&
20205 (seq = _loop0_26_rule(p)) // _loop0_26
20206 )
20207 {
20208 D(fprintf(stderr, "%*c+ _gather_25[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME _loop0_26"));
20209 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
20210 goto done;
20211 }
20212 p->mark = _mark;
20213 D(fprintf(stderr, "%*c%s _gather_25[%d-%d]: %s failed!\n", p->level, ' ',
20214 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME _loop0_26"));
20215 }
20216 _res = NULL;
20217 done:
20218 D(p->level--);
20219 return _res;
20220}
20221
20222// _loop0_28: ',' NAME
20223static asdl_seq *
20224_loop0_28_rule(Parser *p)
20225{
20226 D(p->level++);
20227 if (p->error_indicator) {
20228 D(p->level--);
20229 return NULL;
20230 }
20231 void *_res = NULL;
20232 int _mark = p->mark;
20233 int _start_mark = p->mark;
20234 void **_children = PyMem_Malloc(sizeof(void *));
20235 if (!_children) {
20236 p->error_indicator = 1;
20237 PyErr_NoMemory();
20238 D(p->level--);
20239 return NULL;
20240 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010020241 Py_ssize_t _children_capacity = 1;
20242 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020243 { // ',' NAME
20244 if (p->error_indicator) {
20245 D(p->level--);
20246 return NULL;
20247 }
20248 D(fprintf(stderr, "%*c> _loop0_28[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' NAME"));
20249 Token * _literal;
20250 expr_ty elem;
20251 while (
20252 (_literal = _PyPegen_expect_token(p, 12)) // token=','
20253 &&
20254 (elem = _PyPegen_name_token(p)) // NAME
20255 )
20256 {
20257 _res = elem;
20258 if (_res == NULL && PyErr_Occurred()) {
20259 p->error_indicator = 1;
20260 PyMem_Free(_children);
20261 D(p->level--);
20262 return NULL;
20263 }
20264 if (_n == _children_capacity) {
20265 _children_capacity *= 2;
20266 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20267 if (!_new_children) {
20268 p->error_indicator = 1;
20269 PyErr_NoMemory();
20270 D(p->level--);
20271 return NULL;
20272 }
20273 _children = _new_children;
20274 }
20275 _children[_n++] = _res;
20276 _mark = p->mark;
20277 }
20278 p->mark = _mark;
20279 D(fprintf(stderr, "%*c%s _loop0_28[%d-%d]: %s failed!\n", p->level, ' ',
20280 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' NAME"));
20281 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020282 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020283 if (!_seq) {
20284 PyMem_Free(_children);
20285 p->error_indicator = 1;
20286 PyErr_NoMemory();
20287 D(p->level--);
20288 return NULL;
20289 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020290 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020291 PyMem_Free(_children);
20292 _PyPegen_insert_memo(p, _start_mark, _loop0_28_type, _seq);
20293 D(p->level--);
20294 return _seq;
20295}
20296
20297// _gather_27: NAME _loop0_28
20298static asdl_seq *
20299_gather_27_rule(Parser *p)
20300{
20301 D(p->level++);
20302 if (p->error_indicator) {
20303 D(p->level--);
20304 return NULL;
20305 }
20306 asdl_seq * _res = NULL;
20307 int _mark = p->mark;
20308 { // NAME _loop0_28
20309 if (p->error_indicator) {
20310 D(p->level--);
20311 return NULL;
20312 }
20313 D(fprintf(stderr, "%*c> _gather_27[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME _loop0_28"));
20314 expr_ty elem;
20315 asdl_seq * seq;
20316 if (
20317 (elem = _PyPegen_name_token(p)) // NAME
20318 &&
20319 (seq = _loop0_28_rule(p)) // _loop0_28
20320 )
20321 {
20322 D(fprintf(stderr, "%*c+ _gather_27[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME _loop0_28"));
20323 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
20324 goto done;
20325 }
20326 p->mark = _mark;
20327 D(fprintf(stderr, "%*c%s _gather_27[%d-%d]: %s failed!\n", p->level, ' ',
20328 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME _loop0_28"));
20329 }
20330 _res = NULL;
20331 done:
20332 D(p->level--);
20333 return _res;
20334}
20335
20336// _tmp_29: ',' expression
20337static void *
20338_tmp_29_rule(Parser *p)
20339{
20340 D(p->level++);
20341 if (p->error_indicator) {
20342 D(p->level--);
20343 return NULL;
20344 }
20345 void * _res = NULL;
20346 int _mark = p->mark;
20347 { // ',' expression
20348 if (p->error_indicator) {
20349 D(p->level--);
20350 return NULL;
20351 }
20352 D(fprintf(stderr, "%*c> _tmp_29[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
20353 Token * _literal;
20354 expr_ty z;
20355 if (
20356 (_literal = _PyPegen_expect_token(p, 12)) // token=','
20357 &&
20358 (z = expression_rule(p)) // expression
20359 )
20360 {
20361 D(fprintf(stderr, "%*c+ _tmp_29[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' expression"));
20362 _res = z;
20363 if (_res == NULL && PyErr_Occurred()) {
20364 p->error_indicator = 1;
20365 D(p->level--);
20366 return NULL;
20367 }
20368 goto done;
20369 }
20370 p->mark = _mark;
20371 D(fprintf(stderr, "%*c%s _tmp_29[%d-%d]: %s failed!\n", p->level, ' ',
20372 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
20373 }
20374 _res = NULL;
20375 done:
20376 D(p->level--);
20377 return _res;
20378}
20379
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020380// _tmp_30: ';' | NEWLINE
20381static void *
20382_tmp_30_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020383{
20384 D(p->level++);
20385 if (p->error_indicator) {
20386 D(p->level--);
20387 return NULL;
20388 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020389 void * _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020390 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020391 { // ';'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020392 if (p->error_indicator) {
20393 D(p->level--);
20394 return NULL;
20395 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020396 D(fprintf(stderr, "%*c> _tmp_30[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "';'"));
20397 Token * _literal;
20398 if (
20399 (_literal = _PyPegen_expect_token(p, 13)) // token=';'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020400 )
20401 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020402 D(fprintf(stderr, "%*c+ _tmp_30[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "';'"));
20403 _res = _literal;
20404 goto done;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020405 }
20406 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020407 D(fprintf(stderr, "%*c%s _tmp_30[%d-%d]: %s failed!\n", p->level, ' ',
20408 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "';'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020409 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020410 { // NEWLINE
20411 if (p->error_indicator) {
20412 D(p->level--);
20413 return NULL;
20414 }
20415 D(fprintf(stderr, "%*c> _tmp_30[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
20416 Token * newline_var;
20417 if (
20418 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20419 )
20420 {
20421 D(fprintf(stderr, "%*c+ _tmp_30[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
20422 _res = newline_var;
20423 goto done;
20424 }
20425 p->mark = _mark;
20426 D(fprintf(stderr, "%*c%s _tmp_30[%d-%d]: %s failed!\n", p->level, ' ',
20427 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020428 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020429 _res = NULL;
20430 done:
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020431 D(p->level--);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020432 return _res;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020433}
20434
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020435// _loop0_31: ('.' | '...')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020436static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020437_loop0_31_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020438{
20439 D(p->level++);
20440 if (p->error_indicator) {
20441 D(p->level--);
20442 return NULL;
20443 }
20444 void *_res = NULL;
20445 int _mark = p->mark;
20446 int _start_mark = p->mark;
20447 void **_children = PyMem_Malloc(sizeof(void *));
20448 if (!_children) {
20449 p->error_indicator = 1;
20450 PyErr_NoMemory();
20451 D(p->level--);
20452 return NULL;
20453 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010020454 Py_ssize_t _children_capacity = 1;
20455 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020456 { // ('.' | '...')
20457 if (p->error_indicator) {
20458 D(p->level--);
20459 return NULL;
20460 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020461 D(fprintf(stderr, "%*c> _loop0_31[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('.' | '...')"));
Brandt Bucher145bf262021-02-26 14:51:55 -080020462 void *_tmp_163_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020463 while (
Brandt Bucher145bf262021-02-26 14:51:55 -080020464 (_tmp_163_var = _tmp_163_rule(p)) // '.' | '...'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020465 )
20466 {
Brandt Bucher145bf262021-02-26 14:51:55 -080020467 _res = _tmp_163_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020468 if (_n == _children_capacity) {
20469 _children_capacity *= 2;
20470 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20471 if (!_new_children) {
20472 p->error_indicator = 1;
20473 PyErr_NoMemory();
20474 D(p->level--);
20475 return NULL;
20476 }
20477 _children = _new_children;
20478 }
20479 _children[_n++] = _res;
20480 _mark = p->mark;
20481 }
20482 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020483 D(fprintf(stderr, "%*c%s _loop0_31[%d-%d]: %s failed!\n", p->level, ' ',
20484 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('.' | '...')"));
20485 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020486 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020487 if (!_seq) {
20488 PyMem_Free(_children);
20489 p->error_indicator = 1;
20490 PyErr_NoMemory();
20491 D(p->level--);
20492 return NULL;
20493 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020494 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020495 PyMem_Free(_children);
20496 _PyPegen_insert_memo(p, _start_mark, _loop0_31_type, _seq);
20497 D(p->level--);
20498 return _seq;
20499}
20500
20501// _loop1_32: ('.' | '...')
20502static asdl_seq *
20503_loop1_32_rule(Parser *p)
20504{
20505 D(p->level++);
20506 if (p->error_indicator) {
20507 D(p->level--);
20508 return NULL;
20509 }
20510 void *_res = NULL;
20511 int _mark = p->mark;
20512 int _start_mark = p->mark;
20513 void **_children = PyMem_Malloc(sizeof(void *));
20514 if (!_children) {
20515 p->error_indicator = 1;
20516 PyErr_NoMemory();
20517 D(p->level--);
20518 return NULL;
20519 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010020520 Py_ssize_t _children_capacity = 1;
20521 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020522 { // ('.' | '...')
20523 if (p->error_indicator) {
20524 D(p->level--);
20525 return NULL;
20526 }
20527 D(fprintf(stderr, "%*c> _loop1_32[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('.' | '...')"));
Brandt Bucher145bf262021-02-26 14:51:55 -080020528 void *_tmp_164_var;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020529 while (
Brandt Bucher145bf262021-02-26 14:51:55 -080020530 (_tmp_164_var = _tmp_164_rule(p)) // '.' | '...'
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020531 )
20532 {
Brandt Bucher145bf262021-02-26 14:51:55 -080020533 _res = _tmp_164_var;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020534 if (_n == _children_capacity) {
20535 _children_capacity *= 2;
20536 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20537 if (!_new_children) {
20538 p->error_indicator = 1;
20539 PyErr_NoMemory();
20540 D(p->level--);
20541 return NULL;
20542 }
20543 _children = _new_children;
20544 }
20545 _children[_n++] = _res;
20546 _mark = p->mark;
20547 }
20548 p->mark = _mark;
20549 D(fprintf(stderr, "%*c%s _loop1_32[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020550 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('.' | '...')"));
20551 }
20552 if (_n == 0 || p->error_indicator) {
20553 PyMem_Free(_children);
20554 D(p->level--);
20555 return NULL;
20556 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020557 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020558 if (!_seq) {
20559 PyMem_Free(_children);
20560 p->error_indicator = 1;
20561 PyErr_NoMemory();
20562 D(p->level--);
20563 return NULL;
20564 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020565 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020566 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020567 _PyPegen_insert_memo(p, _start_mark, _loop1_32_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020568 D(p->level--);
20569 return _seq;
20570}
20571
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020572// _loop0_34: ',' import_from_as_name
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020573static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020574_loop0_34_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020575{
20576 D(p->level++);
20577 if (p->error_indicator) {
20578 D(p->level--);
20579 return NULL;
20580 }
20581 void *_res = NULL;
20582 int _mark = p->mark;
20583 int _start_mark = p->mark;
20584 void **_children = PyMem_Malloc(sizeof(void *));
20585 if (!_children) {
20586 p->error_indicator = 1;
20587 PyErr_NoMemory();
20588 D(p->level--);
20589 return NULL;
20590 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010020591 Py_ssize_t _children_capacity = 1;
20592 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020593 { // ',' import_from_as_name
20594 if (p->error_indicator) {
20595 D(p->level--);
20596 return NULL;
20597 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020598 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 +010020599 Token * _literal;
20600 alias_ty elem;
20601 while (
20602 (_literal = _PyPegen_expect_token(p, 12)) // token=','
20603 &&
20604 (elem = import_from_as_name_rule(p)) // import_from_as_name
20605 )
20606 {
20607 _res = elem;
20608 if (_res == NULL && PyErr_Occurred()) {
20609 p->error_indicator = 1;
20610 PyMem_Free(_children);
20611 D(p->level--);
20612 return NULL;
20613 }
20614 if (_n == _children_capacity) {
20615 _children_capacity *= 2;
20616 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20617 if (!_new_children) {
20618 p->error_indicator = 1;
20619 PyErr_NoMemory();
20620 D(p->level--);
20621 return NULL;
20622 }
20623 _children = _new_children;
20624 }
20625 _children[_n++] = _res;
20626 _mark = p->mark;
20627 }
20628 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020629 D(fprintf(stderr, "%*c%s _loop0_34[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020630 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' import_from_as_name"));
20631 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020632 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020633 if (!_seq) {
20634 PyMem_Free(_children);
20635 p->error_indicator = 1;
20636 PyErr_NoMemory();
20637 D(p->level--);
20638 return NULL;
20639 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020640 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020641 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020642 _PyPegen_insert_memo(p, _start_mark, _loop0_34_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020643 D(p->level--);
20644 return _seq;
20645}
20646
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020647// _gather_33: import_from_as_name _loop0_34
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020648static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020649_gather_33_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020650{
20651 D(p->level++);
20652 if (p->error_indicator) {
20653 D(p->level--);
20654 return NULL;
20655 }
20656 asdl_seq * _res = NULL;
20657 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020658 { // import_from_as_name _loop0_34
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020659 if (p->error_indicator) {
20660 D(p->level--);
20661 return NULL;
20662 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020663 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 +010020664 alias_ty elem;
20665 asdl_seq * seq;
20666 if (
20667 (elem = import_from_as_name_rule(p)) // import_from_as_name
20668 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020669 (seq = _loop0_34_rule(p)) // _loop0_34
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020670 )
20671 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020672 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 +010020673 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
20674 goto done;
20675 }
20676 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020677 D(fprintf(stderr, "%*c%s _gather_33[%d-%d]: %s failed!\n", p->level, ' ',
20678 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from_as_name _loop0_34"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020679 }
20680 _res = NULL;
20681 done:
20682 D(p->level--);
20683 return _res;
20684}
20685
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020686// _tmp_35: 'as' NAME
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020687static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020688_tmp_35_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020689{
20690 D(p->level++);
20691 if (p->error_indicator) {
20692 D(p->level--);
20693 return NULL;
20694 }
20695 void * _res = NULL;
20696 int _mark = p->mark;
20697 { // 'as' NAME
20698 if (p->error_indicator) {
20699 D(p->level--);
20700 return NULL;
20701 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020702 D(fprintf(stderr, "%*c> _tmp_35[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020703 Token * _keyword;
20704 expr_ty z;
20705 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020706 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020707 &&
20708 (z = _PyPegen_name_token(p)) // NAME
20709 )
20710 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020711 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 +010020712 _res = z;
20713 if (_res == NULL && PyErr_Occurred()) {
20714 p->error_indicator = 1;
20715 D(p->level--);
20716 return NULL;
20717 }
20718 goto done;
20719 }
20720 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020721 D(fprintf(stderr, "%*c%s _tmp_35[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020722 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
20723 }
20724 _res = NULL;
20725 done:
20726 D(p->level--);
20727 return _res;
20728}
20729
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020730// _loop0_37: ',' dotted_as_name
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020731static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020732_loop0_37_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020733{
20734 D(p->level++);
20735 if (p->error_indicator) {
20736 D(p->level--);
20737 return NULL;
20738 }
20739 void *_res = NULL;
20740 int _mark = p->mark;
20741 int _start_mark = p->mark;
20742 void **_children = PyMem_Malloc(sizeof(void *));
20743 if (!_children) {
20744 p->error_indicator = 1;
20745 PyErr_NoMemory();
20746 D(p->level--);
20747 return NULL;
20748 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010020749 Py_ssize_t _children_capacity = 1;
20750 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020751 { // ',' dotted_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> _loop0_37[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' dotted_as_name"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020757 Token * _literal;
20758 alias_ty elem;
20759 while (
20760 (_literal = _PyPegen_expect_token(p, 12)) // token=','
20761 &&
20762 (elem = dotted_as_name_rule(p)) // dotted_as_name
20763 )
20764 {
20765 _res = elem;
20766 if (_res == NULL && PyErr_Occurred()) {
20767 p->error_indicator = 1;
20768 PyMem_Free(_children);
20769 D(p->level--);
20770 return NULL;
20771 }
20772 if (_n == _children_capacity) {
20773 _children_capacity *= 2;
20774 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20775 if (!_new_children) {
20776 p->error_indicator = 1;
20777 PyErr_NoMemory();
20778 D(p->level--);
20779 return NULL;
20780 }
20781 _children = _new_children;
20782 }
20783 _children[_n++] = _res;
20784 _mark = p->mark;
20785 }
20786 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020787 D(fprintf(stderr, "%*c%s _loop0_37[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020788 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' dotted_as_name"));
20789 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020790 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020791 if (!_seq) {
20792 PyMem_Free(_children);
20793 p->error_indicator = 1;
20794 PyErr_NoMemory();
20795 D(p->level--);
20796 return NULL;
20797 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020798 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020799 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020800 _PyPegen_insert_memo(p, _start_mark, _loop0_37_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020801 D(p->level--);
20802 return _seq;
20803}
20804
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020805// _gather_36: dotted_as_name _loop0_37
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020806static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020807_gather_36_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020808{
20809 D(p->level++);
20810 if (p->error_indicator) {
20811 D(p->level--);
20812 return NULL;
20813 }
20814 asdl_seq * _res = NULL;
20815 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020816 { // dotted_as_name _loop0_37
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020817 if (p->error_indicator) {
20818 D(p->level--);
20819 return NULL;
20820 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020821 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 +010020822 alias_ty elem;
20823 asdl_seq * seq;
20824 if (
20825 (elem = dotted_as_name_rule(p)) // dotted_as_name
20826 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020827 (seq = _loop0_37_rule(p)) // _loop0_37
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020828 )
20829 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020830 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 +010020831 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
20832 goto done;
20833 }
20834 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020835 D(fprintf(stderr, "%*c%s _gather_36[%d-%d]: %s failed!\n", p->level, ' ',
20836 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dotted_as_name _loop0_37"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020837 }
20838 _res = NULL;
20839 done:
20840 D(p->level--);
20841 return _res;
20842}
20843
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020844// _tmp_38: 'as' NAME
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020845static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020846_tmp_38_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020847{
20848 D(p->level++);
20849 if (p->error_indicator) {
20850 D(p->level--);
20851 return NULL;
20852 }
20853 void * _res = NULL;
20854 int _mark = p->mark;
20855 { // 'as' NAME
20856 if (p->error_indicator) {
20857 D(p->level--);
20858 return NULL;
20859 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020860 D(fprintf(stderr, "%*c> _tmp_38[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020861 Token * _keyword;
20862 expr_ty z;
20863 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020864 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020865 &&
20866 (z = _PyPegen_name_token(p)) // NAME
20867 )
20868 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020869 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 +010020870 _res = z;
20871 if (_res == NULL && PyErr_Occurred()) {
20872 p->error_indicator = 1;
20873 D(p->level--);
20874 return NULL;
20875 }
20876 goto done;
20877 }
20878 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020879 D(fprintf(stderr, "%*c%s _tmp_38[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020880 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
20881 }
20882 _res = NULL;
20883 done:
20884 D(p->level--);
20885 return _res;
20886}
20887
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020888// _loop0_40: ',' with_item
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020889static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020890_loop0_40_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020891{
20892 D(p->level++);
20893 if (p->error_indicator) {
20894 D(p->level--);
20895 return NULL;
20896 }
20897 void *_res = NULL;
20898 int _mark = p->mark;
20899 int _start_mark = p->mark;
20900 void **_children = PyMem_Malloc(sizeof(void *));
20901 if (!_children) {
20902 p->error_indicator = 1;
20903 PyErr_NoMemory();
20904 D(p->level--);
20905 return NULL;
20906 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010020907 Py_ssize_t _children_capacity = 1;
20908 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020909 { // ',' with_item
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> _loop0_40[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020915 Token * _literal;
20916 withitem_ty elem;
20917 while (
20918 (_literal = _PyPegen_expect_token(p, 12)) // token=','
20919 &&
20920 (elem = with_item_rule(p)) // with_item
20921 )
20922 {
20923 _res = elem;
20924 if (_res == NULL && PyErr_Occurred()) {
20925 p->error_indicator = 1;
20926 PyMem_Free(_children);
20927 D(p->level--);
20928 return NULL;
20929 }
20930 if (_n == _children_capacity) {
20931 _children_capacity *= 2;
20932 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20933 if (!_new_children) {
20934 p->error_indicator = 1;
20935 PyErr_NoMemory();
20936 D(p->level--);
20937 return NULL;
20938 }
20939 _children = _new_children;
20940 }
20941 _children[_n++] = _res;
20942 _mark = p->mark;
20943 }
20944 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020945 D(fprintf(stderr, "%*c%s _loop0_40[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020946 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
20947 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020948 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020949 if (!_seq) {
20950 PyMem_Free(_children);
20951 p->error_indicator = 1;
20952 PyErr_NoMemory();
20953 D(p->level--);
20954 return NULL;
20955 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020956 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020957 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020958 _PyPegen_insert_memo(p, _start_mark, _loop0_40_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020959 D(p->level--);
20960 return _seq;
20961}
20962
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020963// _gather_39: with_item _loop0_40
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020964static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020965_gather_39_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020966{
20967 D(p->level++);
20968 if (p->error_indicator) {
20969 D(p->level--);
20970 return NULL;
20971 }
20972 asdl_seq * _res = NULL;
20973 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020974 { // with_item _loop0_40
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020975 if (p->error_indicator) {
20976 D(p->level--);
20977 return NULL;
20978 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020979 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 +010020980 withitem_ty elem;
20981 asdl_seq * seq;
20982 if (
20983 (elem = with_item_rule(p)) // with_item
20984 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020985 (seq = _loop0_40_rule(p)) // _loop0_40
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020986 )
20987 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020988 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 +010020989 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
20990 goto done;
20991 }
20992 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020993 D(fprintf(stderr, "%*c%s _gather_39[%d-%d]: %s failed!\n", p->level, ' ',
20994 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_40"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020995 }
20996 _res = NULL;
20997 done:
20998 D(p->level--);
20999 return _res;
21000}
21001
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021002// _loop0_42: ',' with_item
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021003static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021004_loop0_42_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021005{
21006 D(p->level++);
21007 if (p->error_indicator) {
21008 D(p->level--);
21009 return NULL;
21010 }
21011 void *_res = NULL;
21012 int _mark = p->mark;
21013 int _start_mark = p->mark;
21014 void **_children = PyMem_Malloc(sizeof(void *));
21015 if (!_children) {
21016 p->error_indicator = 1;
21017 PyErr_NoMemory();
21018 D(p->level--);
21019 return NULL;
21020 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010021021 Py_ssize_t _children_capacity = 1;
21022 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021023 { // ',' with_item
21024 if (p->error_indicator) {
21025 D(p->level--);
21026 return NULL;
21027 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021028 D(fprintf(stderr, "%*c> _loop0_42[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021029 Token * _literal;
21030 withitem_ty elem;
21031 while (
21032 (_literal = _PyPegen_expect_token(p, 12)) // token=','
21033 &&
21034 (elem = with_item_rule(p)) // with_item
21035 )
21036 {
21037 _res = elem;
21038 if (_res == NULL && PyErr_Occurred()) {
21039 p->error_indicator = 1;
21040 PyMem_Free(_children);
21041 D(p->level--);
21042 return NULL;
21043 }
21044 if (_n == _children_capacity) {
21045 _children_capacity *= 2;
21046 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21047 if (!_new_children) {
21048 p->error_indicator = 1;
21049 PyErr_NoMemory();
21050 D(p->level--);
21051 return NULL;
21052 }
21053 _children = _new_children;
21054 }
21055 _children[_n++] = _res;
21056 _mark = p->mark;
21057 }
21058 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021059 D(fprintf(stderr, "%*c%s _loop0_42[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021060 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
21061 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021062 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021063 if (!_seq) {
21064 PyMem_Free(_children);
21065 p->error_indicator = 1;
21066 PyErr_NoMemory();
21067 D(p->level--);
21068 return NULL;
21069 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021070 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021071 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021072 _PyPegen_insert_memo(p, _start_mark, _loop0_42_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021073 D(p->level--);
21074 return _seq;
21075}
21076
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021077// _gather_41: with_item _loop0_42
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021078static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021079_gather_41_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021080{
21081 D(p->level++);
21082 if (p->error_indicator) {
21083 D(p->level--);
21084 return NULL;
21085 }
21086 asdl_seq * _res = NULL;
21087 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021088 { // with_item _loop0_42
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021089 if (p->error_indicator) {
21090 D(p->level--);
21091 return NULL;
21092 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021093 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 +010021094 withitem_ty elem;
21095 asdl_seq * seq;
21096 if (
21097 (elem = with_item_rule(p)) // with_item
21098 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021099 (seq = _loop0_42_rule(p)) // _loop0_42
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021100 )
21101 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021102 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 +010021103 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
21104 goto done;
21105 }
21106 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021107 D(fprintf(stderr, "%*c%s _gather_41[%d-%d]: %s failed!\n", p->level, ' ',
21108 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_42"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021109 }
21110 _res = NULL;
21111 done:
21112 D(p->level--);
21113 return _res;
21114}
21115
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021116// _loop0_44: ',' with_item
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021117static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021118_loop0_44_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021119{
21120 D(p->level++);
21121 if (p->error_indicator) {
21122 D(p->level--);
21123 return NULL;
21124 }
21125 void *_res = NULL;
21126 int _mark = p->mark;
21127 int _start_mark = p->mark;
21128 void **_children = PyMem_Malloc(sizeof(void *));
21129 if (!_children) {
21130 p->error_indicator = 1;
21131 PyErr_NoMemory();
21132 D(p->level--);
21133 return NULL;
21134 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010021135 Py_ssize_t _children_capacity = 1;
21136 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021137 { // ',' with_item
21138 if (p->error_indicator) {
21139 D(p->level--);
21140 return NULL;
21141 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021142 D(fprintf(stderr, "%*c> _loop0_44[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021143 Token * _literal;
21144 withitem_ty elem;
21145 while (
21146 (_literal = _PyPegen_expect_token(p, 12)) // token=','
21147 &&
21148 (elem = with_item_rule(p)) // with_item
21149 )
21150 {
21151 _res = elem;
21152 if (_res == NULL && PyErr_Occurred()) {
21153 p->error_indicator = 1;
21154 PyMem_Free(_children);
21155 D(p->level--);
21156 return NULL;
21157 }
21158 if (_n == _children_capacity) {
21159 _children_capacity *= 2;
21160 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21161 if (!_new_children) {
21162 p->error_indicator = 1;
21163 PyErr_NoMemory();
21164 D(p->level--);
21165 return NULL;
21166 }
21167 _children = _new_children;
21168 }
21169 _children[_n++] = _res;
21170 _mark = p->mark;
21171 }
21172 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021173 D(fprintf(stderr, "%*c%s _loop0_44[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021174 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
21175 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021176 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021177 if (!_seq) {
21178 PyMem_Free(_children);
21179 p->error_indicator = 1;
21180 PyErr_NoMemory();
21181 D(p->level--);
21182 return NULL;
21183 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021184 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021185 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021186 _PyPegen_insert_memo(p, _start_mark, _loop0_44_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021187 D(p->level--);
21188 return _seq;
21189}
21190
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021191// _gather_43: with_item _loop0_44
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021192static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021193_gather_43_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021194{
21195 D(p->level++);
21196 if (p->error_indicator) {
21197 D(p->level--);
21198 return NULL;
21199 }
21200 asdl_seq * _res = NULL;
21201 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021202 { // with_item _loop0_44
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021203 if (p->error_indicator) {
21204 D(p->level--);
21205 return NULL;
21206 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021207 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 +010021208 withitem_ty elem;
21209 asdl_seq * seq;
21210 if (
21211 (elem = with_item_rule(p)) // with_item
21212 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021213 (seq = _loop0_44_rule(p)) // _loop0_44
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021214 )
21215 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021216 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 +010021217 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
21218 goto done;
21219 }
21220 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021221 D(fprintf(stderr, "%*c%s _gather_43[%d-%d]: %s failed!\n", p->level, ' ',
21222 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_44"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021223 }
21224 _res = NULL;
21225 done:
21226 D(p->level--);
21227 return _res;
21228}
21229
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021230// _loop0_46: ',' with_item
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021231static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021232_loop0_46_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021233{
21234 D(p->level++);
21235 if (p->error_indicator) {
21236 D(p->level--);
21237 return NULL;
21238 }
21239 void *_res = NULL;
21240 int _mark = p->mark;
21241 int _start_mark = p->mark;
21242 void **_children = PyMem_Malloc(sizeof(void *));
21243 if (!_children) {
21244 p->error_indicator = 1;
21245 PyErr_NoMemory();
21246 D(p->level--);
21247 return NULL;
21248 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010021249 Py_ssize_t _children_capacity = 1;
21250 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021251 { // ',' with_item
21252 if (p->error_indicator) {
21253 D(p->level--);
21254 return NULL;
21255 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021256 D(fprintf(stderr, "%*c> _loop0_46[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021257 Token * _literal;
21258 withitem_ty elem;
21259 while (
21260 (_literal = _PyPegen_expect_token(p, 12)) // token=','
21261 &&
21262 (elem = with_item_rule(p)) // with_item
21263 )
21264 {
21265 _res = elem;
21266 if (_res == NULL && PyErr_Occurred()) {
21267 p->error_indicator = 1;
21268 PyMem_Free(_children);
21269 D(p->level--);
21270 return NULL;
21271 }
21272 if (_n == _children_capacity) {
21273 _children_capacity *= 2;
21274 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21275 if (!_new_children) {
21276 p->error_indicator = 1;
21277 PyErr_NoMemory();
21278 D(p->level--);
21279 return NULL;
21280 }
21281 _children = _new_children;
21282 }
21283 _children[_n++] = _res;
21284 _mark = p->mark;
21285 }
21286 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021287 D(fprintf(stderr, "%*c%s _loop0_46[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021288 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
21289 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021290 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021291 if (!_seq) {
21292 PyMem_Free(_children);
21293 p->error_indicator = 1;
21294 PyErr_NoMemory();
21295 D(p->level--);
21296 return NULL;
21297 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021298 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021299 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021300 _PyPegen_insert_memo(p, _start_mark, _loop0_46_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021301 D(p->level--);
21302 return _seq;
21303}
21304
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021305// _gather_45: with_item _loop0_46
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021306static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021307_gather_45_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021308{
21309 D(p->level++);
21310 if (p->error_indicator) {
21311 D(p->level--);
21312 return NULL;
21313 }
21314 asdl_seq * _res = NULL;
21315 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021316 { // with_item _loop0_46
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021317 if (p->error_indicator) {
21318 D(p->level--);
21319 return NULL;
21320 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021321 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 +010021322 withitem_ty elem;
21323 asdl_seq * seq;
21324 if (
21325 (elem = with_item_rule(p)) // with_item
21326 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021327 (seq = _loop0_46_rule(p)) // _loop0_46
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021328 )
21329 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021330 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 +010021331 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
21332 goto done;
21333 }
21334 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021335 D(fprintf(stderr, "%*c%s _gather_45[%d-%d]: %s failed!\n", p->level, ' ',
21336 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_46"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021337 }
21338 _res = NULL;
21339 done:
21340 D(p->level--);
21341 return _res;
21342}
21343
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021344// _tmp_47: ',' | ')' | ':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021345static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021346_tmp_47_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021347{
21348 D(p->level++);
21349 if (p->error_indicator) {
21350 D(p->level--);
21351 return NULL;
21352 }
21353 void * _res = NULL;
21354 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021355 { // ','
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021356 if (p->error_indicator) {
21357 D(p->level--);
21358 return NULL;
21359 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021360 D(fprintf(stderr, "%*c> _tmp_47[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','"));
21361 Token * _literal;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021362 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021363 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021364 )
21365 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021366 D(fprintf(stderr, "%*c+ _tmp_47[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','"));
21367 _res = _literal;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021368 goto done;
21369 }
21370 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021371 D(fprintf(stderr, "%*c%s _tmp_47[%d-%d]: %s failed!\n", p->level, ' ',
21372 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','"));
21373 }
21374 { // ')'
21375 if (p->error_indicator) {
21376 D(p->level--);
21377 return NULL;
21378 }
21379 D(fprintf(stderr, "%*c> _tmp_47[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
21380 Token * _literal;
21381 if (
21382 (_literal = _PyPegen_expect_token(p, 8)) // token=')'
21383 )
21384 {
21385 D(fprintf(stderr, "%*c+ _tmp_47[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
21386 _res = _literal;
21387 goto done;
21388 }
21389 p->mark = _mark;
21390 D(fprintf(stderr, "%*c%s _tmp_47[%d-%d]: %s failed!\n", p->level, ' ',
21391 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
21392 }
21393 { // ':'
21394 if (p->error_indicator) {
21395 D(p->level--);
21396 return NULL;
21397 }
21398 D(fprintf(stderr, "%*c> _tmp_47[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
21399 Token * _literal;
21400 if (
21401 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
21402 )
21403 {
21404 D(fprintf(stderr, "%*c+ _tmp_47[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
21405 _res = _literal;
21406 goto done;
21407 }
21408 p->mark = _mark;
21409 D(fprintf(stderr, "%*c%s _tmp_47[%d-%d]: %s failed!\n", p->level, ' ',
21410 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021411 }
21412 _res = NULL;
21413 done:
21414 D(p->level--);
21415 return _res;
21416}
21417
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021418// _loop1_48: except_block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021419static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021420_loop1_48_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021421{
21422 D(p->level++);
21423 if (p->error_indicator) {
21424 D(p->level--);
21425 return NULL;
21426 }
21427 void *_res = NULL;
21428 int _mark = p->mark;
21429 int _start_mark = p->mark;
21430 void **_children = PyMem_Malloc(sizeof(void *));
21431 if (!_children) {
21432 p->error_indicator = 1;
21433 PyErr_NoMemory();
21434 D(p->level--);
21435 return NULL;
21436 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010021437 Py_ssize_t _children_capacity = 1;
21438 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021439 { // except_block
21440 if (p->error_indicator) {
21441 D(p->level--);
21442 return NULL;
21443 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021444 D(fprintf(stderr, "%*c> _loop1_48[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "except_block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021445 excepthandler_ty except_block_var;
21446 while (
21447 (except_block_var = except_block_rule(p)) // except_block
21448 )
21449 {
21450 _res = except_block_var;
21451 if (_n == _children_capacity) {
21452 _children_capacity *= 2;
21453 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21454 if (!_new_children) {
21455 p->error_indicator = 1;
21456 PyErr_NoMemory();
21457 D(p->level--);
21458 return NULL;
21459 }
21460 _children = _new_children;
21461 }
21462 _children[_n++] = _res;
21463 _mark = p->mark;
21464 }
21465 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021466 D(fprintf(stderr, "%*c%s _loop1_48[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021467 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "except_block"));
21468 }
21469 if (_n == 0 || p->error_indicator) {
21470 PyMem_Free(_children);
21471 D(p->level--);
21472 return NULL;
21473 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021474 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021475 if (!_seq) {
21476 PyMem_Free(_children);
21477 p->error_indicator = 1;
21478 PyErr_NoMemory();
21479 D(p->level--);
21480 return NULL;
21481 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021482 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021483 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021484 _PyPegen_insert_memo(p, _start_mark, _loop1_48_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021485 D(p->level--);
21486 return _seq;
21487}
21488
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021489// _tmp_49: 'as' NAME
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021490static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021491_tmp_49_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021492{
21493 D(p->level++);
21494 if (p->error_indicator) {
21495 D(p->level--);
21496 return NULL;
21497 }
21498 void * _res = NULL;
21499 int _mark = p->mark;
21500 { // 'as' NAME
21501 if (p->error_indicator) {
21502 D(p->level--);
21503 return NULL;
21504 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021505 D(fprintf(stderr, "%*c> _tmp_49[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021506 Token * _keyword;
21507 expr_ty z;
21508 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021509 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021510 &&
21511 (z = _PyPegen_name_token(p)) // NAME
21512 )
21513 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021514 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 +010021515 _res = z;
21516 if (_res == NULL && PyErr_Occurred()) {
21517 p->error_indicator = 1;
21518 D(p->level--);
21519 return NULL;
21520 }
21521 goto done;
21522 }
21523 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021524 D(fprintf(stderr, "%*c%s _tmp_49[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021525 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
21526 }
21527 _res = NULL;
21528 done:
21529 D(p->level--);
21530 return _res;
21531}
21532
Brandt Bucher145bf262021-02-26 14:51:55 -080021533// _loop1_50: case_block
21534static asdl_seq *
21535_loop1_50_rule(Parser *p)
21536{
21537 D(p->level++);
21538 if (p->error_indicator) {
21539 D(p->level--);
21540 return NULL;
21541 }
21542 void *_res = NULL;
21543 int _mark = p->mark;
21544 int _start_mark = p->mark;
21545 void **_children = PyMem_Malloc(sizeof(void *));
21546 if (!_children) {
21547 p->error_indicator = 1;
21548 PyErr_NoMemory();
21549 D(p->level--);
21550 return NULL;
21551 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010021552 Py_ssize_t _children_capacity = 1;
21553 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080021554 { // case_block
21555 if (p->error_indicator) {
21556 D(p->level--);
21557 return NULL;
21558 }
21559 D(fprintf(stderr, "%*c> _loop1_50[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "case_block"));
21560 match_case_ty case_block_var;
21561 while (
21562 (case_block_var = case_block_rule(p)) // case_block
21563 )
21564 {
21565 _res = case_block_var;
21566 if (_n == _children_capacity) {
21567 _children_capacity *= 2;
21568 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21569 if (!_new_children) {
21570 p->error_indicator = 1;
21571 PyErr_NoMemory();
21572 D(p->level--);
21573 return NULL;
21574 }
21575 _children = _new_children;
21576 }
21577 _children[_n++] = _res;
21578 _mark = p->mark;
21579 }
21580 p->mark = _mark;
21581 D(fprintf(stderr, "%*c%s _loop1_50[%d-%d]: %s failed!\n", p->level, ' ',
21582 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "case_block"));
21583 }
21584 if (_n == 0 || p->error_indicator) {
21585 PyMem_Free(_children);
21586 D(p->level--);
21587 return NULL;
21588 }
21589 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
21590 if (!_seq) {
21591 PyMem_Free(_children);
21592 p->error_indicator = 1;
21593 PyErr_NoMemory();
21594 D(p->level--);
21595 return NULL;
21596 }
21597 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
21598 PyMem_Free(_children);
21599 _PyPegen_insert_memo(p, _start_mark, _loop1_50_type, _seq);
21600 D(p->level--);
21601 return _seq;
21602}
21603
21604// _loop0_52: '|' closed_pattern
21605static asdl_seq *
21606_loop0_52_rule(Parser *p)
21607{
21608 D(p->level++);
21609 if (p->error_indicator) {
21610 D(p->level--);
21611 return NULL;
21612 }
21613 void *_res = NULL;
21614 int _mark = p->mark;
21615 int _start_mark = p->mark;
21616 void **_children = PyMem_Malloc(sizeof(void *));
21617 if (!_children) {
21618 p->error_indicator = 1;
21619 PyErr_NoMemory();
21620 D(p->level--);
21621 return NULL;
21622 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010021623 Py_ssize_t _children_capacity = 1;
21624 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080021625 { // '|' closed_pattern
21626 if (p->error_indicator) {
21627 D(p->level--);
21628 return NULL;
21629 }
21630 D(fprintf(stderr, "%*c> _loop0_52[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'|' closed_pattern"));
21631 Token * _literal;
21632 expr_ty elem;
21633 while (
21634 (_literal = _PyPegen_expect_token(p, 18)) // token='|'
21635 &&
21636 (elem = closed_pattern_rule(p)) // closed_pattern
21637 )
21638 {
21639 _res = elem;
21640 if (_res == NULL && PyErr_Occurred()) {
21641 p->error_indicator = 1;
21642 PyMem_Free(_children);
21643 D(p->level--);
21644 return NULL;
21645 }
21646 if (_n == _children_capacity) {
21647 _children_capacity *= 2;
21648 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21649 if (!_new_children) {
21650 p->error_indicator = 1;
21651 PyErr_NoMemory();
21652 D(p->level--);
21653 return NULL;
21654 }
21655 _children = _new_children;
21656 }
21657 _children[_n++] = _res;
21658 _mark = p->mark;
21659 }
21660 p->mark = _mark;
21661 D(fprintf(stderr, "%*c%s _loop0_52[%d-%d]: %s failed!\n", p->level, ' ',
21662 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'|' closed_pattern"));
21663 }
21664 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
21665 if (!_seq) {
21666 PyMem_Free(_children);
21667 p->error_indicator = 1;
21668 PyErr_NoMemory();
21669 D(p->level--);
21670 return NULL;
21671 }
21672 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
21673 PyMem_Free(_children);
21674 _PyPegen_insert_memo(p, _start_mark, _loop0_52_type, _seq);
21675 D(p->level--);
21676 return _seq;
21677}
21678
21679// _gather_51: closed_pattern _loop0_52
21680static asdl_seq *
21681_gather_51_rule(Parser *p)
21682{
21683 D(p->level++);
21684 if (p->error_indicator) {
21685 D(p->level--);
21686 return NULL;
21687 }
21688 asdl_seq * _res = NULL;
21689 int _mark = p->mark;
21690 { // closed_pattern _loop0_52
21691 if (p->error_indicator) {
21692 D(p->level--);
21693 return NULL;
21694 }
21695 D(fprintf(stderr, "%*c> _gather_51[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "closed_pattern _loop0_52"));
21696 expr_ty elem;
21697 asdl_seq * seq;
21698 if (
21699 (elem = closed_pattern_rule(p)) // closed_pattern
21700 &&
21701 (seq = _loop0_52_rule(p)) // _loop0_52
21702 )
21703 {
21704 D(fprintf(stderr, "%*c+ _gather_51[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "closed_pattern _loop0_52"));
21705 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
21706 goto done;
21707 }
21708 p->mark = _mark;
21709 D(fprintf(stderr, "%*c%s _gather_51[%d-%d]: %s failed!\n", p->level, ' ',
21710 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "closed_pattern _loop0_52"));
21711 }
21712 _res = NULL;
21713 done:
21714 D(p->level--);
21715 return _res;
21716}
21717
21718// _tmp_53: '+' | '-'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021719static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080021720_tmp_53_rule(Parser *p)
21721{
21722 D(p->level++);
21723 if (p->error_indicator) {
21724 D(p->level--);
21725 return NULL;
21726 }
21727 void * _res = NULL;
21728 int _mark = p->mark;
21729 { // '+'
21730 if (p->error_indicator) {
21731 D(p->level--);
21732 return NULL;
21733 }
21734 D(fprintf(stderr, "%*c> _tmp_53[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'+'"));
21735 Token * _literal;
21736 if (
21737 (_literal = _PyPegen_expect_token(p, 14)) // token='+'
21738 )
21739 {
21740 D(fprintf(stderr, "%*c+ _tmp_53[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'+'"));
21741 _res = _literal;
21742 goto done;
21743 }
21744 p->mark = _mark;
21745 D(fprintf(stderr, "%*c%s _tmp_53[%d-%d]: %s failed!\n", p->level, ' ',
21746 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+'"));
21747 }
21748 { // '-'
21749 if (p->error_indicator) {
21750 D(p->level--);
21751 return NULL;
21752 }
21753 D(fprintf(stderr, "%*c> _tmp_53[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-'"));
21754 Token * _literal;
21755 if (
21756 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
21757 )
21758 {
21759 D(fprintf(stderr, "%*c+ _tmp_53[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-'"));
21760 _res = _literal;
21761 goto done;
21762 }
21763 p->mark = _mark;
21764 D(fprintf(stderr, "%*c%s _tmp_53[%d-%d]: %s failed!\n", p->level, ' ',
21765 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-'"));
21766 }
21767 _res = NULL;
21768 done:
21769 D(p->level--);
21770 return _res;
21771}
21772
21773// _tmp_54: '.' | '(' | '='
21774static void *
21775_tmp_54_rule(Parser *p)
21776{
21777 D(p->level++);
21778 if (p->error_indicator) {
21779 D(p->level--);
21780 return NULL;
21781 }
21782 void * _res = NULL;
21783 int _mark = p->mark;
21784 { // '.'
21785 if (p->error_indicator) {
21786 D(p->level--);
21787 return NULL;
21788 }
21789 D(fprintf(stderr, "%*c> _tmp_54[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
21790 Token * _literal;
21791 if (
21792 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
21793 )
21794 {
21795 D(fprintf(stderr, "%*c+ _tmp_54[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
21796 _res = _literal;
21797 goto done;
21798 }
21799 p->mark = _mark;
21800 D(fprintf(stderr, "%*c%s _tmp_54[%d-%d]: %s failed!\n", p->level, ' ',
21801 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
21802 }
21803 { // '('
21804 if (p->error_indicator) {
21805 D(p->level--);
21806 return NULL;
21807 }
21808 D(fprintf(stderr, "%*c> _tmp_54[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('"));
21809 Token * _literal;
21810 if (
21811 (_literal = _PyPegen_expect_token(p, 7)) // token='('
21812 )
21813 {
21814 D(fprintf(stderr, "%*c+ _tmp_54[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('"));
21815 _res = _literal;
21816 goto done;
21817 }
21818 p->mark = _mark;
21819 D(fprintf(stderr, "%*c%s _tmp_54[%d-%d]: %s failed!\n", p->level, ' ',
21820 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('"));
21821 }
21822 { // '='
21823 if (p->error_indicator) {
21824 D(p->level--);
21825 return NULL;
21826 }
21827 D(fprintf(stderr, "%*c> _tmp_54[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'='"));
21828 Token * _literal;
21829 if (
21830 (_literal = _PyPegen_expect_token(p, 22)) // token='='
21831 )
21832 {
21833 D(fprintf(stderr, "%*c+ _tmp_54[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'='"));
21834 _res = _literal;
21835 goto done;
21836 }
21837 p->mark = _mark;
21838 D(fprintf(stderr, "%*c%s _tmp_54[%d-%d]: %s failed!\n", p->level, ' ',
21839 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'='"));
21840 }
21841 _res = NULL;
21842 done:
21843 D(p->level--);
21844 return _res;
21845}
21846
21847// _tmp_55: '.' | '(' | '='
21848static void *
21849_tmp_55_rule(Parser *p)
21850{
21851 D(p->level++);
21852 if (p->error_indicator) {
21853 D(p->level--);
21854 return NULL;
21855 }
21856 void * _res = NULL;
21857 int _mark = p->mark;
21858 { // '.'
21859 if (p->error_indicator) {
21860 D(p->level--);
21861 return NULL;
21862 }
21863 D(fprintf(stderr, "%*c> _tmp_55[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
21864 Token * _literal;
21865 if (
21866 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
21867 )
21868 {
21869 D(fprintf(stderr, "%*c+ _tmp_55[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
21870 _res = _literal;
21871 goto done;
21872 }
21873 p->mark = _mark;
21874 D(fprintf(stderr, "%*c%s _tmp_55[%d-%d]: %s failed!\n", p->level, ' ',
21875 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
21876 }
21877 { // '('
21878 if (p->error_indicator) {
21879 D(p->level--);
21880 return NULL;
21881 }
21882 D(fprintf(stderr, "%*c> _tmp_55[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('"));
21883 Token * _literal;
21884 if (
21885 (_literal = _PyPegen_expect_token(p, 7)) // token='('
21886 )
21887 {
21888 D(fprintf(stderr, "%*c+ _tmp_55[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('"));
21889 _res = _literal;
21890 goto done;
21891 }
21892 p->mark = _mark;
21893 D(fprintf(stderr, "%*c%s _tmp_55[%d-%d]: %s failed!\n", p->level, ' ',
21894 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('"));
21895 }
21896 { // '='
21897 if (p->error_indicator) {
21898 D(p->level--);
21899 return NULL;
21900 }
21901 D(fprintf(stderr, "%*c> _tmp_55[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'='"));
21902 Token * _literal;
21903 if (
21904 (_literal = _PyPegen_expect_token(p, 22)) // token='='
21905 )
21906 {
21907 D(fprintf(stderr, "%*c+ _tmp_55[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'='"));
21908 _res = _literal;
21909 goto done;
21910 }
21911 p->mark = _mark;
21912 D(fprintf(stderr, "%*c%s _tmp_55[%d-%d]: %s failed!\n", p->level, ' ',
21913 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'='"));
21914 }
21915 _res = NULL;
21916 done:
21917 D(p->level--);
21918 return _res;
21919}
21920
21921// _loop0_57: ',' maybe_star_pattern
21922static asdl_seq *
21923_loop0_57_rule(Parser *p)
21924{
21925 D(p->level++);
21926 if (p->error_indicator) {
21927 D(p->level--);
21928 return NULL;
21929 }
21930 void *_res = NULL;
21931 int _mark = p->mark;
21932 int _start_mark = p->mark;
21933 void **_children = PyMem_Malloc(sizeof(void *));
21934 if (!_children) {
21935 p->error_indicator = 1;
21936 PyErr_NoMemory();
21937 D(p->level--);
21938 return NULL;
21939 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010021940 Py_ssize_t _children_capacity = 1;
21941 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080021942 { // ',' maybe_star_pattern
21943 if (p->error_indicator) {
21944 D(p->level--);
21945 return NULL;
21946 }
21947 D(fprintf(stderr, "%*c> _loop0_57[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' maybe_star_pattern"));
21948 Token * _literal;
21949 expr_ty elem;
21950 while (
21951 (_literal = _PyPegen_expect_token(p, 12)) // token=','
21952 &&
21953 (elem = maybe_star_pattern_rule(p)) // maybe_star_pattern
21954 )
21955 {
21956 _res = elem;
21957 if (_res == NULL && PyErr_Occurred()) {
21958 p->error_indicator = 1;
21959 PyMem_Free(_children);
21960 D(p->level--);
21961 return NULL;
21962 }
21963 if (_n == _children_capacity) {
21964 _children_capacity *= 2;
21965 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21966 if (!_new_children) {
21967 p->error_indicator = 1;
21968 PyErr_NoMemory();
21969 D(p->level--);
21970 return NULL;
21971 }
21972 _children = _new_children;
21973 }
21974 _children[_n++] = _res;
21975 _mark = p->mark;
21976 }
21977 p->mark = _mark;
21978 D(fprintf(stderr, "%*c%s _loop0_57[%d-%d]: %s failed!\n", p->level, ' ',
21979 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' maybe_star_pattern"));
21980 }
21981 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
21982 if (!_seq) {
21983 PyMem_Free(_children);
21984 p->error_indicator = 1;
21985 PyErr_NoMemory();
21986 D(p->level--);
21987 return NULL;
21988 }
21989 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
21990 PyMem_Free(_children);
21991 _PyPegen_insert_memo(p, _start_mark, _loop0_57_type, _seq);
21992 D(p->level--);
21993 return _seq;
21994}
21995
21996// _gather_56: maybe_star_pattern _loop0_57
21997static asdl_seq *
21998_gather_56_rule(Parser *p)
21999{
22000 D(p->level++);
22001 if (p->error_indicator) {
22002 D(p->level--);
22003 return NULL;
22004 }
22005 asdl_seq * _res = NULL;
22006 int _mark = p->mark;
22007 { // maybe_star_pattern _loop0_57
22008 if (p->error_indicator) {
22009 D(p->level--);
22010 return NULL;
22011 }
22012 D(fprintf(stderr, "%*c> _gather_56[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "maybe_star_pattern _loop0_57"));
22013 expr_ty elem;
22014 asdl_seq * seq;
22015 if (
22016 (elem = maybe_star_pattern_rule(p)) // maybe_star_pattern
22017 &&
22018 (seq = _loop0_57_rule(p)) // _loop0_57
22019 )
22020 {
22021 D(fprintf(stderr, "%*c+ _gather_56[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "maybe_star_pattern _loop0_57"));
22022 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
22023 goto done;
22024 }
22025 p->mark = _mark;
22026 D(fprintf(stderr, "%*c%s _gather_56[%d-%d]: %s failed!\n", p->level, ' ',
22027 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "maybe_star_pattern _loop0_57"));
22028 }
22029 _res = NULL;
22030 done:
22031 D(p->level--);
22032 return _res;
22033}
22034
22035// _tmp_58: capture_pattern | wildcard_pattern
22036static void *
22037_tmp_58_rule(Parser *p)
22038{
22039 D(p->level++);
22040 if (p->error_indicator) {
22041 D(p->level--);
22042 return NULL;
22043 }
22044 void * _res = NULL;
22045 int _mark = p->mark;
22046 { // capture_pattern
22047 if (p->error_indicator) {
22048 D(p->level--);
22049 return NULL;
22050 }
22051 D(fprintf(stderr, "%*c> _tmp_58[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "capture_pattern"));
22052 expr_ty capture_pattern_var;
22053 if (
22054 (capture_pattern_var = capture_pattern_rule(p)) // capture_pattern
22055 )
22056 {
22057 D(fprintf(stderr, "%*c+ _tmp_58[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "capture_pattern"));
22058 _res = capture_pattern_var;
22059 goto done;
22060 }
22061 p->mark = _mark;
22062 D(fprintf(stderr, "%*c%s _tmp_58[%d-%d]: %s failed!\n", p->level, ' ',
22063 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "capture_pattern"));
22064 }
22065 { // wildcard_pattern
22066 if (p->error_indicator) {
22067 D(p->level--);
22068 return NULL;
22069 }
22070 D(fprintf(stderr, "%*c> _tmp_58[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "wildcard_pattern"));
22071 expr_ty wildcard_pattern_var;
22072 if (
22073 (wildcard_pattern_var = wildcard_pattern_rule(p)) // wildcard_pattern
22074 )
22075 {
22076 D(fprintf(stderr, "%*c+ _tmp_58[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "wildcard_pattern"));
22077 _res = wildcard_pattern_var;
22078 goto done;
22079 }
22080 p->mark = _mark;
22081 D(fprintf(stderr, "%*c%s _tmp_58[%d-%d]: %s failed!\n", p->level, ' ',
22082 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "wildcard_pattern"));
22083 }
22084 _res = NULL;
22085 done:
22086 D(p->level--);
22087 return _res;
22088}
22089
22090// _loop0_60: ',' key_value_pattern
22091static asdl_seq *
22092_loop0_60_rule(Parser *p)
22093{
22094 D(p->level++);
22095 if (p->error_indicator) {
22096 D(p->level--);
22097 return NULL;
22098 }
22099 void *_res = NULL;
22100 int _mark = p->mark;
22101 int _start_mark = p->mark;
22102 void **_children = PyMem_Malloc(sizeof(void *));
22103 if (!_children) {
22104 p->error_indicator = 1;
22105 PyErr_NoMemory();
22106 D(p->level--);
22107 return NULL;
22108 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010022109 Py_ssize_t _children_capacity = 1;
22110 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080022111 { // ',' key_value_pattern
22112 if (p->error_indicator) {
22113 D(p->level--);
22114 return NULL;
22115 }
22116 D(fprintf(stderr, "%*c> _loop0_60[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' key_value_pattern"));
22117 Token * _literal;
22118 KeyValuePair* elem;
22119 while (
22120 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22121 &&
22122 (elem = key_value_pattern_rule(p)) // key_value_pattern
22123 )
22124 {
22125 _res = elem;
22126 if (_res == NULL && PyErr_Occurred()) {
22127 p->error_indicator = 1;
22128 PyMem_Free(_children);
22129 D(p->level--);
22130 return NULL;
22131 }
22132 if (_n == _children_capacity) {
22133 _children_capacity *= 2;
22134 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22135 if (!_new_children) {
22136 p->error_indicator = 1;
22137 PyErr_NoMemory();
22138 D(p->level--);
22139 return NULL;
22140 }
22141 _children = _new_children;
22142 }
22143 _children[_n++] = _res;
22144 _mark = p->mark;
22145 }
22146 p->mark = _mark;
22147 D(fprintf(stderr, "%*c%s _loop0_60[%d-%d]: %s failed!\n", p->level, ' ',
22148 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' key_value_pattern"));
22149 }
22150 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
22151 if (!_seq) {
22152 PyMem_Free(_children);
22153 p->error_indicator = 1;
22154 PyErr_NoMemory();
22155 D(p->level--);
22156 return NULL;
22157 }
22158 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
22159 PyMem_Free(_children);
22160 _PyPegen_insert_memo(p, _start_mark, _loop0_60_type, _seq);
22161 D(p->level--);
22162 return _seq;
22163}
22164
22165// _gather_59: key_value_pattern _loop0_60
22166static asdl_seq *
22167_gather_59_rule(Parser *p)
22168{
22169 D(p->level++);
22170 if (p->error_indicator) {
22171 D(p->level--);
22172 return NULL;
22173 }
22174 asdl_seq * _res = NULL;
22175 int _mark = p->mark;
22176 { // key_value_pattern _loop0_60
22177 if (p->error_indicator) {
22178 D(p->level--);
22179 return NULL;
22180 }
22181 D(fprintf(stderr, "%*c> _gather_59[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "key_value_pattern _loop0_60"));
22182 KeyValuePair* elem;
22183 asdl_seq * seq;
22184 if (
22185 (elem = key_value_pattern_rule(p)) // key_value_pattern
22186 &&
22187 (seq = _loop0_60_rule(p)) // _loop0_60
22188 )
22189 {
22190 D(fprintf(stderr, "%*c+ _gather_59[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "key_value_pattern _loop0_60"));
22191 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
22192 goto done;
22193 }
22194 p->mark = _mark;
22195 D(fprintf(stderr, "%*c%s _gather_59[%d-%d]: %s failed!\n", p->level, ' ',
22196 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "key_value_pattern _loop0_60"));
22197 }
22198 _res = NULL;
22199 done:
22200 D(p->level--);
22201 return _res;
22202}
22203
22204// _tmp_61: literal_pattern | value_pattern
22205static void *
22206_tmp_61_rule(Parser *p)
22207{
22208 D(p->level++);
22209 if (p->error_indicator) {
22210 D(p->level--);
22211 return NULL;
22212 }
22213 void * _res = NULL;
22214 int _mark = p->mark;
22215 { // literal_pattern
22216 if (p->error_indicator) {
22217 D(p->level--);
22218 return NULL;
22219 }
22220 D(fprintf(stderr, "%*c> _tmp_61[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "literal_pattern"));
22221 expr_ty literal_pattern_var;
22222 if (
22223 (literal_pattern_var = literal_pattern_rule(p)) // literal_pattern
22224 )
22225 {
22226 D(fprintf(stderr, "%*c+ _tmp_61[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "literal_pattern"));
22227 _res = literal_pattern_var;
22228 goto done;
22229 }
22230 p->mark = _mark;
22231 D(fprintf(stderr, "%*c%s _tmp_61[%d-%d]: %s failed!\n", p->level, ' ',
22232 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "literal_pattern"));
22233 }
22234 { // value_pattern
22235 if (p->error_indicator) {
22236 D(p->level--);
22237 return NULL;
22238 }
22239 D(fprintf(stderr, "%*c> _tmp_61[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "value_pattern"));
22240 expr_ty value_pattern_var;
22241 if (
22242 (value_pattern_var = value_pattern_rule(p)) // value_pattern
22243 )
22244 {
22245 D(fprintf(stderr, "%*c+ _tmp_61[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "value_pattern"));
22246 _res = value_pattern_var;
22247 goto done;
22248 }
22249 p->mark = _mark;
22250 D(fprintf(stderr, "%*c%s _tmp_61[%d-%d]: %s failed!\n", p->level, ' ',
22251 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "value_pattern"));
22252 }
22253 _res = NULL;
22254 done:
22255 D(p->level--);
22256 return _res;
22257}
22258
22259// _loop0_63: ',' pattern
22260static asdl_seq *
22261_loop0_63_rule(Parser *p)
22262{
22263 D(p->level++);
22264 if (p->error_indicator) {
22265 D(p->level--);
22266 return NULL;
22267 }
22268 void *_res = NULL;
22269 int _mark = p->mark;
22270 int _start_mark = p->mark;
22271 void **_children = PyMem_Malloc(sizeof(void *));
22272 if (!_children) {
22273 p->error_indicator = 1;
22274 PyErr_NoMemory();
22275 D(p->level--);
22276 return NULL;
22277 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010022278 Py_ssize_t _children_capacity = 1;
22279 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080022280 { // ',' pattern
22281 if (p->error_indicator) {
22282 D(p->level--);
22283 return NULL;
22284 }
22285 D(fprintf(stderr, "%*c> _loop0_63[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' pattern"));
22286 Token * _literal;
22287 expr_ty elem;
22288 while (
22289 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22290 &&
22291 (elem = pattern_rule(p)) // pattern
22292 )
22293 {
22294 _res = elem;
22295 if (_res == NULL && PyErr_Occurred()) {
22296 p->error_indicator = 1;
22297 PyMem_Free(_children);
22298 D(p->level--);
22299 return NULL;
22300 }
22301 if (_n == _children_capacity) {
22302 _children_capacity *= 2;
22303 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22304 if (!_new_children) {
22305 p->error_indicator = 1;
22306 PyErr_NoMemory();
22307 D(p->level--);
22308 return NULL;
22309 }
22310 _children = _new_children;
22311 }
22312 _children[_n++] = _res;
22313 _mark = p->mark;
22314 }
22315 p->mark = _mark;
22316 D(fprintf(stderr, "%*c%s _loop0_63[%d-%d]: %s failed!\n", p->level, ' ',
22317 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' pattern"));
22318 }
22319 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
22320 if (!_seq) {
22321 PyMem_Free(_children);
22322 p->error_indicator = 1;
22323 PyErr_NoMemory();
22324 D(p->level--);
22325 return NULL;
22326 }
22327 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
22328 PyMem_Free(_children);
22329 _PyPegen_insert_memo(p, _start_mark, _loop0_63_type, _seq);
22330 D(p->level--);
22331 return _seq;
22332}
22333
22334// _gather_62: pattern _loop0_63
22335static asdl_seq *
22336_gather_62_rule(Parser *p)
22337{
22338 D(p->level++);
22339 if (p->error_indicator) {
22340 D(p->level--);
22341 return NULL;
22342 }
22343 asdl_seq * _res = NULL;
22344 int _mark = p->mark;
22345 { // pattern _loop0_63
22346 if (p->error_indicator) {
22347 D(p->level--);
22348 return NULL;
22349 }
22350 D(fprintf(stderr, "%*c> _gather_62[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "pattern _loop0_63"));
22351 expr_ty elem;
22352 asdl_seq * seq;
22353 if (
22354 (elem = pattern_rule(p)) // pattern
22355 &&
22356 (seq = _loop0_63_rule(p)) // _loop0_63
22357 )
22358 {
22359 D(fprintf(stderr, "%*c+ _gather_62[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "pattern _loop0_63"));
22360 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
22361 goto done;
22362 }
22363 p->mark = _mark;
22364 D(fprintf(stderr, "%*c%s _gather_62[%d-%d]: %s failed!\n", p->level, ' ',
22365 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "pattern _loop0_63"));
22366 }
22367 _res = NULL;
22368 done:
22369 D(p->level--);
22370 return _res;
22371}
22372
22373// _loop0_65: ',' keyword_pattern
22374static asdl_seq *
22375_loop0_65_rule(Parser *p)
22376{
22377 D(p->level++);
22378 if (p->error_indicator) {
22379 D(p->level--);
22380 return NULL;
22381 }
22382 void *_res = NULL;
22383 int _mark = p->mark;
22384 int _start_mark = p->mark;
22385 void **_children = PyMem_Malloc(sizeof(void *));
22386 if (!_children) {
22387 p->error_indicator = 1;
22388 PyErr_NoMemory();
22389 D(p->level--);
22390 return NULL;
22391 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010022392 Py_ssize_t _children_capacity = 1;
22393 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080022394 { // ',' keyword_pattern
22395 if (p->error_indicator) {
22396 D(p->level--);
22397 return NULL;
22398 }
22399 D(fprintf(stderr, "%*c> _loop0_65[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' keyword_pattern"));
22400 Token * _literal;
22401 keyword_ty elem;
22402 while (
22403 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22404 &&
22405 (elem = keyword_pattern_rule(p)) // keyword_pattern
22406 )
22407 {
22408 _res = elem;
22409 if (_res == NULL && PyErr_Occurred()) {
22410 p->error_indicator = 1;
22411 PyMem_Free(_children);
22412 D(p->level--);
22413 return NULL;
22414 }
22415 if (_n == _children_capacity) {
22416 _children_capacity *= 2;
22417 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22418 if (!_new_children) {
22419 p->error_indicator = 1;
22420 PyErr_NoMemory();
22421 D(p->level--);
22422 return NULL;
22423 }
22424 _children = _new_children;
22425 }
22426 _children[_n++] = _res;
22427 _mark = p->mark;
22428 }
22429 p->mark = _mark;
22430 D(fprintf(stderr, "%*c%s _loop0_65[%d-%d]: %s failed!\n", p->level, ' ',
22431 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' keyword_pattern"));
22432 }
22433 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
22434 if (!_seq) {
22435 PyMem_Free(_children);
22436 p->error_indicator = 1;
22437 PyErr_NoMemory();
22438 D(p->level--);
22439 return NULL;
22440 }
22441 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
22442 PyMem_Free(_children);
22443 _PyPegen_insert_memo(p, _start_mark, _loop0_65_type, _seq);
22444 D(p->level--);
22445 return _seq;
22446}
22447
22448// _gather_64: keyword_pattern _loop0_65
22449static asdl_seq *
22450_gather_64_rule(Parser *p)
22451{
22452 D(p->level++);
22453 if (p->error_indicator) {
22454 D(p->level--);
22455 return NULL;
22456 }
22457 asdl_seq * _res = NULL;
22458 int _mark = p->mark;
22459 { // keyword_pattern _loop0_65
22460 if (p->error_indicator) {
22461 D(p->level--);
22462 return NULL;
22463 }
22464 D(fprintf(stderr, "%*c> _gather_64[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "keyword_pattern _loop0_65"));
22465 keyword_ty elem;
22466 asdl_seq * seq;
22467 if (
22468 (elem = keyword_pattern_rule(p)) // keyword_pattern
22469 &&
22470 (seq = _loop0_65_rule(p)) // _loop0_65
22471 )
22472 {
22473 D(fprintf(stderr, "%*c+ _gather_64[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "keyword_pattern _loop0_65"));
22474 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
22475 goto done;
22476 }
22477 p->mark = _mark;
22478 D(fprintf(stderr, "%*c%s _gather_64[%d-%d]: %s failed!\n", p->level, ' ',
22479 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "keyword_pattern _loop0_65"));
22480 }
22481 _res = NULL;
22482 done:
22483 D(p->level--);
22484 return _res;
22485}
22486
22487// _tmp_66: 'from' expression
22488static void *
22489_tmp_66_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022490{
22491 D(p->level++);
22492 if (p->error_indicator) {
22493 D(p->level--);
22494 return NULL;
22495 }
22496 void * _res = NULL;
22497 int _mark = p->mark;
22498 { // 'from' expression
22499 if (p->error_indicator) {
22500 D(p->level--);
22501 return NULL;
22502 }
Brandt Bucher145bf262021-02-26 14:51:55 -080022503 D(fprintf(stderr, "%*c> _tmp_66[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022504 Token * _keyword;
22505 expr_ty z;
22506 if (
22507 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
22508 &&
22509 (z = expression_rule(p)) // expression
22510 )
22511 {
Brandt Bucher145bf262021-02-26 14:51:55 -080022512 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 +010022513 _res = z;
22514 if (_res == NULL && PyErr_Occurred()) {
22515 p->error_indicator = 1;
22516 D(p->level--);
22517 return NULL;
22518 }
22519 goto done;
22520 }
22521 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080022522 D(fprintf(stderr, "%*c%s _tmp_66[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022523 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022524 }
22525 _res = NULL;
22526 done:
22527 D(p->level--);
22528 return _res;
22529}
22530
Brandt Bucher145bf262021-02-26 14:51:55 -080022531// _tmp_67: '->' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022532static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080022533_tmp_67_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022534{
22535 D(p->level++);
22536 if (p->error_indicator) {
22537 D(p->level--);
22538 return NULL;
22539 }
22540 void * _res = NULL;
22541 int _mark = p->mark;
22542 { // '->' expression
22543 if (p->error_indicator) {
22544 D(p->level--);
22545 return NULL;
22546 }
Brandt Bucher145bf262021-02-26 14:51:55 -080022547 D(fprintf(stderr, "%*c> _tmp_67[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'->' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022548 Token * _literal;
22549 expr_ty z;
22550 if (
22551 (_literal = _PyPegen_expect_token(p, 51)) // token='->'
22552 &&
22553 (z = expression_rule(p)) // expression
22554 )
22555 {
Brandt Bucher145bf262021-02-26 14:51:55 -080022556 D(fprintf(stderr, "%*c+ _tmp_67[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'->' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022557 _res = z;
22558 if (_res == NULL && PyErr_Occurred()) {
22559 p->error_indicator = 1;
22560 D(p->level--);
22561 return NULL;
22562 }
22563 goto done;
22564 }
22565 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080022566 D(fprintf(stderr, "%*c%s _tmp_67[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022567 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'->' expression"));
22568 }
22569 _res = NULL;
22570 done:
22571 D(p->level--);
22572 return _res;
22573}
22574
Brandt Bucher145bf262021-02-26 14:51:55 -080022575// _tmp_68: '->' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022576static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080022577_tmp_68_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022578{
22579 D(p->level++);
22580 if (p->error_indicator) {
22581 D(p->level--);
22582 return NULL;
22583 }
22584 void * _res = NULL;
22585 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022586 { // '->' expression
22587 if (p->error_indicator) {
22588 D(p->level--);
22589 return NULL;
22590 }
Brandt Bucher145bf262021-02-26 14:51:55 -080022591 D(fprintf(stderr, "%*c> _tmp_68[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'->' expression"));
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022592 Token * _literal;
22593 expr_ty z;
22594 if (
22595 (_literal = _PyPegen_expect_token(p, 51)) // token='->'
22596 &&
22597 (z = expression_rule(p)) // expression
22598 )
22599 {
Brandt Bucher145bf262021-02-26 14:51:55 -080022600 D(fprintf(stderr, "%*c+ _tmp_68[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'->' expression"));
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022601 _res = z;
22602 if (_res == NULL && PyErr_Occurred()) {
22603 p->error_indicator = 1;
22604 D(p->level--);
22605 return NULL;
22606 }
22607 goto done;
22608 }
22609 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080022610 D(fprintf(stderr, "%*c%s _tmp_68[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022611 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'->' expression"));
22612 }
22613 _res = NULL;
22614 done:
22615 D(p->level--);
22616 return _res;
22617}
22618
Brandt Bucher145bf262021-02-26 14:51:55 -080022619// _tmp_69: NEWLINE INDENT
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022620static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080022621_tmp_69_rule(Parser *p)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022622{
22623 D(p->level++);
22624 if (p->error_indicator) {
22625 D(p->level--);
22626 return NULL;
22627 }
22628 void * _res = NULL;
22629 int _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022630 { // NEWLINE INDENT
22631 if (p->error_indicator) {
22632 D(p->level--);
22633 return NULL;
22634 }
Brandt Bucher145bf262021-02-26 14:51:55 -080022635 D(fprintf(stderr, "%*c> _tmp_69[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE INDENT"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022636 Token * indent_var;
22637 Token * newline_var;
22638 if (
22639 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
22640 &&
22641 (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
22642 )
22643 {
Brandt Bucher145bf262021-02-26 14:51:55 -080022644 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 +010022645 _res = _PyPegen_dummy_name(p, newline_var, indent_var);
22646 goto done;
22647 }
22648 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080022649 D(fprintf(stderr, "%*c%s _tmp_69[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022650 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE INDENT"));
22651 }
22652 _res = NULL;
22653 done:
22654 D(p->level--);
22655 return _res;
22656}
22657
Brandt Bucher145bf262021-02-26 14:51:55 -080022658// _loop0_70: param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022659static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080022660_loop0_70_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022661{
22662 D(p->level++);
22663 if (p->error_indicator) {
22664 D(p->level--);
22665 return NULL;
22666 }
22667 void *_res = NULL;
22668 int _mark = p->mark;
22669 int _start_mark = p->mark;
22670 void **_children = PyMem_Malloc(sizeof(void *));
22671 if (!_children) {
22672 p->error_indicator = 1;
22673 PyErr_NoMemory();
22674 D(p->level--);
22675 return NULL;
22676 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010022677 Py_ssize_t _children_capacity = 1;
22678 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022679 { // param_no_default
22680 if (p->error_indicator) {
22681 D(p->level--);
22682 return NULL;
22683 }
Brandt Bucher145bf262021-02-26 14:51:55 -080022684 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 +010022685 arg_ty param_no_default_var;
22686 while (
22687 (param_no_default_var = param_no_default_rule(p)) // param_no_default
22688 )
22689 {
22690 _res = param_no_default_var;
22691 if (_n == _children_capacity) {
22692 _children_capacity *= 2;
22693 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22694 if (!_new_children) {
22695 p->error_indicator = 1;
22696 PyErr_NoMemory();
22697 D(p->level--);
22698 return NULL;
22699 }
22700 _children = _new_children;
22701 }
22702 _children[_n++] = _res;
22703 _mark = p->mark;
22704 }
22705 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080022706 D(fprintf(stderr, "%*c%s _loop0_70[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022707 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022708 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022709 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022710 if (!_seq) {
22711 PyMem_Free(_children);
22712 p->error_indicator = 1;
22713 PyErr_NoMemory();
22714 D(p->level--);
22715 return NULL;
22716 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022717 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022718 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080022719 _PyPegen_insert_memo(p, _start_mark, _loop0_70_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022720 D(p->level--);
22721 return _seq;
22722}
22723
Brandt Bucher145bf262021-02-26 14:51:55 -080022724// _loop0_71: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022725static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080022726_loop0_71_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022727{
22728 D(p->level++);
22729 if (p->error_indicator) {
22730 D(p->level--);
22731 return NULL;
22732 }
22733 void *_res = NULL;
22734 int _mark = p->mark;
22735 int _start_mark = p->mark;
22736 void **_children = PyMem_Malloc(sizeof(void *));
22737 if (!_children) {
22738 p->error_indicator = 1;
22739 PyErr_NoMemory();
22740 D(p->level--);
22741 return NULL;
22742 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010022743 Py_ssize_t _children_capacity = 1;
22744 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022745 { // param_with_default
22746 if (p->error_indicator) {
22747 D(p->level--);
22748 return NULL;
22749 }
Brandt Bucher145bf262021-02-26 14:51:55 -080022750 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 +010022751 NameDefaultPair* param_with_default_var;
22752 while (
22753 (param_with_default_var = param_with_default_rule(p)) // param_with_default
22754 )
22755 {
22756 _res = param_with_default_var;
22757 if (_n == _children_capacity) {
22758 _children_capacity *= 2;
22759 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22760 if (!_new_children) {
22761 p->error_indicator = 1;
22762 PyErr_NoMemory();
22763 D(p->level--);
22764 return NULL;
22765 }
22766 _children = _new_children;
22767 }
22768 _children[_n++] = _res;
22769 _mark = p->mark;
22770 }
22771 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080022772 D(fprintf(stderr, "%*c%s _loop0_71[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022773 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
22774 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022775 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022776 if (!_seq) {
22777 PyMem_Free(_children);
22778 p->error_indicator = 1;
22779 PyErr_NoMemory();
22780 D(p->level--);
22781 return NULL;
22782 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022783 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022784 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080022785 _PyPegen_insert_memo(p, _start_mark, _loop0_71_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022786 D(p->level--);
22787 return _seq;
22788}
22789
Brandt Bucher145bf262021-02-26 14:51:55 -080022790// _loop0_72: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022791static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080022792_loop0_72_rule(Parser *p)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022793{
22794 D(p->level++);
22795 if (p->error_indicator) {
22796 D(p->level--);
22797 return NULL;
22798 }
22799 void *_res = NULL;
22800 int _mark = p->mark;
22801 int _start_mark = p->mark;
22802 void **_children = PyMem_Malloc(sizeof(void *));
22803 if (!_children) {
22804 p->error_indicator = 1;
22805 PyErr_NoMemory();
22806 D(p->level--);
22807 return NULL;
22808 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010022809 Py_ssize_t _children_capacity = 1;
22810 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022811 { // param_with_default
22812 if (p->error_indicator) {
22813 D(p->level--);
22814 return NULL;
22815 }
Brandt Bucher145bf262021-02-26 14:51:55 -080022816 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 +030022817 NameDefaultPair* param_with_default_var;
22818 while (
22819 (param_with_default_var = param_with_default_rule(p)) // param_with_default
22820 )
22821 {
22822 _res = param_with_default_var;
22823 if (_n == _children_capacity) {
22824 _children_capacity *= 2;
22825 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22826 if (!_new_children) {
22827 p->error_indicator = 1;
22828 PyErr_NoMemory();
22829 D(p->level--);
22830 return NULL;
22831 }
22832 _children = _new_children;
22833 }
22834 _children[_n++] = _res;
22835 _mark = p->mark;
22836 }
22837 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080022838 D(fprintf(stderr, "%*c%s _loop0_72[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022839 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
22840 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022841 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022842 if (!_seq) {
22843 PyMem_Free(_children);
22844 p->error_indicator = 1;
22845 PyErr_NoMemory();
22846 D(p->level--);
22847 return NULL;
22848 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022849 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022850 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080022851 _PyPegen_insert_memo(p, _start_mark, _loop0_72_type, _seq);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022852 D(p->level--);
22853 return _seq;
22854}
22855
Brandt Bucher145bf262021-02-26 14:51:55 -080022856// _loop1_73: param_no_default
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022857static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080022858_loop1_73_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022859{
22860 D(p->level++);
22861 if (p->error_indicator) {
22862 D(p->level--);
22863 return NULL;
22864 }
22865 void *_res = NULL;
22866 int _mark = p->mark;
22867 int _start_mark = p->mark;
22868 void **_children = PyMem_Malloc(sizeof(void *));
22869 if (!_children) {
22870 p->error_indicator = 1;
22871 PyErr_NoMemory();
22872 D(p->level--);
22873 return NULL;
22874 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010022875 Py_ssize_t _children_capacity = 1;
22876 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022877 { // param_no_default
22878 if (p->error_indicator) {
22879 D(p->level--);
22880 return NULL;
22881 }
Brandt Bucher145bf262021-02-26 14:51:55 -080022882 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 +010022883 arg_ty param_no_default_var;
22884 while (
22885 (param_no_default_var = param_no_default_rule(p)) // param_no_default
22886 )
22887 {
22888 _res = param_no_default_var;
22889 if (_n == _children_capacity) {
22890 _children_capacity *= 2;
22891 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22892 if (!_new_children) {
22893 p->error_indicator = 1;
22894 PyErr_NoMemory();
22895 D(p->level--);
22896 return NULL;
22897 }
22898 _children = _new_children;
22899 }
22900 _children[_n++] = _res;
22901 _mark = p->mark;
22902 }
22903 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080022904 D(fprintf(stderr, "%*c%s _loop1_73[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022905 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
22906 }
22907 if (_n == 0 || p->error_indicator) {
22908 PyMem_Free(_children);
22909 D(p->level--);
22910 return NULL;
22911 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022912 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022913 if (!_seq) {
22914 PyMem_Free(_children);
22915 p->error_indicator = 1;
22916 PyErr_NoMemory();
22917 D(p->level--);
22918 return NULL;
22919 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022920 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022921 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080022922 _PyPegen_insert_memo(p, _start_mark, _loop1_73_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022923 D(p->level--);
22924 return _seq;
22925}
22926
Brandt Bucher145bf262021-02-26 14:51:55 -080022927// _loop0_74: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022928static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080022929_loop0_74_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022930{
22931 D(p->level++);
22932 if (p->error_indicator) {
22933 D(p->level--);
22934 return NULL;
22935 }
22936 void *_res = NULL;
22937 int _mark = p->mark;
22938 int _start_mark = p->mark;
22939 void **_children = PyMem_Malloc(sizeof(void *));
22940 if (!_children) {
22941 p->error_indicator = 1;
22942 PyErr_NoMemory();
22943 D(p->level--);
22944 return NULL;
22945 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010022946 Py_ssize_t _children_capacity = 1;
22947 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022948 { // param_with_default
22949 if (p->error_indicator) {
22950 D(p->level--);
22951 return NULL;
22952 }
Brandt Bucher145bf262021-02-26 14:51:55 -080022953 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 +010022954 NameDefaultPair* param_with_default_var;
22955 while (
22956 (param_with_default_var = param_with_default_rule(p)) // param_with_default
22957 )
22958 {
22959 _res = param_with_default_var;
22960 if (_n == _children_capacity) {
22961 _children_capacity *= 2;
22962 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22963 if (!_new_children) {
22964 p->error_indicator = 1;
22965 PyErr_NoMemory();
22966 D(p->level--);
22967 return NULL;
22968 }
22969 _children = _new_children;
22970 }
22971 _children[_n++] = _res;
22972 _mark = p->mark;
22973 }
22974 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080022975 D(fprintf(stderr, "%*c%s _loop0_74[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022976 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
22977 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022978 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022979 if (!_seq) {
22980 PyMem_Free(_children);
22981 p->error_indicator = 1;
22982 PyErr_NoMemory();
22983 D(p->level--);
22984 return NULL;
22985 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022986 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022987 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080022988 _PyPegen_insert_memo(p, _start_mark, _loop0_74_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022989 D(p->level--);
22990 return _seq;
22991}
22992
Brandt Bucher145bf262021-02-26 14:51:55 -080022993// _loop1_75: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022994static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080022995_loop1_75_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022996{
22997 D(p->level++);
22998 if (p->error_indicator) {
22999 D(p->level--);
23000 return NULL;
23001 }
23002 void *_res = NULL;
23003 int _mark = p->mark;
23004 int _start_mark = p->mark;
23005 void **_children = PyMem_Malloc(sizeof(void *));
23006 if (!_children) {
23007 p->error_indicator = 1;
23008 PyErr_NoMemory();
23009 D(p->level--);
23010 return NULL;
23011 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023012 Py_ssize_t _children_capacity = 1;
23013 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023014 { // param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023015 if (p->error_indicator) {
23016 D(p->level--);
23017 return NULL;
23018 }
Brandt Bucher145bf262021-02-26 14:51:55 -080023019 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 +030023020 NameDefaultPair* param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023021 while (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023022 (param_with_default_var = param_with_default_rule(p)) // param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023023 )
23024 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023025 _res = param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023026 if (_n == _children_capacity) {
23027 _children_capacity *= 2;
23028 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23029 if (!_new_children) {
23030 p->error_indicator = 1;
23031 PyErr_NoMemory();
23032 D(p->level--);
23033 return NULL;
23034 }
23035 _children = _new_children;
23036 }
23037 _children[_n++] = _res;
23038 _mark = p->mark;
23039 }
23040 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080023041 D(fprintf(stderr, "%*c%s _loop1_75[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023042 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023043 }
23044 if (_n == 0 || p->error_indicator) {
23045 PyMem_Free(_children);
23046 D(p->level--);
23047 return NULL;
23048 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023049 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023050 if (!_seq) {
23051 PyMem_Free(_children);
23052 p->error_indicator = 1;
23053 PyErr_NoMemory();
23054 D(p->level--);
23055 return NULL;
23056 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023057 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023058 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080023059 _PyPegen_insert_memo(p, _start_mark, _loop1_75_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023060 D(p->level--);
23061 return _seq;
23062}
23063
Brandt Bucher145bf262021-02-26 14:51:55 -080023064// _loop1_76: param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023065static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080023066_loop1_76_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023067{
23068 D(p->level++);
23069 if (p->error_indicator) {
23070 D(p->level--);
23071 return NULL;
23072 }
23073 void *_res = NULL;
23074 int _mark = p->mark;
23075 int _start_mark = p->mark;
23076 void **_children = PyMem_Malloc(sizeof(void *));
23077 if (!_children) {
23078 p->error_indicator = 1;
23079 PyErr_NoMemory();
23080 D(p->level--);
23081 return NULL;
23082 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023083 Py_ssize_t _children_capacity = 1;
23084 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023085 { // param_no_default
23086 if (p->error_indicator) {
23087 D(p->level--);
23088 return NULL;
23089 }
Brandt Bucher145bf262021-02-26 14:51:55 -080023090 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 +010023091 arg_ty param_no_default_var;
23092 while (
23093 (param_no_default_var = param_no_default_rule(p)) // param_no_default
23094 )
23095 {
23096 _res = param_no_default_var;
23097 if (_n == _children_capacity) {
23098 _children_capacity *= 2;
23099 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23100 if (!_new_children) {
23101 p->error_indicator = 1;
23102 PyErr_NoMemory();
23103 D(p->level--);
23104 return NULL;
23105 }
23106 _children = _new_children;
23107 }
23108 _children[_n++] = _res;
23109 _mark = p->mark;
23110 }
23111 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080023112 D(fprintf(stderr, "%*c%s _loop1_76[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023113 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
23114 }
23115 if (_n == 0 || p->error_indicator) {
23116 PyMem_Free(_children);
23117 D(p->level--);
23118 return NULL;
23119 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023120 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023121 if (!_seq) {
23122 PyMem_Free(_children);
23123 p->error_indicator = 1;
23124 PyErr_NoMemory();
23125 D(p->level--);
23126 return NULL;
23127 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023128 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023129 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080023130 _PyPegen_insert_memo(p, _start_mark, _loop1_76_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023131 D(p->level--);
23132 return _seq;
23133}
23134
Brandt Bucher145bf262021-02-26 14:51:55 -080023135// _loop1_77: param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023136static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080023137_loop1_77_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023138{
23139 D(p->level++);
23140 if (p->error_indicator) {
23141 D(p->level--);
23142 return NULL;
23143 }
23144 void *_res = NULL;
23145 int _mark = p->mark;
23146 int _start_mark = p->mark;
23147 void **_children = PyMem_Malloc(sizeof(void *));
23148 if (!_children) {
23149 p->error_indicator = 1;
23150 PyErr_NoMemory();
23151 D(p->level--);
23152 return NULL;
23153 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023154 Py_ssize_t _children_capacity = 1;
23155 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023156 { // param_no_default
23157 if (p->error_indicator) {
23158 D(p->level--);
23159 return NULL;
23160 }
Brandt Bucher145bf262021-02-26 14:51:55 -080023161 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 +010023162 arg_ty param_no_default_var;
23163 while (
23164 (param_no_default_var = param_no_default_rule(p)) // param_no_default
23165 )
23166 {
23167 _res = param_no_default_var;
23168 if (_n == _children_capacity) {
23169 _children_capacity *= 2;
23170 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23171 if (!_new_children) {
23172 p->error_indicator = 1;
23173 PyErr_NoMemory();
23174 D(p->level--);
23175 return NULL;
23176 }
23177 _children = _new_children;
23178 }
23179 _children[_n++] = _res;
23180 _mark = p->mark;
23181 }
23182 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080023183 D(fprintf(stderr, "%*c%s _loop1_77[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023184 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
23185 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023186 if (_n == 0 || p->error_indicator) {
23187 PyMem_Free(_children);
23188 D(p->level--);
23189 return NULL;
23190 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023191 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023192 if (!_seq) {
23193 PyMem_Free(_children);
23194 p->error_indicator = 1;
23195 PyErr_NoMemory();
23196 D(p->level--);
23197 return NULL;
23198 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023199 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023200 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080023201 _PyPegen_insert_memo(p, _start_mark, _loop1_77_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023202 D(p->level--);
23203 return _seq;
23204}
23205
Brandt Bucher145bf262021-02-26 14:51:55 -080023206// _loop0_78: param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023207static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080023208_loop0_78_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023209{
23210 D(p->level++);
23211 if (p->error_indicator) {
23212 D(p->level--);
23213 return NULL;
23214 }
23215 void *_res = NULL;
23216 int _mark = p->mark;
23217 int _start_mark = p->mark;
23218 void **_children = PyMem_Malloc(sizeof(void *));
23219 if (!_children) {
23220 p->error_indicator = 1;
23221 PyErr_NoMemory();
23222 D(p->level--);
23223 return NULL;
23224 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023225 Py_ssize_t _children_capacity = 1;
23226 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023227 { // param_no_default
23228 if (p->error_indicator) {
23229 D(p->level--);
23230 return NULL;
23231 }
Brandt Bucher145bf262021-02-26 14:51:55 -080023232 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 +010023233 arg_ty param_no_default_var;
23234 while (
23235 (param_no_default_var = param_no_default_rule(p)) // param_no_default
23236 )
23237 {
23238 _res = param_no_default_var;
23239 if (_n == _children_capacity) {
23240 _children_capacity *= 2;
23241 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23242 if (!_new_children) {
23243 p->error_indicator = 1;
23244 PyErr_NoMemory();
23245 D(p->level--);
23246 return NULL;
23247 }
23248 _children = _new_children;
23249 }
23250 _children[_n++] = _res;
23251 _mark = p->mark;
23252 }
23253 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080023254 D(fprintf(stderr, "%*c%s _loop0_78[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023255 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
23256 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023257 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023258 if (!_seq) {
23259 PyMem_Free(_children);
23260 p->error_indicator = 1;
23261 PyErr_NoMemory();
23262 D(p->level--);
23263 return NULL;
23264 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023265 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023266 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080023267 _PyPegen_insert_memo(p, _start_mark, _loop0_78_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023268 D(p->level--);
23269 return _seq;
23270}
23271
Brandt Bucher145bf262021-02-26 14:51:55 -080023272// _loop1_79: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023273static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080023274_loop1_79_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023275{
23276 D(p->level++);
23277 if (p->error_indicator) {
23278 D(p->level--);
23279 return NULL;
23280 }
23281 void *_res = NULL;
23282 int _mark = p->mark;
23283 int _start_mark = p->mark;
23284 void **_children = PyMem_Malloc(sizeof(void *));
23285 if (!_children) {
23286 p->error_indicator = 1;
23287 PyErr_NoMemory();
23288 D(p->level--);
23289 return NULL;
23290 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023291 Py_ssize_t _children_capacity = 1;
23292 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023293 { // param_with_default
23294 if (p->error_indicator) {
23295 D(p->level--);
23296 return NULL;
23297 }
Brandt Bucher145bf262021-02-26 14:51:55 -080023298 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 +010023299 NameDefaultPair* param_with_default_var;
23300 while (
23301 (param_with_default_var = param_with_default_rule(p)) // param_with_default
23302 )
23303 {
23304 _res = param_with_default_var;
23305 if (_n == _children_capacity) {
23306 _children_capacity *= 2;
23307 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23308 if (!_new_children) {
23309 p->error_indicator = 1;
23310 PyErr_NoMemory();
23311 D(p->level--);
23312 return NULL;
23313 }
23314 _children = _new_children;
23315 }
23316 _children[_n++] = _res;
23317 _mark = p->mark;
23318 }
23319 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080023320 D(fprintf(stderr, "%*c%s _loop1_79[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023321 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
23322 }
23323 if (_n == 0 || p->error_indicator) {
23324 PyMem_Free(_children);
23325 D(p->level--);
23326 return NULL;
23327 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023328 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023329 if (!_seq) {
23330 PyMem_Free(_children);
23331 p->error_indicator = 1;
23332 PyErr_NoMemory();
23333 D(p->level--);
23334 return NULL;
23335 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023336 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023337 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080023338 _PyPegen_insert_memo(p, _start_mark, _loop1_79_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023339 D(p->level--);
23340 return _seq;
23341}
23342
Brandt Bucher145bf262021-02-26 14:51:55 -080023343// _loop0_80: param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023344static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080023345_loop0_80_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023346{
23347 D(p->level++);
23348 if (p->error_indicator) {
23349 D(p->level--);
23350 return NULL;
23351 }
23352 void *_res = NULL;
23353 int _mark = p->mark;
23354 int _start_mark = p->mark;
23355 void **_children = PyMem_Malloc(sizeof(void *));
23356 if (!_children) {
23357 p->error_indicator = 1;
23358 PyErr_NoMemory();
23359 D(p->level--);
23360 return NULL;
23361 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023362 Py_ssize_t _children_capacity = 1;
23363 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023364 { // param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023365 if (p->error_indicator) {
23366 D(p->level--);
23367 return NULL;
23368 }
Brandt Bucher145bf262021-02-26 14:51:55 -080023369 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 +030023370 arg_ty param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023371 while (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023372 (param_no_default_var = param_no_default_rule(p)) // param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023373 )
23374 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023375 _res = param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023376 if (_n == _children_capacity) {
23377 _children_capacity *= 2;
23378 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23379 if (!_new_children) {
23380 p->error_indicator = 1;
23381 PyErr_NoMemory();
23382 D(p->level--);
23383 return NULL;
23384 }
23385 _children = _new_children;
23386 }
23387 _children[_n++] = _res;
23388 _mark = p->mark;
23389 }
23390 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080023391 D(fprintf(stderr, "%*c%s _loop0_80[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023392 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023393 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023394 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023395 if (!_seq) {
23396 PyMem_Free(_children);
23397 p->error_indicator = 1;
23398 PyErr_NoMemory();
23399 D(p->level--);
23400 return NULL;
23401 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023402 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023403 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080023404 _PyPegen_insert_memo(p, _start_mark, _loop0_80_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023405 D(p->level--);
23406 return _seq;
23407}
23408
Brandt Bucher145bf262021-02-26 14:51:55 -080023409// _loop1_81: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023410static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080023411_loop1_81_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023412{
23413 D(p->level++);
23414 if (p->error_indicator) {
23415 D(p->level--);
23416 return NULL;
23417 }
23418 void *_res = NULL;
23419 int _mark = p->mark;
23420 int _start_mark = p->mark;
23421 void **_children = PyMem_Malloc(sizeof(void *));
23422 if (!_children) {
23423 p->error_indicator = 1;
23424 PyErr_NoMemory();
23425 D(p->level--);
23426 return NULL;
23427 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023428 Py_ssize_t _children_capacity = 1;
23429 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023430 { // param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023431 if (p->error_indicator) {
23432 D(p->level--);
23433 return NULL;
23434 }
Brandt Bucher145bf262021-02-26 14:51:55 -080023435 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 +030023436 NameDefaultPair* param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023437 while (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023438 (param_with_default_var = param_with_default_rule(p)) // param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023439 )
23440 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023441 _res = param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023442 if (_n == _children_capacity) {
23443 _children_capacity *= 2;
23444 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23445 if (!_new_children) {
23446 p->error_indicator = 1;
23447 PyErr_NoMemory();
23448 D(p->level--);
23449 return NULL;
23450 }
23451 _children = _new_children;
23452 }
23453 _children[_n++] = _res;
23454 _mark = p->mark;
23455 }
23456 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080023457 D(fprintf(stderr, "%*c%s _loop1_81[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023458 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023459 }
23460 if (_n == 0 || p->error_indicator) {
23461 PyMem_Free(_children);
23462 D(p->level--);
23463 return NULL;
23464 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023465 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023466 if (!_seq) {
23467 PyMem_Free(_children);
23468 p->error_indicator = 1;
23469 PyErr_NoMemory();
23470 D(p->level--);
23471 return NULL;
23472 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023473 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023474 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080023475 _PyPegen_insert_memo(p, _start_mark, _loop1_81_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023476 D(p->level--);
23477 return _seq;
23478}
23479
Brandt Bucher145bf262021-02-26 14:51:55 -080023480// _loop0_82: param_maybe_default
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023481static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080023482_loop0_82_rule(Parser *p)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023483{
23484 D(p->level++);
23485 if (p->error_indicator) {
23486 D(p->level--);
23487 return NULL;
23488 }
23489 void *_res = NULL;
23490 int _mark = p->mark;
23491 int _start_mark = p->mark;
23492 void **_children = PyMem_Malloc(sizeof(void *));
23493 if (!_children) {
23494 p->error_indicator = 1;
23495 PyErr_NoMemory();
23496 D(p->level--);
23497 return NULL;
23498 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023499 Py_ssize_t _children_capacity = 1;
23500 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023501 { // param_maybe_default
23502 if (p->error_indicator) {
23503 D(p->level--);
23504 return NULL;
23505 }
Brandt Bucher145bf262021-02-26 14:51:55 -080023506 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 +030023507 NameDefaultPair* param_maybe_default_var;
23508 while (
23509 (param_maybe_default_var = param_maybe_default_rule(p)) // param_maybe_default
23510 )
23511 {
23512 _res = param_maybe_default_var;
23513 if (_n == _children_capacity) {
23514 _children_capacity *= 2;
23515 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23516 if (!_new_children) {
23517 p->error_indicator = 1;
23518 PyErr_NoMemory();
23519 D(p->level--);
23520 return NULL;
23521 }
23522 _children = _new_children;
23523 }
23524 _children[_n++] = _res;
23525 _mark = p->mark;
23526 }
23527 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080023528 D(fprintf(stderr, "%*c%s _loop0_82[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023529 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_maybe_default"));
23530 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023531 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023532 if (!_seq) {
23533 PyMem_Free(_children);
23534 p->error_indicator = 1;
23535 PyErr_NoMemory();
23536 D(p->level--);
23537 return NULL;
23538 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023539 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023540 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080023541 _PyPegen_insert_memo(p, _start_mark, _loop0_82_type, _seq);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023542 D(p->level--);
23543 return _seq;
23544}
23545
Brandt Bucher145bf262021-02-26 14:51:55 -080023546// _loop1_83: param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023547static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080023548_loop1_83_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023549{
23550 D(p->level++);
23551 if (p->error_indicator) {
23552 D(p->level--);
23553 return NULL;
23554 }
23555 void *_res = NULL;
23556 int _mark = p->mark;
23557 int _start_mark = p->mark;
23558 void **_children = PyMem_Malloc(sizeof(void *));
23559 if (!_children) {
23560 p->error_indicator = 1;
23561 PyErr_NoMemory();
23562 D(p->level--);
23563 return NULL;
23564 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023565 Py_ssize_t _children_capacity = 1;
23566 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023567 { // param_maybe_default
23568 if (p->error_indicator) {
23569 D(p->level--);
23570 return NULL;
23571 }
Brandt Bucher145bf262021-02-26 14:51:55 -080023572 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 +030023573 NameDefaultPair* param_maybe_default_var;
23574 while (
23575 (param_maybe_default_var = param_maybe_default_rule(p)) // param_maybe_default
23576 )
23577 {
23578 _res = param_maybe_default_var;
23579 if (_n == _children_capacity) {
23580 _children_capacity *= 2;
23581 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23582 if (!_new_children) {
23583 p->error_indicator = 1;
23584 PyErr_NoMemory();
23585 D(p->level--);
23586 return NULL;
23587 }
23588 _children = _new_children;
23589 }
23590 _children[_n++] = _res;
23591 _mark = p->mark;
23592 }
23593 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080023594 D(fprintf(stderr, "%*c%s _loop1_83[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023595 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_maybe_default"));
23596 }
23597 if (_n == 0 || p->error_indicator) {
23598 PyMem_Free(_children);
23599 D(p->level--);
23600 return NULL;
23601 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023602 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023603 if (!_seq) {
23604 PyMem_Free(_children);
23605 p->error_indicator = 1;
23606 PyErr_NoMemory();
23607 D(p->level--);
23608 return NULL;
23609 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023610 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023611 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080023612 _PyPegen_insert_memo(p, _start_mark, _loop1_83_type, _seq);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023613 D(p->level--);
23614 return _seq;
23615}
23616
Brandt Bucher145bf262021-02-26 14:51:55 -080023617// _loop1_84: ('@' named_expression NEWLINE)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023618static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080023619_loop1_84_rule(Parser *p)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023620{
23621 D(p->level++);
23622 if (p->error_indicator) {
23623 D(p->level--);
23624 return NULL;
23625 }
23626 void *_res = NULL;
23627 int _mark = p->mark;
23628 int _start_mark = p->mark;
23629 void **_children = PyMem_Malloc(sizeof(void *));
23630 if (!_children) {
23631 p->error_indicator = 1;
23632 PyErr_NoMemory();
23633 D(p->level--);
23634 return NULL;
23635 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023636 Py_ssize_t _children_capacity = 1;
23637 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023638 { // ('@' named_expression NEWLINE)
23639 if (p->error_indicator) {
23640 D(p->level--);
23641 return NULL;
23642 }
Brandt Bucher145bf262021-02-26 14:51:55 -080023643 D(fprintf(stderr, "%*c> _loop1_84[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('@' named_expression NEWLINE)"));
23644 void *_tmp_165_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023645 while (
Brandt Bucher145bf262021-02-26 14:51:55 -080023646 (_tmp_165_var = _tmp_165_rule(p)) // '@' named_expression NEWLINE
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023647 )
23648 {
Brandt Bucher145bf262021-02-26 14:51:55 -080023649 _res = _tmp_165_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023650 if (_n == _children_capacity) {
23651 _children_capacity *= 2;
23652 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23653 if (!_new_children) {
23654 p->error_indicator = 1;
23655 PyErr_NoMemory();
23656 D(p->level--);
23657 return NULL;
23658 }
23659 _children = _new_children;
23660 }
23661 _children[_n++] = _res;
23662 _mark = p->mark;
23663 }
23664 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080023665 D(fprintf(stderr, "%*c%s _loop1_84[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023666 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('@' named_expression NEWLINE)"));
23667 }
23668 if (_n == 0 || p->error_indicator) {
23669 PyMem_Free(_children);
23670 D(p->level--);
23671 return NULL;
23672 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023673 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023674 if (!_seq) {
23675 PyMem_Free(_children);
23676 p->error_indicator = 1;
23677 PyErr_NoMemory();
23678 D(p->level--);
23679 return NULL;
23680 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023681 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023682 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080023683 _PyPegen_insert_memo(p, _start_mark, _loop1_84_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023684 D(p->level--);
23685 return _seq;
23686}
23687
Brandt Bucher145bf262021-02-26 14:51:55 -080023688// _tmp_85: '(' arguments? ')'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023689static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080023690_tmp_85_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023691{
23692 D(p->level++);
23693 if (p->error_indicator) {
23694 D(p->level--);
23695 return NULL;
23696 }
23697 void * _res = NULL;
23698 int _mark = p->mark;
23699 { // '(' arguments? ')'
23700 if (p->error_indicator) {
23701 D(p->level--);
23702 return NULL;
23703 }
Brandt Bucher145bf262021-02-26 14:51:55 -080023704 D(fprintf(stderr, "%*c> _tmp_85[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023705 Token * _literal;
23706 Token * _literal_1;
23707 void *z;
23708 if (
23709 (_literal = _PyPegen_expect_token(p, 7)) // token='('
23710 &&
23711 (z = arguments_rule(p), 1) // arguments?
23712 &&
23713 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
23714 )
23715 {
Brandt Bucher145bf262021-02-26 14:51:55 -080023716 D(fprintf(stderr, "%*c+ _tmp_85[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023717 _res = z;
23718 if (_res == NULL && PyErr_Occurred()) {
23719 p->error_indicator = 1;
23720 D(p->level--);
23721 return NULL;
23722 }
23723 goto done;
23724 }
23725 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080023726 D(fprintf(stderr, "%*c%s _tmp_85[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023727 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' arguments? ')'"));
23728 }
23729 _res = NULL;
23730 done:
23731 D(p->level--);
23732 return _res;
23733}
23734
Brandt Bucher145bf262021-02-26 14:51:55 -080023735// _loop1_86: (',' star_expression)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023736static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080023737_loop1_86_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023738{
23739 D(p->level++);
23740 if (p->error_indicator) {
23741 D(p->level--);
23742 return NULL;
23743 }
23744 void *_res = NULL;
23745 int _mark = p->mark;
23746 int _start_mark = p->mark;
23747 void **_children = PyMem_Malloc(sizeof(void *));
23748 if (!_children) {
23749 p->error_indicator = 1;
23750 PyErr_NoMemory();
23751 D(p->level--);
23752 return NULL;
23753 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023754 Py_ssize_t _children_capacity = 1;
23755 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023756 { // (',' star_expression)
23757 if (p->error_indicator) {
23758 D(p->level--);
23759 return NULL;
23760 }
Brandt Bucher145bf262021-02-26 14:51:55 -080023761 D(fprintf(stderr, "%*c> _loop1_86[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_expression)"));
23762 void *_tmp_166_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023763 while (
Brandt Bucher145bf262021-02-26 14:51:55 -080023764 (_tmp_166_var = _tmp_166_rule(p)) // ',' star_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023765 )
23766 {
Brandt Bucher145bf262021-02-26 14:51:55 -080023767 _res = _tmp_166_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023768 if (_n == _children_capacity) {
23769 _children_capacity *= 2;
23770 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23771 if (!_new_children) {
23772 p->error_indicator = 1;
23773 PyErr_NoMemory();
23774 D(p->level--);
23775 return NULL;
23776 }
23777 _children = _new_children;
23778 }
23779 _children[_n++] = _res;
23780 _mark = p->mark;
23781 }
23782 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080023783 D(fprintf(stderr, "%*c%s _loop1_86[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023784 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' star_expression)"));
23785 }
23786 if (_n == 0 || p->error_indicator) {
23787 PyMem_Free(_children);
23788 D(p->level--);
23789 return NULL;
23790 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023791 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023792 if (!_seq) {
23793 PyMem_Free(_children);
23794 p->error_indicator = 1;
23795 PyErr_NoMemory();
23796 D(p->level--);
23797 return NULL;
23798 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023799 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023800 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080023801 _PyPegen_insert_memo(p, _start_mark, _loop1_86_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023802 D(p->level--);
23803 return _seq;
23804}
23805
Brandt Bucher145bf262021-02-26 14:51:55 -080023806// _loop0_88: ',' star_named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023807static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080023808_loop0_88_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023809{
23810 D(p->level++);
23811 if (p->error_indicator) {
23812 D(p->level--);
23813 return NULL;
23814 }
23815 void *_res = NULL;
23816 int _mark = p->mark;
23817 int _start_mark = p->mark;
23818 void **_children = PyMem_Malloc(sizeof(void *));
23819 if (!_children) {
23820 p->error_indicator = 1;
23821 PyErr_NoMemory();
23822 D(p->level--);
23823 return NULL;
23824 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023825 Py_ssize_t _children_capacity = 1;
23826 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023827 { // ',' star_named_expression
23828 if (p->error_indicator) {
23829 D(p->level--);
23830 return NULL;
23831 }
Brandt Bucher145bf262021-02-26 14:51:55 -080023832 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 +010023833 Token * _literal;
23834 expr_ty elem;
23835 while (
23836 (_literal = _PyPegen_expect_token(p, 12)) // token=','
23837 &&
23838 (elem = star_named_expression_rule(p)) // star_named_expression
23839 )
23840 {
23841 _res = elem;
23842 if (_res == NULL && PyErr_Occurred()) {
23843 p->error_indicator = 1;
23844 PyMem_Free(_children);
23845 D(p->level--);
23846 return NULL;
23847 }
23848 if (_n == _children_capacity) {
23849 _children_capacity *= 2;
23850 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23851 if (!_new_children) {
23852 p->error_indicator = 1;
23853 PyErr_NoMemory();
23854 D(p->level--);
23855 return NULL;
23856 }
23857 _children = _new_children;
23858 }
23859 _children[_n++] = _res;
23860 _mark = p->mark;
23861 }
23862 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080023863 D(fprintf(stderr, "%*c%s _loop0_88[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023864 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_named_expression"));
23865 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023866 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023867 if (!_seq) {
23868 PyMem_Free(_children);
23869 p->error_indicator = 1;
23870 PyErr_NoMemory();
23871 D(p->level--);
23872 return NULL;
23873 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023874 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023875 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080023876 _PyPegen_insert_memo(p, _start_mark, _loop0_88_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023877 D(p->level--);
23878 return _seq;
23879}
23880
Brandt Bucher145bf262021-02-26 14:51:55 -080023881// _gather_87: star_named_expression _loop0_88
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023882static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080023883_gather_87_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023884{
23885 D(p->level++);
23886 if (p->error_indicator) {
23887 D(p->level--);
23888 return NULL;
23889 }
23890 asdl_seq * _res = NULL;
23891 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080023892 { // star_named_expression _loop0_88
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023893 if (p->error_indicator) {
23894 D(p->level--);
23895 return NULL;
23896 }
Brandt Bucher145bf262021-02-26 14:51:55 -080023897 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 +010023898 expr_ty elem;
23899 asdl_seq * seq;
23900 if (
23901 (elem = star_named_expression_rule(p)) // star_named_expression
23902 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080023903 (seq = _loop0_88_rule(p)) // _loop0_88
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023904 )
23905 {
Brandt Bucher145bf262021-02-26 14:51:55 -080023906 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 +010023907 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
23908 goto done;
23909 }
23910 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080023911 D(fprintf(stderr, "%*c%s _gather_87[%d-%d]: %s failed!\n", p->level, ' ',
23912 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression _loop0_88"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023913 }
23914 _res = NULL;
23915 done:
23916 D(p->level--);
23917 return _res;
23918}
23919
Brandt Bucher145bf262021-02-26 14:51:55 -080023920// _loop1_89: (',' expression)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023921static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080023922_loop1_89_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023923{
23924 D(p->level++);
23925 if (p->error_indicator) {
23926 D(p->level--);
23927 return NULL;
23928 }
23929 void *_res = NULL;
23930 int _mark = p->mark;
23931 int _start_mark = p->mark;
23932 void **_children = PyMem_Malloc(sizeof(void *));
23933 if (!_children) {
23934 p->error_indicator = 1;
23935 PyErr_NoMemory();
23936 D(p->level--);
23937 return NULL;
23938 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023939 Py_ssize_t _children_capacity = 1;
23940 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023941 { // (',' expression)
23942 if (p->error_indicator) {
23943 D(p->level--);
23944 return NULL;
23945 }
Brandt Bucher145bf262021-02-26 14:51:55 -080023946 D(fprintf(stderr, "%*c> _loop1_89[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' expression)"));
23947 void *_tmp_167_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023948 while (
Brandt Bucher145bf262021-02-26 14:51:55 -080023949 (_tmp_167_var = _tmp_167_rule(p)) // ',' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023950 )
23951 {
Brandt Bucher145bf262021-02-26 14:51:55 -080023952 _res = _tmp_167_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023953 if (_n == _children_capacity) {
23954 _children_capacity *= 2;
23955 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23956 if (!_new_children) {
23957 p->error_indicator = 1;
23958 PyErr_NoMemory();
23959 D(p->level--);
23960 return NULL;
23961 }
23962 _children = _new_children;
23963 }
23964 _children[_n++] = _res;
23965 _mark = p->mark;
23966 }
23967 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080023968 D(fprintf(stderr, "%*c%s _loop1_89[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023969 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' expression)"));
23970 }
23971 if (_n == 0 || p->error_indicator) {
23972 PyMem_Free(_children);
23973 D(p->level--);
23974 return NULL;
23975 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023976 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023977 if (!_seq) {
23978 PyMem_Free(_children);
23979 p->error_indicator = 1;
23980 PyErr_NoMemory();
23981 D(p->level--);
23982 return NULL;
23983 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023984 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023985 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080023986 _PyPegen_insert_memo(p, _start_mark, _loop1_89_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023987 D(p->level--);
23988 return _seq;
23989}
23990
Brandt Bucher145bf262021-02-26 14:51:55 -080023991// _loop0_90: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023992static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080023993_loop0_90_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023994{
23995 D(p->level++);
23996 if (p->error_indicator) {
23997 D(p->level--);
23998 return NULL;
23999 }
24000 void *_res = NULL;
24001 int _mark = p->mark;
24002 int _start_mark = p->mark;
24003 void **_children = PyMem_Malloc(sizeof(void *));
24004 if (!_children) {
24005 p->error_indicator = 1;
24006 PyErr_NoMemory();
24007 D(p->level--);
24008 return NULL;
24009 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024010 Py_ssize_t _children_capacity = 1;
24011 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024012 { // lambda_param_no_default
24013 if (p->error_indicator) {
24014 D(p->level--);
24015 return NULL;
24016 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024017 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 +010024018 arg_ty lambda_param_no_default_var;
24019 while (
24020 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
24021 )
24022 {
24023 _res = lambda_param_no_default_var;
24024 if (_n == _children_capacity) {
24025 _children_capacity *= 2;
24026 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24027 if (!_new_children) {
24028 p->error_indicator = 1;
24029 PyErr_NoMemory();
24030 D(p->level--);
24031 return NULL;
24032 }
24033 _children = _new_children;
24034 }
24035 _children[_n++] = _res;
24036 _mark = p->mark;
24037 }
24038 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024039 D(fprintf(stderr, "%*c%s _loop0_90[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024040 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024041 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024042 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024043 if (!_seq) {
24044 PyMem_Free(_children);
24045 p->error_indicator = 1;
24046 PyErr_NoMemory();
24047 D(p->level--);
24048 return NULL;
24049 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024050 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024051 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080024052 _PyPegen_insert_memo(p, _start_mark, _loop0_90_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024053 D(p->level--);
24054 return _seq;
24055}
24056
Brandt Bucher145bf262021-02-26 14:51:55 -080024057// _loop0_91: lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024058static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080024059_loop0_91_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024060{
24061 D(p->level++);
24062 if (p->error_indicator) {
24063 D(p->level--);
24064 return NULL;
24065 }
24066 void *_res = NULL;
24067 int _mark = p->mark;
24068 int _start_mark = p->mark;
24069 void **_children = PyMem_Malloc(sizeof(void *));
24070 if (!_children) {
24071 p->error_indicator = 1;
24072 PyErr_NoMemory();
24073 D(p->level--);
24074 return NULL;
24075 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024076 Py_ssize_t _children_capacity = 1;
24077 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024078 { // lambda_param_with_default
24079 if (p->error_indicator) {
24080 D(p->level--);
24081 return NULL;
24082 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024083 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 +010024084 NameDefaultPair* lambda_param_with_default_var;
24085 while (
24086 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
24087 )
24088 {
24089 _res = lambda_param_with_default_var;
24090 if (_n == _children_capacity) {
24091 _children_capacity *= 2;
24092 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24093 if (!_new_children) {
24094 p->error_indicator = 1;
24095 PyErr_NoMemory();
24096 D(p->level--);
24097 return NULL;
24098 }
24099 _children = _new_children;
24100 }
24101 _children[_n++] = _res;
24102 _mark = p->mark;
24103 }
24104 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024105 D(fprintf(stderr, "%*c%s _loop0_91[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024106 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
24107 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024108 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024109 if (!_seq) {
24110 PyMem_Free(_children);
24111 p->error_indicator = 1;
24112 PyErr_NoMemory();
24113 D(p->level--);
24114 return NULL;
24115 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024116 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024117 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080024118 _PyPegen_insert_memo(p, _start_mark, _loop0_91_type, _seq);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024119 D(p->level--);
24120 return _seq;
24121}
24122
Brandt Bucher145bf262021-02-26 14:51:55 -080024123// _loop0_92: lambda_param_with_default
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024124static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080024125_loop0_92_rule(Parser *p)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024126{
24127 D(p->level++);
24128 if (p->error_indicator) {
24129 D(p->level--);
24130 return NULL;
24131 }
24132 void *_res = NULL;
24133 int _mark = p->mark;
24134 int _start_mark = p->mark;
24135 void **_children = PyMem_Malloc(sizeof(void *));
24136 if (!_children) {
24137 p->error_indicator = 1;
24138 PyErr_NoMemory();
24139 D(p->level--);
24140 return NULL;
24141 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024142 Py_ssize_t _children_capacity = 1;
24143 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024144 { // lambda_param_with_default
24145 if (p->error_indicator) {
24146 D(p->level--);
24147 return NULL;
24148 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024149 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 +000024150 NameDefaultPair* lambda_param_with_default_var;
24151 while (
24152 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
24153 )
24154 {
24155 _res = lambda_param_with_default_var;
24156 if (_n == _children_capacity) {
24157 _children_capacity *= 2;
24158 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24159 if (!_new_children) {
24160 p->error_indicator = 1;
24161 PyErr_NoMemory();
24162 D(p->level--);
24163 return NULL;
24164 }
24165 _children = _new_children;
24166 }
24167 _children[_n++] = _res;
24168 _mark = p->mark;
24169 }
24170 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024171 D(fprintf(stderr, "%*c%s _loop0_92[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024172 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
24173 }
24174 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
24175 if (!_seq) {
24176 PyMem_Free(_children);
24177 p->error_indicator = 1;
24178 PyErr_NoMemory();
24179 D(p->level--);
24180 return NULL;
24181 }
24182 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
24183 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080024184 _PyPegen_insert_memo(p, _start_mark, _loop0_92_type, _seq);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024185 D(p->level--);
24186 return _seq;
24187}
24188
Brandt Bucher145bf262021-02-26 14:51:55 -080024189// _loop1_93: lambda_param_no_default
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024190static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080024191_loop1_93_rule(Parser *p)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024192{
24193 D(p->level++);
24194 if (p->error_indicator) {
24195 D(p->level--);
24196 return NULL;
24197 }
24198 void *_res = NULL;
24199 int _mark = p->mark;
24200 int _start_mark = p->mark;
24201 void **_children = PyMem_Malloc(sizeof(void *));
24202 if (!_children) {
24203 p->error_indicator = 1;
24204 PyErr_NoMemory();
24205 D(p->level--);
24206 return NULL;
24207 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024208 Py_ssize_t _children_capacity = 1;
24209 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024210 { // lambda_param_no_default
24211 if (p->error_indicator) {
24212 D(p->level--);
24213 return NULL;
24214 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024215 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 +000024216 arg_ty lambda_param_no_default_var;
24217 while (
24218 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
24219 )
24220 {
24221 _res = lambda_param_no_default_var;
24222 if (_n == _children_capacity) {
24223 _children_capacity *= 2;
24224 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24225 if (!_new_children) {
24226 p->error_indicator = 1;
24227 PyErr_NoMemory();
24228 D(p->level--);
24229 return NULL;
24230 }
24231 _children = _new_children;
24232 }
24233 _children[_n++] = _res;
24234 _mark = p->mark;
24235 }
24236 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024237 D(fprintf(stderr, "%*c%s _loop1_93[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024238 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
24239 }
24240 if (_n == 0 || p->error_indicator) {
24241 PyMem_Free(_children);
24242 D(p->level--);
24243 return NULL;
24244 }
24245 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
24246 if (!_seq) {
24247 PyMem_Free(_children);
24248 p->error_indicator = 1;
24249 PyErr_NoMemory();
24250 D(p->level--);
24251 return NULL;
24252 }
24253 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
24254 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080024255 _PyPegen_insert_memo(p, _start_mark, _loop1_93_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024256 D(p->level--);
24257 return _seq;
24258}
24259
Brandt Bucher145bf262021-02-26 14:51:55 -080024260// _loop0_94: lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024261static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080024262_loop0_94_rule(Parser *p)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024263{
24264 D(p->level++);
24265 if (p->error_indicator) {
24266 D(p->level--);
24267 return NULL;
24268 }
24269 void *_res = NULL;
24270 int _mark = p->mark;
24271 int _start_mark = p->mark;
24272 void **_children = PyMem_Malloc(sizeof(void *));
24273 if (!_children) {
24274 p->error_indicator = 1;
24275 PyErr_NoMemory();
24276 D(p->level--);
24277 return NULL;
24278 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024279 Py_ssize_t _children_capacity = 1;
24280 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024281 { // lambda_param_with_default
24282 if (p->error_indicator) {
24283 D(p->level--);
24284 return NULL;
24285 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024286 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 +030024287 NameDefaultPair* lambda_param_with_default_var;
24288 while (
24289 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
24290 )
24291 {
24292 _res = lambda_param_with_default_var;
24293 if (_n == _children_capacity) {
24294 _children_capacity *= 2;
24295 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24296 if (!_new_children) {
24297 p->error_indicator = 1;
24298 PyErr_NoMemory();
24299 D(p->level--);
24300 return NULL;
24301 }
24302 _children = _new_children;
24303 }
24304 _children[_n++] = _res;
24305 _mark = p->mark;
24306 }
24307 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024308 D(fprintf(stderr, "%*c%s _loop0_94[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024309 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
24310 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024311 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024312 if (!_seq) {
24313 PyMem_Free(_children);
24314 p->error_indicator = 1;
24315 PyErr_NoMemory();
24316 D(p->level--);
24317 return NULL;
24318 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024319 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024320 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080024321 _PyPegen_insert_memo(p, _start_mark, _loop0_94_type, _seq);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024322 D(p->level--);
24323 return _seq;
24324}
24325
Brandt Bucher145bf262021-02-26 14:51:55 -080024326// _loop1_95: lambda_param_with_default
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024327static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080024328_loop1_95_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024329{
24330 D(p->level++);
24331 if (p->error_indicator) {
24332 D(p->level--);
24333 return NULL;
24334 }
24335 void *_res = NULL;
24336 int _mark = p->mark;
24337 int _start_mark = p->mark;
24338 void **_children = PyMem_Malloc(sizeof(void *));
24339 if (!_children) {
24340 p->error_indicator = 1;
24341 PyErr_NoMemory();
24342 D(p->level--);
24343 return NULL;
24344 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024345 Py_ssize_t _children_capacity = 1;
24346 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024347 { // lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024348 if (p->error_indicator) {
24349 D(p->level--);
24350 return NULL;
24351 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024352 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 +000024353 NameDefaultPair* lambda_param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024354 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024355 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024356 )
24357 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024358 _res = lambda_param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024359 if (_n == _children_capacity) {
24360 _children_capacity *= 2;
24361 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24362 if (!_new_children) {
24363 p->error_indicator = 1;
24364 PyErr_NoMemory();
24365 D(p->level--);
24366 return NULL;
24367 }
24368 _children = _new_children;
24369 }
24370 _children[_n++] = _res;
24371 _mark = p->mark;
24372 }
24373 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024374 D(fprintf(stderr, "%*c%s _loop1_95[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024375 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024376 }
24377 if (_n == 0 || p->error_indicator) {
24378 PyMem_Free(_children);
24379 D(p->level--);
24380 return NULL;
24381 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024382 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024383 if (!_seq) {
24384 PyMem_Free(_children);
24385 p->error_indicator = 1;
24386 PyErr_NoMemory();
24387 D(p->level--);
24388 return NULL;
24389 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024390 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024391 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080024392 _PyPegen_insert_memo(p, _start_mark, _loop1_95_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024393 D(p->level--);
24394 return _seq;
24395}
24396
Brandt Bucher145bf262021-02-26 14:51:55 -080024397// _loop1_96: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024398static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080024399_loop1_96_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024400{
24401 D(p->level++);
24402 if (p->error_indicator) {
24403 D(p->level--);
24404 return NULL;
24405 }
24406 void *_res = NULL;
24407 int _mark = p->mark;
24408 int _start_mark = p->mark;
24409 void **_children = PyMem_Malloc(sizeof(void *));
24410 if (!_children) {
24411 p->error_indicator = 1;
24412 PyErr_NoMemory();
24413 D(p->level--);
24414 return NULL;
24415 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024416 Py_ssize_t _children_capacity = 1;
24417 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024418 { // lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024419 if (p->error_indicator) {
24420 D(p->level--);
24421 return NULL;
24422 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024423 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 +000024424 arg_ty lambda_param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024425 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024426 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024427 )
24428 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024429 _res = lambda_param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024430 if (_n == _children_capacity) {
24431 _children_capacity *= 2;
24432 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24433 if (!_new_children) {
24434 p->error_indicator = 1;
24435 PyErr_NoMemory();
24436 D(p->level--);
24437 return NULL;
24438 }
24439 _children = _new_children;
24440 }
24441 _children[_n++] = _res;
24442 _mark = p->mark;
24443 }
24444 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024445 D(fprintf(stderr, "%*c%s _loop1_96[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024446 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
24447 }
24448 if (_n == 0 || p->error_indicator) {
24449 PyMem_Free(_children);
24450 D(p->level--);
24451 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024452 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024453 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024454 if (!_seq) {
24455 PyMem_Free(_children);
24456 p->error_indicator = 1;
24457 PyErr_NoMemory();
24458 D(p->level--);
24459 return NULL;
24460 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024461 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024462 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080024463 _PyPegen_insert_memo(p, _start_mark, _loop1_96_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024464 D(p->level--);
24465 return _seq;
24466}
24467
Brandt Bucher145bf262021-02-26 14:51:55 -080024468// _loop1_97: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024469static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080024470_loop1_97_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024471{
24472 D(p->level++);
24473 if (p->error_indicator) {
24474 D(p->level--);
24475 return NULL;
24476 }
24477 void *_res = NULL;
24478 int _mark = p->mark;
24479 int _start_mark = p->mark;
24480 void **_children = PyMem_Malloc(sizeof(void *));
24481 if (!_children) {
24482 p->error_indicator = 1;
24483 PyErr_NoMemory();
24484 D(p->level--);
24485 return NULL;
24486 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024487 Py_ssize_t _children_capacity = 1;
24488 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024489 { // lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024490 if (p->error_indicator) {
24491 D(p->level--);
24492 return NULL;
24493 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024494 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 +000024495 arg_ty lambda_param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024496 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024497 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024498 )
24499 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024500 _res = lambda_param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024501 if (_n == _children_capacity) {
24502 _children_capacity *= 2;
24503 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24504 if (!_new_children) {
24505 p->error_indicator = 1;
24506 PyErr_NoMemory();
24507 D(p->level--);
24508 return NULL;
24509 }
24510 _children = _new_children;
24511 }
24512 _children[_n++] = _res;
24513 _mark = p->mark;
24514 }
24515 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024516 D(fprintf(stderr, "%*c%s _loop1_97[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024517 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024518 }
24519 if (_n == 0 || p->error_indicator) {
24520 PyMem_Free(_children);
24521 D(p->level--);
24522 return NULL;
24523 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024524 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024525 if (!_seq) {
24526 PyMem_Free(_children);
24527 p->error_indicator = 1;
24528 PyErr_NoMemory();
24529 D(p->level--);
24530 return NULL;
24531 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024532 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024533 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080024534 _PyPegen_insert_memo(p, _start_mark, _loop1_97_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024535 D(p->level--);
24536 return _seq;
24537}
24538
Brandt Bucher145bf262021-02-26 14:51:55 -080024539// _loop0_98: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024540static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080024541_loop0_98_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024542{
24543 D(p->level++);
24544 if (p->error_indicator) {
24545 D(p->level--);
24546 return NULL;
24547 }
24548 void *_res = NULL;
24549 int _mark = p->mark;
24550 int _start_mark = p->mark;
24551 void **_children = PyMem_Malloc(sizeof(void *));
24552 if (!_children) {
24553 p->error_indicator = 1;
24554 PyErr_NoMemory();
24555 D(p->level--);
24556 return NULL;
24557 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024558 Py_ssize_t _children_capacity = 1;
24559 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024560 { // lambda_param_no_default
24561 if (p->error_indicator) {
24562 D(p->level--);
24563 return NULL;
24564 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024565 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 +010024566 arg_ty lambda_param_no_default_var;
24567 while (
24568 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
24569 )
24570 {
24571 _res = lambda_param_no_default_var;
24572 if (_n == _children_capacity) {
24573 _children_capacity *= 2;
24574 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24575 if (!_new_children) {
24576 p->error_indicator = 1;
24577 PyErr_NoMemory();
24578 D(p->level--);
24579 return NULL;
24580 }
24581 _children = _new_children;
24582 }
24583 _children[_n++] = _res;
24584 _mark = p->mark;
24585 }
24586 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024587 D(fprintf(stderr, "%*c%s _loop0_98[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024588 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
24589 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024590 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024591 if (!_seq) {
24592 PyMem_Free(_children);
24593 p->error_indicator = 1;
24594 PyErr_NoMemory();
24595 D(p->level--);
24596 return NULL;
24597 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024598 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024599 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080024600 _PyPegen_insert_memo(p, _start_mark, _loop0_98_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024601 D(p->level--);
24602 return _seq;
24603}
24604
Brandt Bucher145bf262021-02-26 14:51:55 -080024605// _loop1_99: lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024606static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080024607_loop1_99_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024608{
24609 D(p->level++);
24610 if (p->error_indicator) {
24611 D(p->level--);
24612 return NULL;
24613 }
24614 void *_res = NULL;
24615 int _mark = p->mark;
24616 int _start_mark = p->mark;
24617 void **_children = PyMem_Malloc(sizeof(void *));
24618 if (!_children) {
24619 p->error_indicator = 1;
24620 PyErr_NoMemory();
24621 D(p->level--);
24622 return NULL;
24623 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024624 Py_ssize_t _children_capacity = 1;
24625 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024626 { // lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024627 if (p->error_indicator) {
24628 D(p->level--);
24629 return NULL;
24630 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024631 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 +000024632 NameDefaultPair* lambda_param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024633 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024634 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024635 )
24636 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024637 _res = lambda_param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024638 if (_n == _children_capacity) {
24639 _children_capacity *= 2;
24640 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24641 if (!_new_children) {
24642 p->error_indicator = 1;
24643 PyErr_NoMemory();
24644 D(p->level--);
24645 return NULL;
24646 }
24647 _children = _new_children;
24648 }
24649 _children[_n++] = _res;
24650 _mark = p->mark;
24651 }
24652 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024653 D(fprintf(stderr, "%*c%s _loop1_99[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024654 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024655 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024656 if (_n == 0 || p->error_indicator) {
24657 PyMem_Free(_children);
24658 D(p->level--);
24659 return NULL;
24660 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024661 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024662 if (!_seq) {
24663 PyMem_Free(_children);
24664 p->error_indicator = 1;
24665 PyErr_NoMemory();
24666 D(p->level--);
24667 return NULL;
24668 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024669 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024670 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080024671 _PyPegen_insert_memo(p, _start_mark, _loop1_99_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024672 D(p->level--);
24673 return _seq;
24674}
24675
Brandt Bucher145bf262021-02-26 14:51:55 -080024676// _loop0_100: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024677static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080024678_loop0_100_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024679{
24680 D(p->level++);
24681 if (p->error_indicator) {
24682 D(p->level--);
24683 return NULL;
24684 }
24685 void *_res = NULL;
24686 int _mark = p->mark;
24687 int _start_mark = p->mark;
24688 void **_children = PyMem_Malloc(sizeof(void *));
24689 if (!_children) {
24690 p->error_indicator = 1;
24691 PyErr_NoMemory();
24692 D(p->level--);
24693 return NULL;
24694 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024695 Py_ssize_t _children_capacity = 1;
24696 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024697 { // lambda_param_no_default
24698 if (p->error_indicator) {
24699 D(p->level--);
24700 return NULL;
24701 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024702 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 +010024703 arg_ty lambda_param_no_default_var;
24704 while (
24705 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
24706 )
24707 {
24708 _res = lambda_param_no_default_var;
24709 if (_n == _children_capacity) {
24710 _children_capacity *= 2;
24711 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24712 if (!_new_children) {
24713 p->error_indicator = 1;
24714 PyErr_NoMemory();
24715 D(p->level--);
24716 return NULL;
24717 }
24718 _children = _new_children;
24719 }
24720 _children[_n++] = _res;
24721 _mark = p->mark;
24722 }
24723 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024724 D(fprintf(stderr, "%*c%s _loop0_100[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024725 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
24726 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024727 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024728 if (!_seq) {
24729 PyMem_Free(_children);
24730 p->error_indicator = 1;
24731 PyErr_NoMemory();
24732 D(p->level--);
24733 return NULL;
24734 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024735 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024736 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080024737 _PyPegen_insert_memo(p, _start_mark, _loop0_100_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024738 D(p->level--);
24739 return _seq;
24740}
24741
Brandt Bucher145bf262021-02-26 14:51:55 -080024742// _loop1_101: lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024743static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080024744_loop1_101_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024745{
24746 D(p->level++);
24747 if (p->error_indicator) {
24748 D(p->level--);
24749 return NULL;
24750 }
24751 void *_res = NULL;
24752 int _mark = p->mark;
24753 int _start_mark = p->mark;
24754 void **_children = PyMem_Malloc(sizeof(void *));
24755 if (!_children) {
24756 p->error_indicator = 1;
24757 PyErr_NoMemory();
24758 D(p->level--);
24759 return NULL;
24760 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024761 Py_ssize_t _children_capacity = 1;
24762 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024763 { // lambda_param_with_default
24764 if (p->error_indicator) {
24765 D(p->level--);
24766 return NULL;
24767 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024768 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 +010024769 NameDefaultPair* lambda_param_with_default_var;
24770 while (
24771 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
24772 )
24773 {
24774 _res = lambda_param_with_default_var;
24775 if (_n == _children_capacity) {
24776 _children_capacity *= 2;
24777 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24778 if (!_new_children) {
24779 p->error_indicator = 1;
24780 PyErr_NoMemory();
24781 D(p->level--);
24782 return NULL;
24783 }
24784 _children = _new_children;
24785 }
24786 _children[_n++] = _res;
24787 _mark = p->mark;
24788 }
24789 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024790 D(fprintf(stderr, "%*c%s _loop1_101[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024791 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
24792 }
24793 if (_n == 0 || p->error_indicator) {
24794 PyMem_Free(_children);
24795 D(p->level--);
24796 return NULL;
24797 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024798 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024799 if (!_seq) {
24800 PyMem_Free(_children);
24801 p->error_indicator = 1;
24802 PyErr_NoMemory();
24803 D(p->level--);
24804 return NULL;
24805 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024806 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024807 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080024808 _PyPegen_insert_memo(p, _start_mark, _loop1_101_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024809 D(p->level--);
24810 return _seq;
24811}
24812
Brandt Bucher145bf262021-02-26 14:51:55 -080024813// _loop0_102: lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024814static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080024815_loop0_102_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024816{
24817 D(p->level++);
24818 if (p->error_indicator) {
24819 D(p->level--);
24820 return NULL;
24821 }
24822 void *_res = NULL;
24823 int _mark = p->mark;
24824 int _start_mark = p->mark;
24825 void **_children = PyMem_Malloc(sizeof(void *));
24826 if (!_children) {
24827 p->error_indicator = 1;
24828 PyErr_NoMemory();
24829 D(p->level--);
24830 return NULL;
24831 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024832 Py_ssize_t _children_capacity = 1;
24833 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024834 { // lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024835 if (p->error_indicator) {
24836 D(p->level--);
24837 return NULL;
24838 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024839 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 +000024840 NameDefaultPair* lambda_param_maybe_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024841 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024842 (lambda_param_maybe_default_var = lambda_param_maybe_default_rule(p)) // lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024843 )
24844 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024845 _res = lambda_param_maybe_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024846 if (_n == _children_capacity) {
24847 _children_capacity *= 2;
24848 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24849 if (!_new_children) {
24850 p->error_indicator = 1;
24851 PyErr_NoMemory();
24852 D(p->level--);
24853 return NULL;
24854 }
24855 _children = _new_children;
24856 }
24857 _children[_n++] = _res;
24858 _mark = p->mark;
24859 }
24860 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024861 D(fprintf(stderr, "%*c%s _loop0_102[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024862 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_maybe_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024863 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024864 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024865 if (!_seq) {
24866 PyMem_Free(_children);
24867 p->error_indicator = 1;
24868 PyErr_NoMemory();
24869 D(p->level--);
24870 return NULL;
24871 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024872 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024873 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080024874 _PyPegen_insert_memo(p, _start_mark, _loop0_102_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024875 D(p->level--);
24876 return _seq;
24877}
24878
Brandt Bucher145bf262021-02-26 14:51:55 -080024879// _loop1_103: lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024880static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080024881_loop1_103_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024882{
24883 D(p->level++);
24884 if (p->error_indicator) {
24885 D(p->level--);
24886 return NULL;
24887 }
24888 void *_res = NULL;
24889 int _mark = p->mark;
24890 int _start_mark = p->mark;
24891 void **_children = PyMem_Malloc(sizeof(void *));
24892 if (!_children) {
24893 p->error_indicator = 1;
24894 PyErr_NoMemory();
24895 D(p->level--);
24896 return NULL;
24897 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024898 Py_ssize_t _children_capacity = 1;
24899 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024900 { // lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024901 if (p->error_indicator) {
24902 D(p->level--);
24903 return NULL;
24904 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024905 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 +000024906 NameDefaultPair* lambda_param_maybe_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024907 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024908 (lambda_param_maybe_default_var = lambda_param_maybe_default_rule(p)) // lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024909 )
24910 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024911 _res = lambda_param_maybe_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024912 if (_n == _children_capacity) {
24913 _children_capacity *= 2;
24914 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24915 if (!_new_children) {
24916 p->error_indicator = 1;
24917 PyErr_NoMemory();
24918 D(p->level--);
24919 return NULL;
24920 }
24921 _children = _new_children;
24922 }
24923 _children[_n++] = _res;
24924 _mark = p->mark;
24925 }
24926 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024927 D(fprintf(stderr, "%*c%s _loop1_103[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024928 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_maybe_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024929 }
24930 if (_n == 0 || p->error_indicator) {
24931 PyMem_Free(_children);
24932 D(p->level--);
24933 return NULL;
24934 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024935 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024936 if (!_seq) {
24937 PyMem_Free(_children);
24938 p->error_indicator = 1;
24939 PyErr_NoMemory();
24940 D(p->level--);
24941 return NULL;
24942 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024943 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024944 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080024945 _PyPegen_insert_memo(p, _start_mark, _loop1_103_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024946 D(p->level--);
24947 return _seq;
24948}
24949
Brandt Bucher145bf262021-02-26 14:51:55 -080024950// _loop1_104: ('or' conjunction)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024951static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080024952_loop1_104_rule(Parser *p)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024953{
24954 D(p->level++);
24955 if (p->error_indicator) {
24956 D(p->level--);
24957 return NULL;
24958 }
24959 void *_res = NULL;
24960 int _mark = p->mark;
24961 int _start_mark = p->mark;
24962 void **_children = PyMem_Malloc(sizeof(void *));
24963 if (!_children) {
24964 p->error_indicator = 1;
24965 PyErr_NoMemory();
24966 D(p->level--);
24967 return NULL;
24968 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024969 Py_ssize_t _children_capacity = 1;
24970 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024971 { // ('or' conjunction)
24972 if (p->error_indicator) {
24973 D(p->level--);
24974 return NULL;
24975 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024976 D(fprintf(stderr, "%*c> _loop1_104[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('or' conjunction)"));
24977 void *_tmp_168_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024978 while (
Brandt Bucher145bf262021-02-26 14:51:55 -080024979 (_tmp_168_var = _tmp_168_rule(p)) // 'or' conjunction
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024980 )
24981 {
Brandt Bucher145bf262021-02-26 14:51:55 -080024982 _res = _tmp_168_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024983 if (_n == _children_capacity) {
24984 _children_capacity *= 2;
24985 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24986 if (!_new_children) {
24987 p->error_indicator = 1;
24988 PyErr_NoMemory();
24989 D(p->level--);
24990 return NULL;
24991 }
24992 _children = _new_children;
24993 }
24994 _children[_n++] = _res;
24995 _mark = p->mark;
24996 }
24997 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024998 D(fprintf(stderr, "%*c%s _loop1_104[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024999 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('or' conjunction)"));
25000 }
25001 if (_n == 0 || p->error_indicator) {
25002 PyMem_Free(_children);
25003 D(p->level--);
25004 return NULL;
25005 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025006 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025007 if (!_seq) {
25008 PyMem_Free(_children);
25009 p->error_indicator = 1;
25010 PyErr_NoMemory();
25011 D(p->level--);
25012 return NULL;
25013 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025014 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025015 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025016 _PyPegen_insert_memo(p, _start_mark, _loop1_104_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025017 D(p->level--);
25018 return _seq;
25019}
25020
Brandt Bucher145bf262021-02-26 14:51:55 -080025021// _loop1_105: ('and' inversion)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025022static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025023_loop1_105_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025024{
25025 D(p->level++);
25026 if (p->error_indicator) {
25027 D(p->level--);
25028 return NULL;
25029 }
25030 void *_res = NULL;
25031 int _mark = p->mark;
25032 int _start_mark = p->mark;
25033 void **_children = PyMem_Malloc(sizeof(void *));
25034 if (!_children) {
25035 p->error_indicator = 1;
25036 PyErr_NoMemory();
25037 D(p->level--);
25038 return NULL;
25039 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025040 Py_ssize_t _children_capacity = 1;
25041 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025042 { // ('and' inversion)
25043 if (p->error_indicator) {
25044 D(p->level--);
25045 return NULL;
25046 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025047 D(fprintf(stderr, "%*c> _loop1_105[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('and' inversion)"));
25048 void *_tmp_169_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025049 while (
Brandt Bucher145bf262021-02-26 14:51:55 -080025050 (_tmp_169_var = _tmp_169_rule(p)) // 'and' inversion
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025051 )
25052 {
Brandt Bucher145bf262021-02-26 14:51:55 -080025053 _res = _tmp_169_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025054 if (_n == _children_capacity) {
25055 _children_capacity *= 2;
25056 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25057 if (!_new_children) {
25058 p->error_indicator = 1;
25059 PyErr_NoMemory();
25060 D(p->level--);
25061 return NULL;
25062 }
25063 _children = _new_children;
25064 }
25065 _children[_n++] = _res;
25066 _mark = p->mark;
25067 }
25068 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025069 D(fprintf(stderr, "%*c%s _loop1_105[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025070 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('and' inversion)"));
25071 }
25072 if (_n == 0 || p->error_indicator) {
25073 PyMem_Free(_children);
25074 D(p->level--);
25075 return NULL;
25076 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025077 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025078 if (!_seq) {
25079 PyMem_Free(_children);
25080 p->error_indicator = 1;
25081 PyErr_NoMemory();
25082 D(p->level--);
25083 return NULL;
25084 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025085 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025086 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025087 _PyPegen_insert_memo(p, _start_mark, _loop1_105_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025088 D(p->level--);
25089 return _seq;
25090}
25091
Brandt Bucher145bf262021-02-26 14:51:55 -080025092// _loop1_106: compare_op_bitwise_or_pair
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025093static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025094_loop1_106_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025095{
25096 D(p->level++);
25097 if (p->error_indicator) {
25098 D(p->level--);
25099 return NULL;
25100 }
25101 void *_res = NULL;
25102 int _mark = p->mark;
25103 int _start_mark = p->mark;
25104 void **_children = PyMem_Malloc(sizeof(void *));
25105 if (!_children) {
25106 p->error_indicator = 1;
25107 PyErr_NoMemory();
25108 D(p->level--);
25109 return NULL;
25110 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025111 Py_ssize_t _children_capacity = 1;
25112 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025113 { // compare_op_bitwise_or_pair
25114 if (p->error_indicator) {
25115 D(p->level--);
25116 return NULL;
25117 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025118 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 +010025119 CmpopExprPair* compare_op_bitwise_or_pair_var;
25120 while (
25121 (compare_op_bitwise_or_pair_var = compare_op_bitwise_or_pair_rule(p)) // compare_op_bitwise_or_pair
25122 )
25123 {
25124 _res = compare_op_bitwise_or_pair_var;
25125 if (_n == _children_capacity) {
25126 _children_capacity *= 2;
25127 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25128 if (!_new_children) {
25129 p->error_indicator = 1;
25130 PyErr_NoMemory();
25131 D(p->level--);
25132 return NULL;
25133 }
25134 _children = _new_children;
25135 }
25136 _children[_n++] = _res;
25137 _mark = p->mark;
25138 }
25139 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025140 D(fprintf(stderr, "%*c%s _loop1_106[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025141 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "compare_op_bitwise_or_pair"));
25142 }
25143 if (_n == 0 || p->error_indicator) {
25144 PyMem_Free(_children);
25145 D(p->level--);
25146 return NULL;
25147 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025148 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025149 if (!_seq) {
25150 PyMem_Free(_children);
25151 p->error_indicator = 1;
25152 PyErr_NoMemory();
25153 D(p->level--);
25154 return NULL;
25155 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025156 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025157 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025158 _PyPegen_insert_memo(p, _start_mark, _loop1_106_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025159 D(p->level--);
25160 return _seq;
25161}
25162
Brandt Bucher145bf262021-02-26 14:51:55 -080025163// _tmp_107: '!='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025164static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080025165_tmp_107_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025166{
25167 D(p->level++);
25168 if (p->error_indicator) {
25169 D(p->level--);
25170 return NULL;
25171 }
25172 void * _res = NULL;
25173 int _mark = p->mark;
25174 { // '!='
25175 if (p->error_indicator) {
25176 D(p->level--);
25177 return NULL;
25178 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025179 D(fprintf(stderr, "%*c> _tmp_107[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'!='"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025180 Token * tok;
25181 if (
25182 (tok = _PyPegen_expect_token(p, 28)) // token='!='
25183 )
25184 {
Brandt Bucher145bf262021-02-26 14:51:55 -080025185 D(fprintf(stderr, "%*c+ _tmp_107[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'!='"));
Pablo Galindo06f8c332020-10-30 23:48:42 +000025186 _res = _PyPegen_check_barry_as_flufl ( p , tok ) ? NULL : tok;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025187 if (_res == NULL && PyErr_Occurred()) {
25188 p->error_indicator = 1;
25189 D(p->level--);
25190 return NULL;
25191 }
25192 goto done;
25193 }
25194 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025195 D(fprintf(stderr, "%*c%s _tmp_107[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025196 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'!='"));
25197 }
25198 _res = NULL;
25199 done:
25200 D(p->level--);
25201 return _res;
25202}
25203
Brandt Bucher145bf262021-02-26 14:51:55 -080025204// _loop0_109: ',' slice
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025205static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025206_loop0_109_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025207{
25208 D(p->level++);
25209 if (p->error_indicator) {
25210 D(p->level--);
25211 return NULL;
25212 }
25213 void *_res = NULL;
25214 int _mark = p->mark;
25215 int _start_mark = p->mark;
25216 void **_children = PyMem_Malloc(sizeof(void *));
25217 if (!_children) {
25218 p->error_indicator = 1;
25219 PyErr_NoMemory();
25220 D(p->level--);
25221 return NULL;
25222 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025223 Py_ssize_t _children_capacity = 1;
25224 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025225 { // ',' slice
25226 if (p->error_indicator) {
25227 D(p->level--);
25228 return NULL;
25229 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025230 D(fprintf(stderr, "%*c> _loop0_109[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' slice"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025231 Token * _literal;
25232 expr_ty elem;
25233 while (
25234 (_literal = _PyPegen_expect_token(p, 12)) // token=','
25235 &&
25236 (elem = slice_rule(p)) // slice
25237 )
25238 {
25239 _res = elem;
25240 if (_res == NULL && PyErr_Occurred()) {
25241 p->error_indicator = 1;
25242 PyMem_Free(_children);
25243 D(p->level--);
25244 return NULL;
25245 }
25246 if (_n == _children_capacity) {
25247 _children_capacity *= 2;
25248 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25249 if (!_new_children) {
25250 p->error_indicator = 1;
25251 PyErr_NoMemory();
25252 D(p->level--);
25253 return NULL;
25254 }
25255 _children = _new_children;
25256 }
25257 _children[_n++] = _res;
25258 _mark = p->mark;
25259 }
25260 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025261 D(fprintf(stderr, "%*c%s _loop0_109[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025262 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' slice"));
25263 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025264 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025265 if (!_seq) {
25266 PyMem_Free(_children);
25267 p->error_indicator = 1;
25268 PyErr_NoMemory();
25269 D(p->level--);
25270 return NULL;
25271 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025272 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025273 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025274 _PyPegen_insert_memo(p, _start_mark, _loop0_109_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025275 D(p->level--);
25276 return _seq;
25277}
25278
Brandt Bucher145bf262021-02-26 14:51:55 -080025279// _gather_108: slice _loop0_109
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025280static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025281_gather_108_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025282{
25283 D(p->level++);
25284 if (p->error_indicator) {
25285 D(p->level--);
25286 return NULL;
25287 }
25288 asdl_seq * _res = NULL;
25289 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025290 { // slice _loop0_109
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025291 if (p->error_indicator) {
25292 D(p->level--);
25293 return NULL;
25294 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025295 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 +010025296 expr_ty elem;
25297 asdl_seq * seq;
25298 if (
25299 (elem = slice_rule(p)) // slice
25300 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080025301 (seq = _loop0_109_rule(p)) // _loop0_109
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025302 )
25303 {
Brandt Bucher145bf262021-02-26 14:51:55 -080025304 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 +010025305 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
25306 goto done;
25307 }
25308 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025309 D(fprintf(stderr, "%*c%s _gather_108[%d-%d]: %s failed!\n", p->level, ' ',
25310 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slice _loop0_109"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025311 }
25312 _res = NULL;
25313 done:
25314 D(p->level--);
25315 return _res;
25316}
25317
Brandt Bucher145bf262021-02-26 14:51:55 -080025318// _tmp_110: ':' expression?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025319static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080025320_tmp_110_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025321{
25322 D(p->level++);
25323 if (p->error_indicator) {
25324 D(p->level--);
25325 return NULL;
25326 }
25327 void * _res = NULL;
25328 int _mark = p->mark;
25329 { // ':' expression?
25330 if (p->error_indicator) {
25331 D(p->level--);
25332 return NULL;
25333 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025334 D(fprintf(stderr, "%*c> _tmp_110[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':' expression?"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025335 Token * _literal;
25336 void *d;
25337 if (
25338 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
25339 &&
25340 (d = expression_rule(p), 1) // expression?
25341 )
25342 {
Brandt Bucher145bf262021-02-26 14:51:55 -080025343 D(fprintf(stderr, "%*c+ _tmp_110[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':' expression?"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025344 _res = d;
25345 if (_res == NULL && PyErr_Occurred()) {
25346 p->error_indicator = 1;
25347 D(p->level--);
25348 return NULL;
25349 }
25350 goto done;
25351 }
25352 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025353 D(fprintf(stderr, "%*c%s _tmp_110[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025354 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':' expression?"));
25355 }
25356 _res = NULL;
25357 done:
25358 D(p->level--);
25359 return _res;
25360}
25361
Brandt Bucher145bf262021-02-26 14:51:55 -080025362// _tmp_111: tuple | group | genexp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025363static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080025364_tmp_111_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025365{
25366 D(p->level++);
25367 if (p->error_indicator) {
25368 D(p->level--);
25369 return NULL;
25370 }
25371 void * _res = NULL;
25372 int _mark = p->mark;
25373 { // tuple
25374 if (p->error_indicator) {
25375 D(p->level--);
25376 return NULL;
25377 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025378 D(fprintf(stderr, "%*c> _tmp_111[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "tuple"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025379 expr_ty tuple_var;
25380 if (
25381 (tuple_var = tuple_rule(p)) // tuple
25382 )
25383 {
Brandt Bucher145bf262021-02-26 14:51:55 -080025384 D(fprintf(stderr, "%*c+ _tmp_111[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "tuple"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025385 _res = tuple_var;
25386 goto done;
25387 }
25388 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025389 D(fprintf(stderr, "%*c%s _tmp_111[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025390 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "tuple"));
25391 }
25392 { // group
25393 if (p->error_indicator) {
25394 D(p->level--);
25395 return NULL;
25396 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025397 D(fprintf(stderr, "%*c> _tmp_111[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "group"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025398 expr_ty group_var;
25399 if (
25400 (group_var = group_rule(p)) // group
25401 )
25402 {
Brandt Bucher145bf262021-02-26 14:51:55 -080025403 D(fprintf(stderr, "%*c+ _tmp_111[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "group"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025404 _res = group_var;
25405 goto done;
25406 }
25407 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025408 D(fprintf(stderr, "%*c%s _tmp_111[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025409 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "group"));
25410 }
25411 { // genexp
25412 if (p->error_indicator) {
25413 D(p->level--);
25414 return NULL;
25415 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025416 D(fprintf(stderr, "%*c> _tmp_111[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "genexp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025417 expr_ty genexp_var;
25418 if (
25419 (genexp_var = genexp_rule(p)) // genexp
25420 )
25421 {
Brandt Bucher145bf262021-02-26 14:51:55 -080025422 D(fprintf(stderr, "%*c+ _tmp_111[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "genexp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025423 _res = genexp_var;
25424 goto done;
25425 }
25426 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025427 D(fprintf(stderr, "%*c%s _tmp_111[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025428 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "genexp"));
25429 }
25430 _res = NULL;
25431 done:
25432 D(p->level--);
25433 return _res;
25434}
25435
Brandt Bucher145bf262021-02-26 14:51:55 -080025436// _tmp_112: list | listcomp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025437static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080025438_tmp_112_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025439{
25440 D(p->level++);
25441 if (p->error_indicator) {
25442 D(p->level--);
25443 return NULL;
25444 }
25445 void * _res = NULL;
25446 int _mark = p->mark;
25447 { // list
25448 if (p->error_indicator) {
25449 D(p->level--);
25450 return NULL;
25451 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025452 D(fprintf(stderr, "%*c> _tmp_112[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "list"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025453 expr_ty list_var;
25454 if (
25455 (list_var = list_rule(p)) // list
25456 )
25457 {
Brandt Bucher145bf262021-02-26 14:51:55 -080025458 D(fprintf(stderr, "%*c+ _tmp_112[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "list"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025459 _res = list_var;
25460 goto done;
25461 }
25462 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025463 D(fprintf(stderr, "%*c%s _tmp_112[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025464 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "list"));
25465 }
25466 { // listcomp
25467 if (p->error_indicator) {
25468 D(p->level--);
25469 return NULL;
25470 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025471 D(fprintf(stderr, "%*c> _tmp_112[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "listcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025472 expr_ty listcomp_var;
25473 if (
25474 (listcomp_var = listcomp_rule(p)) // listcomp
25475 )
25476 {
Brandt Bucher145bf262021-02-26 14:51:55 -080025477 D(fprintf(stderr, "%*c+ _tmp_112[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "listcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025478 _res = listcomp_var;
25479 goto done;
25480 }
25481 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025482 D(fprintf(stderr, "%*c%s _tmp_112[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025483 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "listcomp"));
25484 }
25485 _res = NULL;
25486 done:
25487 D(p->level--);
25488 return _res;
25489}
25490
Brandt Bucher145bf262021-02-26 14:51:55 -080025491// _tmp_113: dict | set | dictcomp | setcomp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025492static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080025493_tmp_113_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025494{
25495 D(p->level++);
25496 if (p->error_indicator) {
25497 D(p->level--);
25498 return NULL;
25499 }
25500 void * _res = NULL;
25501 int _mark = p->mark;
25502 { // dict
25503 if (p->error_indicator) {
25504 D(p->level--);
25505 return NULL;
25506 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025507 D(fprintf(stderr, "%*c> _tmp_113[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dict"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025508 expr_ty dict_var;
25509 if (
25510 (dict_var = dict_rule(p)) // dict
25511 )
25512 {
Brandt Bucher145bf262021-02-26 14:51:55 -080025513 D(fprintf(stderr, "%*c+ _tmp_113[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dict"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025514 _res = dict_var;
25515 goto done;
25516 }
25517 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025518 D(fprintf(stderr, "%*c%s _tmp_113[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025519 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dict"));
25520 }
25521 { // set
25522 if (p->error_indicator) {
25523 D(p->level--);
25524 return NULL;
25525 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025526 D(fprintf(stderr, "%*c> _tmp_113[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "set"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025527 expr_ty set_var;
25528 if (
25529 (set_var = set_rule(p)) // set
25530 )
25531 {
Brandt Bucher145bf262021-02-26 14:51:55 -080025532 D(fprintf(stderr, "%*c+ _tmp_113[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "set"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025533 _res = set_var;
25534 goto done;
25535 }
25536 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025537 D(fprintf(stderr, "%*c%s _tmp_113[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025538 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "set"));
25539 }
25540 { // dictcomp
25541 if (p->error_indicator) {
25542 D(p->level--);
25543 return NULL;
25544 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025545 D(fprintf(stderr, "%*c> _tmp_113[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dictcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025546 expr_ty dictcomp_var;
25547 if (
25548 (dictcomp_var = dictcomp_rule(p)) // dictcomp
25549 )
25550 {
Brandt Bucher145bf262021-02-26 14:51:55 -080025551 D(fprintf(stderr, "%*c+ _tmp_113[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dictcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025552 _res = dictcomp_var;
25553 goto done;
25554 }
25555 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025556 D(fprintf(stderr, "%*c%s _tmp_113[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025557 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dictcomp"));
25558 }
25559 { // setcomp
25560 if (p->error_indicator) {
25561 D(p->level--);
25562 return NULL;
25563 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025564 D(fprintf(stderr, "%*c> _tmp_113[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "setcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025565 expr_ty setcomp_var;
25566 if (
25567 (setcomp_var = setcomp_rule(p)) // setcomp
25568 )
25569 {
Brandt Bucher145bf262021-02-26 14:51:55 -080025570 D(fprintf(stderr, "%*c+ _tmp_113[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "setcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025571 _res = setcomp_var;
25572 goto done;
25573 }
25574 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025575 D(fprintf(stderr, "%*c%s _tmp_113[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025576 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "setcomp"));
25577 }
25578 _res = NULL;
25579 done:
25580 D(p->level--);
25581 return _res;
25582}
25583
Brandt Bucher145bf262021-02-26 14:51:55 -080025584// _loop1_114: STRING
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025585static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025586_loop1_114_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025587{
25588 D(p->level++);
25589 if (p->error_indicator) {
25590 D(p->level--);
25591 return NULL;
25592 }
25593 void *_res = NULL;
25594 int _mark = p->mark;
25595 int _start_mark = p->mark;
25596 void **_children = PyMem_Malloc(sizeof(void *));
25597 if (!_children) {
25598 p->error_indicator = 1;
25599 PyErr_NoMemory();
25600 D(p->level--);
25601 return NULL;
25602 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025603 Py_ssize_t _children_capacity = 1;
25604 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025605 { // STRING
25606 if (p->error_indicator) {
25607 D(p->level--);
25608 return NULL;
25609 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025610 D(fprintf(stderr, "%*c> _loop1_114[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "STRING"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025611 expr_ty string_var;
25612 while (
25613 (string_var = _PyPegen_string_token(p)) // STRING
25614 )
25615 {
25616 _res = string_var;
25617 if (_n == _children_capacity) {
25618 _children_capacity *= 2;
25619 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25620 if (!_new_children) {
25621 p->error_indicator = 1;
25622 PyErr_NoMemory();
25623 D(p->level--);
25624 return NULL;
25625 }
25626 _children = _new_children;
25627 }
25628 _children[_n++] = _res;
25629 _mark = p->mark;
25630 }
25631 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025632 D(fprintf(stderr, "%*c%s _loop1_114[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025633 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "STRING"));
25634 }
25635 if (_n == 0 || p->error_indicator) {
25636 PyMem_Free(_children);
25637 D(p->level--);
25638 return NULL;
25639 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025640 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025641 if (!_seq) {
25642 PyMem_Free(_children);
25643 p->error_indicator = 1;
25644 PyErr_NoMemory();
25645 D(p->level--);
25646 return NULL;
25647 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025648 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025649 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025650 _PyPegen_insert_memo(p, _start_mark, _loop1_114_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025651 D(p->level--);
25652 return _seq;
25653}
25654
Brandt Bucher145bf262021-02-26 14:51:55 -080025655// _tmp_115: star_named_expression ',' star_named_expressions?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025656static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080025657_tmp_115_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025658{
25659 D(p->level++);
25660 if (p->error_indicator) {
25661 D(p->level--);
25662 return NULL;
25663 }
25664 void * _res = NULL;
25665 int _mark = p->mark;
25666 { // star_named_expression ',' star_named_expressions?
25667 if (p->error_indicator) {
25668 D(p->level--);
25669 return NULL;
25670 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025671 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 +010025672 Token * _literal;
25673 expr_ty y;
25674 void *z;
25675 if (
25676 (y = star_named_expression_rule(p)) // star_named_expression
25677 &&
25678 (_literal = _PyPegen_expect_token(p, 12)) // token=','
25679 &&
25680 (z = star_named_expressions_rule(p), 1) // star_named_expressions?
25681 )
25682 {
Brandt Bucher145bf262021-02-26 14:51:55 -080025683 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 +010025684 _res = _PyPegen_seq_insert_in_front ( p , y , z );
25685 if (_res == NULL && PyErr_Occurred()) {
25686 p->error_indicator = 1;
25687 D(p->level--);
25688 return NULL;
25689 }
25690 goto done;
25691 }
25692 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025693 D(fprintf(stderr, "%*c%s _tmp_115[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025694 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression ',' star_named_expressions?"));
25695 }
25696 _res = NULL;
25697 done:
25698 D(p->level--);
25699 return _res;
25700}
25701
Brandt Bucher145bf262021-02-26 14:51:55 -080025702// _tmp_116: yield_expr | named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025703static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080025704_tmp_116_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025705{
25706 D(p->level++);
25707 if (p->error_indicator) {
25708 D(p->level--);
25709 return NULL;
25710 }
25711 void * _res = NULL;
25712 int _mark = p->mark;
25713 { // yield_expr
25714 if (p->error_indicator) {
25715 D(p->level--);
25716 return NULL;
25717 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025718 D(fprintf(stderr, "%*c> _tmp_116[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025719 expr_ty yield_expr_var;
25720 if (
25721 (yield_expr_var = yield_expr_rule(p)) // yield_expr
25722 )
25723 {
Brandt Bucher145bf262021-02-26 14:51:55 -080025724 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 +010025725 _res = yield_expr_var;
25726 goto done;
25727 }
25728 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025729 D(fprintf(stderr, "%*c%s _tmp_116[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025730 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
25731 }
25732 { // named_expression
25733 if (p->error_indicator) {
25734 D(p->level--);
25735 return NULL;
25736 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025737 D(fprintf(stderr, "%*c> _tmp_116[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025738 expr_ty named_expression_var;
25739 if (
25740 (named_expression_var = named_expression_rule(p)) // named_expression
25741 )
25742 {
Brandt Bucher145bf262021-02-26 14:51:55 -080025743 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 +010025744 _res = named_expression_var;
25745 goto done;
25746 }
25747 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025748 D(fprintf(stderr, "%*c%s _tmp_116[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025749 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression"));
25750 }
25751 _res = NULL;
25752 done:
25753 D(p->level--);
25754 return _res;
25755}
25756
Brandt Bucher145bf262021-02-26 14:51:55 -080025757// _loop0_118: ',' double_starred_kvpair
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025758static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025759_loop0_118_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025760{
25761 D(p->level++);
25762 if (p->error_indicator) {
25763 D(p->level--);
25764 return NULL;
25765 }
25766 void *_res = NULL;
25767 int _mark = p->mark;
25768 int _start_mark = p->mark;
25769 void **_children = PyMem_Malloc(sizeof(void *));
25770 if (!_children) {
25771 p->error_indicator = 1;
25772 PyErr_NoMemory();
25773 D(p->level--);
25774 return NULL;
25775 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025776 Py_ssize_t _children_capacity = 1;
25777 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025778 { // ',' double_starred_kvpair
25779 if (p->error_indicator) {
25780 D(p->level--);
25781 return NULL;
25782 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025783 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 +010025784 Token * _literal;
25785 KeyValuePair* elem;
25786 while (
25787 (_literal = _PyPegen_expect_token(p, 12)) // token=','
25788 &&
25789 (elem = double_starred_kvpair_rule(p)) // double_starred_kvpair
25790 )
25791 {
25792 _res = elem;
25793 if (_res == NULL && PyErr_Occurred()) {
25794 p->error_indicator = 1;
25795 PyMem_Free(_children);
25796 D(p->level--);
25797 return NULL;
25798 }
25799 if (_n == _children_capacity) {
25800 _children_capacity *= 2;
25801 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25802 if (!_new_children) {
25803 p->error_indicator = 1;
25804 PyErr_NoMemory();
25805 D(p->level--);
25806 return NULL;
25807 }
25808 _children = _new_children;
25809 }
25810 _children[_n++] = _res;
25811 _mark = p->mark;
25812 }
25813 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025814 D(fprintf(stderr, "%*c%s _loop0_118[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025815 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' double_starred_kvpair"));
25816 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025817 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025818 if (!_seq) {
25819 PyMem_Free(_children);
25820 p->error_indicator = 1;
25821 PyErr_NoMemory();
25822 D(p->level--);
25823 return NULL;
25824 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025825 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025826 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025827 _PyPegen_insert_memo(p, _start_mark, _loop0_118_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025828 D(p->level--);
25829 return _seq;
25830}
25831
Brandt Bucher145bf262021-02-26 14:51:55 -080025832// _gather_117: double_starred_kvpair _loop0_118
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025833static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025834_gather_117_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025835{
25836 D(p->level++);
25837 if (p->error_indicator) {
25838 D(p->level--);
25839 return NULL;
25840 }
25841 asdl_seq * _res = NULL;
25842 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025843 { // double_starred_kvpair _loop0_118
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025844 if (p->error_indicator) {
25845 D(p->level--);
25846 return NULL;
25847 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025848 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 +010025849 KeyValuePair* elem;
25850 asdl_seq * seq;
25851 if (
25852 (elem = double_starred_kvpair_rule(p)) // double_starred_kvpair
25853 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080025854 (seq = _loop0_118_rule(p)) // _loop0_118
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025855 )
25856 {
Brandt Bucher145bf262021-02-26 14:51:55 -080025857 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 +010025858 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
25859 goto done;
25860 }
25861 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025862 D(fprintf(stderr, "%*c%s _gather_117[%d-%d]: %s failed!\n", p->level, ' ',
25863 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "double_starred_kvpair _loop0_118"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025864 }
25865 _res = NULL;
25866 done:
25867 D(p->level--);
25868 return _res;
25869}
25870
Brandt Bucher145bf262021-02-26 14:51:55 -080025871// _loop1_119: for_if_clause
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025872static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025873_loop1_119_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025874{
25875 D(p->level++);
25876 if (p->error_indicator) {
25877 D(p->level--);
25878 return NULL;
25879 }
25880 void *_res = NULL;
25881 int _mark = p->mark;
25882 int _start_mark = p->mark;
25883 void **_children = PyMem_Malloc(sizeof(void *));
25884 if (!_children) {
25885 p->error_indicator = 1;
25886 PyErr_NoMemory();
25887 D(p->level--);
25888 return NULL;
25889 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025890 Py_ssize_t _children_capacity = 1;
25891 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025892 { // for_if_clause
25893 if (p->error_indicator) {
25894 D(p->level--);
25895 return NULL;
25896 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025897 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 +010025898 comprehension_ty for_if_clause_var;
25899 while (
25900 (for_if_clause_var = for_if_clause_rule(p)) // for_if_clause
25901 )
25902 {
25903 _res = for_if_clause_var;
25904 if (_n == _children_capacity) {
25905 _children_capacity *= 2;
25906 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25907 if (!_new_children) {
25908 p->error_indicator = 1;
25909 PyErr_NoMemory();
25910 D(p->level--);
25911 return NULL;
25912 }
25913 _children = _new_children;
25914 }
25915 _children[_n++] = _res;
25916 _mark = p->mark;
25917 }
25918 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025919 D(fprintf(stderr, "%*c%s _loop1_119[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025920 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "for_if_clause"));
25921 }
25922 if (_n == 0 || p->error_indicator) {
25923 PyMem_Free(_children);
25924 D(p->level--);
25925 return NULL;
25926 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025927 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025928 if (!_seq) {
25929 PyMem_Free(_children);
25930 p->error_indicator = 1;
25931 PyErr_NoMemory();
25932 D(p->level--);
25933 return NULL;
25934 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025935 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025936 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025937 _PyPegen_insert_memo(p, _start_mark, _loop1_119_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025938 D(p->level--);
25939 return _seq;
25940}
25941
Brandt Bucher145bf262021-02-26 14:51:55 -080025942// _loop0_120: ('if' disjunction)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025943static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025944_loop0_120_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025945{
25946 D(p->level++);
25947 if (p->error_indicator) {
25948 D(p->level--);
25949 return NULL;
25950 }
25951 void *_res = NULL;
25952 int _mark = p->mark;
25953 int _start_mark = p->mark;
25954 void **_children = PyMem_Malloc(sizeof(void *));
25955 if (!_children) {
25956 p->error_indicator = 1;
25957 PyErr_NoMemory();
25958 D(p->level--);
25959 return NULL;
25960 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025961 Py_ssize_t _children_capacity = 1;
25962 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025963 { // ('if' disjunction)
25964 if (p->error_indicator) {
25965 D(p->level--);
25966 return NULL;
25967 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025968 D(fprintf(stderr, "%*c> _loop0_120[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('if' disjunction)"));
25969 void *_tmp_170_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025970 while (
Brandt Bucher145bf262021-02-26 14:51:55 -080025971 (_tmp_170_var = _tmp_170_rule(p)) // 'if' disjunction
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025972 )
25973 {
Brandt Bucher145bf262021-02-26 14:51:55 -080025974 _res = _tmp_170_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025975 if (_n == _children_capacity) {
25976 _children_capacity *= 2;
25977 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25978 if (!_new_children) {
25979 p->error_indicator = 1;
25980 PyErr_NoMemory();
25981 D(p->level--);
25982 return NULL;
25983 }
25984 _children = _new_children;
25985 }
25986 _children[_n++] = _res;
25987 _mark = p->mark;
25988 }
25989 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025990 D(fprintf(stderr, "%*c%s _loop0_120[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025991 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('if' disjunction)"));
25992 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025993 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025994 if (!_seq) {
25995 PyMem_Free(_children);
25996 p->error_indicator = 1;
25997 PyErr_NoMemory();
25998 D(p->level--);
25999 return NULL;
26000 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026001 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026002 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026003 _PyPegen_insert_memo(p, _start_mark, _loop0_120_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026004 D(p->level--);
26005 return _seq;
26006}
26007
Brandt Bucher145bf262021-02-26 14:51:55 -080026008// _loop0_121: ('if' disjunction)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026009static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026010_loop0_121_rule(Parser *p)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026011{
26012 D(p->level++);
26013 if (p->error_indicator) {
26014 D(p->level--);
26015 return NULL;
26016 }
26017 void *_res = NULL;
26018 int _mark = p->mark;
26019 int _start_mark = p->mark;
26020 void **_children = PyMem_Malloc(sizeof(void *));
26021 if (!_children) {
26022 p->error_indicator = 1;
26023 PyErr_NoMemory();
26024 D(p->level--);
26025 return NULL;
26026 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026027 Py_ssize_t _children_capacity = 1;
26028 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026029 { // ('if' disjunction)
26030 if (p->error_indicator) {
26031 D(p->level--);
26032 return NULL;
26033 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026034 D(fprintf(stderr, "%*c> _loop0_121[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('if' disjunction)"));
26035 void *_tmp_171_var;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026036 while (
Brandt Bucher145bf262021-02-26 14:51:55 -080026037 (_tmp_171_var = _tmp_171_rule(p)) // 'if' disjunction
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026038 )
26039 {
Brandt Bucher145bf262021-02-26 14:51:55 -080026040 _res = _tmp_171_var;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026041 if (_n == _children_capacity) {
26042 _children_capacity *= 2;
26043 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26044 if (!_new_children) {
26045 p->error_indicator = 1;
26046 PyErr_NoMemory();
26047 D(p->level--);
26048 return NULL;
26049 }
26050 _children = _new_children;
26051 }
26052 _children[_n++] = _res;
26053 _mark = p->mark;
26054 }
26055 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026056 D(fprintf(stderr, "%*c%s _loop0_121[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026057 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('if' disjunction)"));
26058 }
26059 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
26060 if (!_seq) {
26061 PyMem_Free(_children);
26062 p->error_indicator = 1;
26063 PyErr_NoMemory();
26064 D(p->level--);
26065 return NULL;
26066 }
26067 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
26068 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026069 _PyPegen_insert_memo(p, _start_mark, _loop0_121_type, _seq);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026070 D(p->level--);
26071 return _seq;
26072}
26073
Brandt Bucher145bf262021-02-26 14:51:55 -080026074// _loop0_123: ',' (starred_expression | named_expression !'=')
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026075static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026076_loop0_123_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026077{
26078 D(p->level++);
26079 if (p->error_indicator) {
26080 D(p->level--);
26081 return NULL;
26082 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026083 void *_res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026084 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026085 int _start_mark = p->mark;
26086 void **_children = PyMem_Malloc(sizeof(void *));
26087 if (!_children) {
26088 p->error_indicator = 1;
26089 PyErr_NoMemory();
26090 D(p->level--);
26091 return NULL;
26092 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026093 Py_ssize_t _children_capacity = 1;
26094 Py_ssize_t _n = 0;
Pablo Galindo4a97b152020-09-02 17:44:19 +010026095 { // ',' (starred_expression | named_expression !'=')
26096 if (p->error_indicator) {
26097 D(p->level--);
26098 return NULL;
26099 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026100 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 +010026101 Token * _literal;
26102 void *elem;
26103 while (
26104 (_literal = _PyPegen_expect_token(p, 12)) // token=','
26105 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080026106 (elem = _tmp_172_rule(p)) // starred_expression | named_expression !'='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026107 )
26108 {
26109 _res = elem;
26110 if (_res == NULL && PyErr_Occurred()) {
26111 p->error_indicator = 1;
26112 PyMem_Free(_children);
26113 D(p->level--);
26114 return NULL;
26115 }
26116 if (_n == _children_capacity) {
26117 _children_capacity *= 2;
26118 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26119 if (!_new_children) {
26120 p->error_indicator = 1;
26121 PyErr_NoMemory();
26122 D(p->level--);
26123 return NULL;
26124 }
26125 _children = _new_children;
26126 }
26127 _children[_n++] = _res;
26128 _mark = p->mark;
26129 }
26130 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020026131 D(fprintf(stderr, "%*c%s _loop0_123[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080026132 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (starred_expression | named_expression !'=')"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026133 }
26134 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
26135 if (!_seq) {
26136 PyMem_Free(_children);
26137 p->error_indicator = 1;
26138 PyErr_NoMemory();
26139 D(p->level--);
26140 return NULL;
26141 }
26142 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
26143 PyMem_Free(_children);
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020026144 _PyPegen_insert_memo(p, _start_mark, _loop0_123_type, _seq);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026145 D(p->level--);
26146 return _seq;
26147}
26148
Brandt Bucher145bf262021-02-26 14:51:55 -080026149// _gather_122: (starred_expression | named_expression !'=') _loop0_123
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026150static asdl_seq *
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020026151_gather_122_rule(Parser *p)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026152{
26153 D(p->level++);
26154 if (p->error_indicator) {
26155 D(p->level--);
26156 return NULL;
26157 }
26158 asdl_seq * _res = NULL;
26159 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026160 { // (starred_expression | named_expression !'=') _loop0_123
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026161 if (p->error_indicator) {
26162 D(p->level--);
26163 return NULL;
26164 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026165 D(fprintf(stderr, "%*c> _gather_122[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(starred_expression | named_expression !'=') _loop0_123"));
26166 void *elem;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026167 asdl_seq * seq;
26168 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080026169 (elem = _tmp_172_rule(p)) // starred_expression | named_expression !'='
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026170 &&
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020026171 (seq = _loop0_123_rule(p)) // _loop0_123
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026172 )
26173 {
Brandt Bucher145bf262021-02-26 14:51:55 -080026174 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 +000026175 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
26176 goto done;
26177 }
26178 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020026179 D(fprintf(stderr, "%*c%s _gather_122[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080026180 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(starred_expression | named_expression !'=') _loop0_123"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026181 }
26182 _res = NULL;
26183 done:
26184 D(p->level--);
26185 return _res;
26186}
26187
Brandt Bucher145bf262021-02-26 14:51:55 -080026188// _tmp_124: ',' kwargs
26189static void *
26190_tmp_124_rule(Parser *p)
26191{
26192 D(p->level++);
26193 if (p->error_indicator) {
26194 D(p->level--);
26195 return NULL;
26196 }
26197 void * _res = NULL;
26198 int _mark = p->mark;
26199 { // ',' kwargs
26200 if (p->error_indicator) {
26201 D(p->level--);
26202 return NULL;
26203 }
26204 D(fprintf(stderr, "%*c> _tmp_124[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwargs"));
26205 Token * _literal;
26206 asdl_seq* k;
26207 if (
26208 (_literal = _PyPegen_expect_token(p, 12)) // token=','
26209 &&
26210 (k = kwargs_rule(p)) // kwargs
26211 )
26212 {
26213 D(fprintf(stderr, "%*c+ _tmp_124[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' kwargs"));
26214 _res = k;
26215 if (_res == NULL && PyErr_Occurred()) {
26216 p->error_indicator = 1;
26217 D(p->level--);
26218 return NULL;
26219 }
26220 goto done;
26221 }
26222 p->mark = _mark;
26223 D(fprintf(stderr, "%*c%s _tmp_124[%d-%d]: %s failed!\n", p->level, ' ',
26224 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwargs"));
26225 }
26226 _res = NULL;
26227 done:
26228 D(p->level--);
26229 return _res;
26230}
26231
26232// _loop0_126: ',' kwarg_or_starred
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026233static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026234_loop0_126_rule(Parser *p)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026235{
26236 D(p->level++);
26237 if (p->error_indicator) {
26238 D(p->level--);
26239 return NULL;
26240 }
26241 void *_res = NULL;
26242 int _mark = p->mark;
26243 int _start_mark = p->mark;
26244 void **_children = PyMem_Malloc(sizeof(void *));
26245 if (!_children) {
26246 p->error_indicator = 1;
26247 PyErr_NoMemory();
26248 D(p->level--);
26249 return NULL;
26250 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026251 Py_ssize_t _children_capacity = 1;
26252 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080026253 { // ',' kwarg_or_starred
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026254 if (p->error_indicator) {
26255 D(p->level--);
26256 return NULL;
26257 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026258 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 +000026259 Token * _literal;
Brandt Bucher145bf262021-02-26 14:51:55 -080026260 KeywordOrStarred* elem;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026261 while (
26262 (_literal = _PyPegen_expect_token(p, 12)) // token=','
26263 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080026264 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026265 )
26266 {
26267 _res = elem;
26268 if (_res == NULL && PyErr_Occurred()) {
26269 p->error_indicator = 1;
26270 PyMem_Free(_children);
26271 D(p->level--);
26272 return NULL;
26273 }
26274 if (_n == _children_capacity) {
26275 _children_capacity *= 2;
26276 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26277 if (!_new_children) {
26278 p->error_indicator = 1;
26279 PyErr_NoMemory();
26280 D(p->level--);
26281 return NULL;
26282 }
26283 _children = _new_children;
26284 }
26285 _children[_n++] = _res;
26286 _mark = p->mark;
26287 }
26288 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026289 D(fprintf(stderr, "%*c%s _loop0_126[%d-%d]: %s failed!\n", p->level, ' ',
26290 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_starred"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026291 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026292 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026293 if (!_seq) {
26294 PyMem_Free(_children);
26295 p->error_indicator = 1;
26296 PyErr_NoMemory();
26297 D(p->level--);
26298 return NULL;
26299 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026300 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026301 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026302 _PyPegen_insert_memo(p, _start_mark, _loop0_126_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026303 D(p->level--);
26304 return _seq;
26305}
26306
Brandt Bucher145bf262021-02-26 14:51:55 -080026307// _gather_125: kwarg_or_starred _loop0_126
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026308static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026309_gather_125_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026310{
26311 D(p->level++);
26312 if (p->error_indicator) {
26313 D(p->level--);
26314 return NULL;
26315 }
26316 asdl_seq * _res = NULL;
26317 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026318 { // kwarg_or_starred _loop0_126
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026319 if (p->error_indicator) {
26320 D(p->level--);
26321 return NULL;
26322 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026323 D(fprintf(stderr, "%*c> _gather_125[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwarg_or_starred _loop0_126"));
26324 KeywordOrStarred* elem;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026325 asdl_seq * seq;
26326 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080026327 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026328 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080026329 (seq = _loop0_126_rule(p)) // _loop0_126
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026330 )
26331 {
Brandt Bucher145bf262021-02-26 14:51:55 -080026332 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 +010026333 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
26334 goto done;
26335 }
26336 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026337 D(fprintf(stderr, "%*c%s _gather_125[%d-%d]: %s failed!\n", p->level, ' ',
26338 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_starred _loop0_126"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026339 }
26340 _res = NULL;
26341 done:
26342 D(p->level--);
26343 return _res;
26344}
26345
Brandt Bucher145bf262021-02-26 14:51:55 -080026346// _loop0_128: ',' kwarg_or_double_starred
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026347static asdl_seq *
26348_loop0_128_rule(Parser *p)
26349{
26350 D(p->level++);
26351 if (p->error_indicator) {
26352 D(p->level--);
26353 return NULL;
26354 }
26355 void *_res = NULL;
26356 int _mark = p->mark;
26357 int _start_mark = p->mark;
26358 void **_children = PyMem_Malloc(sizeof(void *));
26359 if (!_children) {
26360 p->error_indicator = 1;
26361 PyErr_NoMemory();
26362 D(p->level--);
26363 return NULL;
26364 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026365 Py_ssize_t _children_capacity = 1;
26366 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080026367 { // ',' kwarg_or_double_starred
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026368 if (p->error_indicator) {
26369 D(p->level--);
26370 return NULL;
26371 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026372 D(fprintf(stderr, "%*c> _loop0_128[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwarg_or_double_starred"));
26373 Token * _literal;
26374 KeywordOrStarred* elem;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026375 while (
Brandt Bucher145bf262021-02-26 14:51:55 -080026376 (_literal = _PyPegen_expect_token(p, 12)) // token=','
26377 &&
26378 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026379 )
26380 {
Brandt Bucher145bf262021-02-26 14:51:55 -080026381 _res = elem;
26382 if (_res == NULL && PyErr_Occurred()) {
26383 p->error_indicator = 1;
26384 PyMem_Free(_children);
26385 D(p->level--);
26386 return NULL;
26387 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026388 if (_n == _children_capacity) {
26389 _children_capacity *= 2;
26390 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26391 if (!_new_children) {
26392 p->error_indicator = 1;
26393 PyErr_NoMemory();
26394 D(p->level--);
26395 return NULL;
26396 }
26397 _children = _new_children;
26398 }
26399 _children[_n++] = _res;
26400 _mark = p->mark;
26401 }
26402 p->mark = _mark;
26403 D(fprintf(stderr, "%*c%s _loop0_128[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080026404 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_double_starred"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026405 }
26406 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
26407 if (!_seq) {
26408 PyMem_Free(_children);
26409 p->error_indicator = 1;
26410 PyErr_NoMemory();
26411 D(p->level--);
26412 return NULL;
26413 }
26414 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
26415 PyMem_Free(_children);
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030026416 _PyPegen_insert_memo(p, _start_mark, _loop0_128_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026417 D(p->level--);
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030026418 return _seq;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026419}
26420
Brandt Bucher145bf262021-02-26 14:51:55 -080026421// _gather_127: kwarg_or_double_starred _loop0_128
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020026422static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026423_gather_127_rule(Parser *p)
26424{
26425 D(p->level++);
26426 if (p->error_indicator) {
26427 D(p->level--);
26428 return NULL;
26429 }
26430 asdl_seq * _res = NULL;
26431 int _mark = p->mark;
26432 { // kwarg_or_double_starred _loop0_128
26433 if (p->error_indicator) {
26434 D(p->level--);
26435 return NULL;
26436 }
26437 D(fprintf(stderr, "%*c> _gather_127[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwarg_or_double_starred _loop0_128"));
26438 KeywordOrStarred* elem;
26439 asdl_seq * seq;
26440 if (
26441 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
26442 &&
26443 (seq = _loop0_128_rule(p)) // _loop0_128
26444 )
26445 {
26446 D(fprintf(stderr, "%*c+ _gather_127[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwarg_or_double_starred _loop0_128"));
26447 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
26448 goto done;
26449 }
26450 p->mark = _mark;
26451 D(fprintf(stderr, "%*c%s _gather_127[%d-%d]: %s failed!\n", p->level, ' ',
26452 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_double_starred _loop0_128"));
26453 }
26454 _res = NULL;
26455 done:
26456 D(p->level--);
26457 return _res;
26458}
26459
26460// _loop0_130: ',' kwarg_or_starred
26461static asdl_seq *
26462_loop0_130_rule(Parser *p)
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020026463{
26464 D(p->level++);
26465 if (p->error_indicator) {
26466 D(p->level--);
26467 return NULL;
26468 }
26469 void *_res = NULL;
26470 int _mark = p->mark;
26471 int _start_mark = p->mark;
26472 void **_children = PyMem_Malloc(sizeof(void *));
26473 if (!_children) {
26474 p->error_indicator = 1;
26475 PyErr_NoMemory();
26476 D(p->level--);
26477 return NULL;
26478 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026479 Py_ssize_t _children_capacity = 1;
26480 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080026481 { // ',' kwarg_or_starred
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020026482 if (p->error_indicator) {
26483 D(p->level--);
26484 return NULL;
26485 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026486 D(fprintf(stderr, "%*c> _loop0_130[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwarg_or_starred"));
26487 Token * _literal;
26488 KeywordOrStarred* elem;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020026489 while (
Brandt Bucher145bf262021-02-26 14:51:55 -080026490 (_literal = _PyPegen_expect_token(p, 12)) // token=','
26491 &&
26492 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020026493 )
26494 {
Brandt Bucher145bf262021-02-26 14:51:55 -080026495 _res = elem;
26496 if (_res == NULL && PyErr_Occurred()) {
26497 p->error_indicator = 1;
26498 PyMem_Free(_children);
26499 D(p->level--);
26500 return NULL;
26501 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020026502 if (_n == _children_capacity) {
26503 _children_capacity *= 2;
26504 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26505 if (!_new_children) {
26506 p->error_indicator = 1;
26507 PyErr_NoMemory();
26508 D(p->level--);
26509 return NULL;
26510 }
26511 _children = _new_children;
26512 }
26513 _children[_n++] = _res;
26514 _mark = p->mark;
26515 }
26516 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026517 D(fprintf(stderr, "%*c%s _loop0_130[%d-%d]: %s failed!\n", p->level, ' ',
26518 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_starred"));
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020026519 }
26520 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
26521 if (!_seq) {
26522 PyMem_Free(_children);
26523 p->error_indicator = 1;
26524 PyErr_NoMemory();
26525 D(p->level--);
26526 return NULL;
26527 }
26528 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
26529 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026530 _PyPegen_insert_memo(p, _start_mark, _loop0_130_type, _seq);
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020026531 D(p->level--);
26532 return _seq;
26533}
26534
Brandt Bucher145bf262021-02-26 14:51:55 -080026535// _gather_129: kwarg_or_starred _loop0_130
26536static asdl_seq *
26537_gather_129_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026538{
26539 D(p->level++);
26540 if (p->error_indicator) {
26541 D(p->level--);
26542 return NULL;
26543 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026544 asdl_seq * _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026545 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026546 { // kwarg_or_starred _loop0_130
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026547 if (p->error_indicator) {
26548 D(p->level--);
26549 return NULL;
26550 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026551 D(fprintf(stderr, "%*c> _gather_129[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwarg_or_starred _loop0_130"));
26552 KeywordOrStarred* elem;
26553 asdl_seq * seq;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026554 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080026555 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
26556 &&
26557 (seq = _loop0_130_rule(p)) // _loop0_130
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026558 )
26559 {
Brandt Bucher145bf262021-02-26 14:51:55 -080026560 D(fprintf(stderr, "%*c+ _gather_129[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwarg_or_starred _loop0_130"));
26561 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026562 goto done;
26563 }
26564 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026565 D(fprintf(stderr, "%*c%s _gather_129[%d-%d]: %s failed!\n", p->level, ' ',
26566 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_starred _loop0_130"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026567 }
26568 _res = NULL;
26569 done:
26570 D(p->level--);
26571 return _res;
26572}
26573
Brandt Bucher145bf262021-02-26 14:51:55 -080026574// _loop0_132: ',' kwarg_or_double_starred
26575static asdl_seq *
26576_loop0_132_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026577{
26578 D(p->level++);
26579 if (p->error_indicator) {
26580 D(p->level--);
26581 return NULL;
26582 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026583 void *_res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026584 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026585 int _start_mark = p->mark;
26586 void **_children = PyMem_Malloc(sizeof(void *));
26587 if (!_children) {
26588 p->error_indicator = 1;
26589 PyErr_NoMemory();
26590 D(p->level--);
26591 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026592 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026593 Py_ssize_t _children_capacity = 1;
26594 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080026595 { // ',' kwarg_or_double_starred
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026596 if (p->error_indicator) {
26597 D(p->level--);
26598 return NULL;
26599 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026600 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 +010026601 Token * _literal;
Brandt Bucher145bf262021-02-26 14:51:55 -080026602 KeywordOrStarred* elem;
26603 while (
26604 (_literal = _PyPegen_expect_token(p, 12)) // token=','
26605 &&
26606 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026607 )
26608 {
Brandt Bucher145bf262021-02-26 14:51:55 -080026609 _res = elem;
26610 if (_res == NULL && PyErr_Occurred()) {
26611 p->error_indicator = 1;
26612 PyMem_Free(_children);
26613 D(p->level--);
26614 return NULL;
26615 }
26616 if (_n == _children_capacity) {
26617 _children_capacity *= 2;
26618 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26619 if (!_new_children) {
26620 p->error_indicator = 1;
26621 PyErr_NoMemory();
26622 D(p->level--);
26623 return NULL;
26624 }
26625 _children = _new_children;
26626 }
26627 _children[_n++] = _res;
26628 _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026629 }
26630 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026631 D(fprintf(stderr, "%*c%s _loop0_132[%d-%d]: %s failed!\n", p->level, ' ',
26632 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_double_starred"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026633 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026634 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
26635 if (!_seq) {
26636 PyMem_Free(_children);
26637 p->error_indicator = 1;
26638 PyErr_NoMemory();
26639 D(p->level--);
26640 return NULL;
26641 }
26642 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
26643 PyMem_Free(_children);
26644 _PyPegen_insert_memo(p, _start_mark, _loop0_132_type, _seq);
26645 D(p->level--);
26646 return _seq;
26647}
26648
26649// _gather_131: kwarg_or_double_starred _loop0_132
26650static asdl_seq *
26651_gather_131_rule(Parser *p)
26652{
26653 D(p->level++);
26654 if (p->error_indicator) {
26655 D(p->level--);
26656 return NULL;
26657 }
26658 asdl_seq * _res = NULL;
26659 int _mark = p->mark;
26660 { // kwarg_or_double_starred _loop0_132
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026661 if (p->error_indicator) {
26662 D(p->level--);
26663 return NULL;
26664 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026665 D(fprintf(stderr, "%*c> _gather_131[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwarg_or_double_starred _loop0_132"));
26666 KeywordOrStarred* elem;
26667 asdl_seq * seq;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026668 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080026669 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
26670 &&
26671 (seq = _loop0_132_rule(p)) // _loop0_132
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026672 )
26673 {
Brandt Bucher145bf262021-02-26 14:51:55 -080026674 D(fprintf(stderr, "%*c+ _gather_131[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwarg_or_double_starred _loop0_132"));
26675 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026676 goto done;
26677 }
26678 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026679 D(fprintf(stderr, "%*c%s _gather_131[%d-%d]: %s failed!\n", p->level, ' ',
26680 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_double_starred _loop0_132"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026681 }
26682 _res = NULL;
26683 done:
26684 D(p->level--);
26685 return _res;
26686}
26687
Brandt Bucher145bf262021-02-26 14:51:55 -080026688// _loop0_133: (',' star_target)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026689static asdl_seq *
Pablo Galindo835f14f2021-01-31 22:52:56 +000026690_loop0_133_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026691{
26692 D(p->level++);
26693 if (p->error_indicator) {
26694 D(p->level--);
26695 return NULL;
26696 }
26697 void *_res = NULL;
26698 int _mark = p->mark;
26699 int _start_mark = p->mark;
26700 void **_children = PyMem_Malloc(sizeof(void *));
26701 if (!_children) {
26702 p->error_indicator = 1;
26703 PyErr_NoMemory();
26704 D(p->level--);
26705 return NULL;
26706 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026707 Py_ssize_t _children_capacity = 1;
26708 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080026709 { // (',' star_target)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026710 if (p->error_indicator) {
26711 D(p->level--);
26712 return NULL;
26713 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026714 D(fprintf(stderr, "%*c> _loop0_133[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_target)"));
26715 void *_tmp_173_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026716 while (
Brandt Bucher145bf262021-02-26 14:51:55 -080026717 (_tmp_173_var = _tmp_173_rule(p)) // ',' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026718 )
26719 {
Brandt Bucher145bf262021-02-26 14:51:55 -080026720 _res = _tmp_173_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026721 if (_n == _children_capacity) {
26722 _children_capacity *= 2;
26723 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26724 if (!_new_children) {
26725 p->error_indicator = 1;
26726 PyErr_NoMemory();
26727 D(p->level--);
26728 return NULL;
26729 }
26730 _children = _new_children;
26731 }
26732 _children[_n++] = _res;
26733 _mark = p->mark;
26734 }
26735 p->mark = _mark;
Pablo Galindo835f14f2021-01-31 22:52:56 +000026736 D(fprintf(stderr, "%*c%s _loop0_133[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080026737 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' star_target)"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026738 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026739 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026740 if (!_seq) {
26741 PyMem_Free(_children);
26742 p->error_indicator = 1;
26743 PyErr_NoMemory();
26744 D(p->level--);
26745 return NULL;
26746 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026747 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026748 PyMem_Free(_children);
Pablo Galindo835f14f2021-01-31 22:52:56 +000026749 _PyPegen_insert_memo(p, _start_mark, _loop0_133_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026750 D(p->level--);
26751 return _seq;
26752}
26753
Brandt Bucher145bf262021-02-26 14:51:55 -080026754// _loop0_135: ',' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026755static asdl_seq *
Pablo Galindo835f14f2021-01-31 22:52:56 +000026756_loop0_135_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026757{
26758 D(p->level++);
26759 if (p->error_indicator) {
26760 D(p->level--);
26761 return NULL;
26762 }
26763 void *_res = NULL;
26764 int _mark = p->mark;
26765 int _start_mark = p->mark;
26766 void **_children = PyMem_Malloc(sizeof(void *));
26767 if (!_children) {
26768 p->error_indicator = 1;
26769 PyErr_NoMemory();
26770 D(p->level--);
26771 return NULL;
26772 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026773 Py_ssize_t _children_capacity = 1;
26774 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080026775 { // ',' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026776 if (p->error_indicator) {
26777 D(p->level--);
26778 return NULL;
26779 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026780 D(fprintf(stderr, "%*c> _loop0_135[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target"));
26781 Token * _literal;
26782 expr_ty elem;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026783 while (
Brandt Bucher145bf262021-02-26 14:51:55 -080026784 (_literal = _PyPegen_expect_token(p, 12)) // token=','
26785 &&
26786 (elem = star_target_rule(p)) // star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026787 )
26788 {
Brandt Bucher145bf262021-02-26 14:51:55 -080026789 _res = elem;
26790 if (_res == NULL && PyErr_Occurred()) {
26791 p->error_indicator = 1;
26792 PyMem_Free(_children);
26793 D(p->level--);
26794 return NULL;
26795 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026796 if (_n == _children_capacity) {
26797 _children_capacity *= 2;
26798 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26799 if (!_new_children) {
26800 p->error_indicator = 1;
26801 PyErr_NoMemory();
26802 D(p->level--);
26803 return NULL;
26804 }
26805 _children = _new_children;
26806 }
26807 _children[_n++] = _res;
26808 _mark = p->mark;
26809 }
26810 p->mark = _mark;
Pablo Galindo835f14f2021-01-31 22:52:56 +000026811 D(fprintf(stderr, "%*c%s _loop0_135[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080026812 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026813 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026814 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026815 if (!_seq) {
26816 PyMem_Free(_children);
26817 p->error_indicator = 1;
26818 PyErr_NoMemory();
26819 D(p->level--);
26820 return NULL;
26821 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026822 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026823 PyMem_Free(_children);
Pablo Galindo835f14f2021-01-31 22:52:56 +000026824 _PyPegen_insert_memo(p, _start_mark, _loop0_135_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026825 D(p->level--);
26826 return _seq;
26827}
26828
Brandt Bucher145bf262021-02-26 14:51:55 -080026829// _gather_134: star_target _loop0_135
26830static asdl_seq *
26831_gather_134_rule(Parser *p)
26832{
26833 D(p->level++);
26834 if (p->error_indicator) {
26835 D(p->level--);
26836 return NULL;
26837 }
26838 asdl_seq * _res = NULL;
26839 int _mark = p->mark;
26840 { // star_target _loop0_135
26841 if (p->error_indicator) {
26842 D(p->level--);
26843 return NULL;
26844 }
26845 D(fprintf(stderr, "%*c> _gather_134[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target _loop0_135"));
26846 expr_ty elem;
26847 asdl_seq * seq;
26848 if (
26849 (elem = star_target_rule(p)) // star_target
26850 &&
26851 (seq = _loop0_135_rule(p)) // _loop0_135
26852 )
26853 {
26854 D(fprintf(stderr, "%*c+ _gather_134[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target _loop0_135"));
26855 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
26856 goto done;
26857 }
26858 p->mark = _mark;
26859 D(fprintf(stderr, "%*c%s _gather_134[%d-%d]: %s failed!\n", p->level, ' ',
26860 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target _loop0_135"));
26861 }
26862 _res = NULL;
26863 done:
26864 D(p->level--);
26865 return _res;
26866}
26867
26868// _loop1_136: (',' star_target)
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020026869static asdl_seq *
Pablo Galindo835f14f2021-01-31 22:52:56 +000026870_loop1_136_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026871{
26872 D(p->level++);
26873 if (p->error_indicator) {
26874 D(p->level--);
26875 return NULL;
26876 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020026877 void *_res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026878 int _mark = p->mark;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020026879 int _start_mark = p->mark;
26880 void **_children = PyMem_Malloc(sizeof(void *));
26881 if (!_children) {
26882 p->error_indicator = 1;
26883 PyErr_NoMemory();
26884 D(p->level--);
26885 return NULL;
26886 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026887 Py_ssize_t _children_capacity = 1;
26888 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080026889 { // (',' star_target)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026890 if (p->error_indicator) {
26891 D(p->level--);
26892 return NULL;
26893 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026894 D(fprintf(stderr, "%*c> _loop1_136[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_target)"));
26895 void *_tmp_174_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020026896 while (
Brandt Bucher145bf262021-02-26 14:51:55 -080026897 (_tmp_174_var = _tmp_174_rule(p)) // ',' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026898 )
26899 {
Brandt Bucher145bf262021-02-26 14:51:55 -080026900 _res = _tmp_174_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020026901 if (_n == _children_capacity) {
26902 _children_capacity *= 2;
26903 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26904 if (!_new_children) {
26905 p->error_indicator = 1;
26906 PyErr_NoMemory();
26907 D(p->level--);
26908 return NULL;
26909 }
26910 _children = _new_children;
26911 }
26912 _children[_n++] = _res;
26913 _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026914 }
26915 p->mark = _mark;
Pablo Galindo835f14f2021-01-31 22:52:56 +000026916 D(fprintf(stderr, "%*c%s _loop1_136[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080026917 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' star_target)"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026918 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020026919 if (_n == 0 || p->error_indicator) {
26920 PyMem_Free(_children);
26921 D(p->level--);
26922 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026923 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020026924 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
26925 if (!_seq) {
26926 PyMem_Free(_children);
26927 p->error_indicator = 1;
26928 PyErr_NoMemory();
26929 D(p->level--);
26930 return NULL;
26931 }
26932 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
26933 PyMem_Free(_children);
Pablo Galindo835f14f2021-01-31 22:52:56 +000026934 _PyPegen_insert_memo(p, _start_mark, _loop1_136_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026935 D(p->level--);
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020026936 return _seq;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026937}
26938
Brandt Bucher145bf262021-02-26 14:51:55 -080026939// _tmp_137: !'*' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026940static void *
Pablo Galindo835f14f2021-01-31 22:52:56 +000026941_tmp_137_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026942{
26943 D(p->level++);
26944 if (p->error_indicator) {
26945 D(p->level--);
26946 return NULL;
26947 }
26948 void * _res = NULL;
26949 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026950 { // !'*' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026951 if (p->error_indicator) {
26952 D(p->level--);
26953 return NULL;
26954 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026955 D(fprintf(stderr, "%*c> _tmp_137[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "!'*' star_target"));
26956 expr_ty star_target_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026957 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080026958 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 16) // token='*'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026959 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080026960 (star_target_var = star_target_rule(p)) // star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026961 )
26962 {
Brandt Bucher145bf262021-02-26 14:51:55 -080026963 D(fprintf(stderr, "%*c+ _tmp_137[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "!'*' star_target"));
26964 _res = star_target_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026965 goto done;
26966 }
26967 p->mark = _mark;
Pablo Galindo835f14f2021-01-31 22:52:56 +000026968 D(fprintf(stderr, "%*c%s _tmp_137[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080026969 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "!'*' star_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026970 }
26971 _res = NULL;
26972 done:
26973 D(p->level--);
26974 return _res;
26975}
26976
Brandt Bucher145bf262021-02-26 14:51:55 -080026977// _loop0_139: ',' del_target
26978static asdl_seq *
26979_loop0_139_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026980{
26981 D(p->level++);
26982 if (p->error_indicator) {
26983 D(p->level--);
26984 return NULL;
26985 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026986 void *_res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026987 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026988 int _start_mark = p->mark;
26989 void **_children = PyMem_Malloc(sizeof(void *));
26990 if (!_children) {
26991 p->error_indicator = 1;
26992 PyErr_NoMemory();
26993 D(p->level--);
26994 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026995 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026996 Py_ssize_t _children_capacity = 1;
26997 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080026998 { // ',' del_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026999 if (p->error_indicator) {
27000 D(p->level--);
27001 return NULL;
27002 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027003 D(fprintf(stderr, "%*c> _loop0_139[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' del_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027004 Token * _literal;
Brandt Bucher145bf262021-02-26 14:51:55 -080027005 expr_ty elem;
27006 while (
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027007 (_literal = _PyPegen_expect_token(p, 12)) // token=','
27008 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080027009 (elem = del_target_rule(p)) // del_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027010 )
27011 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027012 _res = elem;
27013 if (_res == NULL && PyErr_Occurred()) {
27014 p->error_indicator = 1;
27015 PyMem_Free(_children);
27016 D(p->level--);
27017 return NULL;
27018 }
27019 if (_n == _children_capacity) {
27020 _children_capacity *= 2;
27021 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27022 if (!_new_children) {
27023 p->error_indicator = 1;
27024 PyErr_NoMemory();
27025 D(p->level--);
27026 return NULL;
27027 }
27028 _children = _new_children;
27029 }
27030 _children[_n++] = _res;
27031 _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027032 }
27033 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027034 D(fprintf(stderr, "%*c%s _loop0_139[%d-%d]: %s failed!\n", p->level, ' ',
27035 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' del_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027036 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027037 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
27038 if (!_seq) {
27039 PyMem_Free(_children);
27040 p->error_indicator = 1;
27041 PyErr_NoMemory();
27042 D(p->level--);
27043 return NULL;
27044 }
27045 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
27046 PyMem_Free(_children);
27047 _PyPegen_insert_memo(p, _start_mark, _loop0_139_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027048 D(p->level--);
Brandt Bucher145bf262021-02-26 14:51:55 -080027049 return _seq;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027050}
27051
Brandt Bucher145bf262021-02-26 14:51:55 -080027052// _gather_138: del_target _loop0_139
27053static asdl_seq *
27054_gather_138_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027055{
27056 D(p->level++);
27057 if (p->error_indicator) {
27058 D(p->level--);
27059 return NULL;
27060 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027061 asdl_seq * _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027062 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027063 { // del_target _loop0_139
Pablo Galindo58fb1562021-02-02 19:54:22 +000027064 if (p->error_indicator) {
27065 D(p->level--);
27066 return NULL;
27067 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027068 D(fprintf(stderr, "%*c> _gather_138[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "del_target _loop0_139"));
27069 expr_ty elem;
27070 asdl_seq * seq;
Pablo Galindo58fb1562021-02-02 19:54:22 +000027071 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080027072 (elem = del_target_rule(p)) // del_target
27073 &&
27074 (seq = _loop0_139_rule(p)) // _loop0_139
Pablo Galindo58fb1562021-02-02 19:54:22 +000027075 )
27076 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027077 D(fprintf(stderr, "%*c+ _gather_138[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "del_target _loop0_139"));
27078 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindo58fb1562021-02-02 19:54:22 +000027079 goto done;
27080 }
27081 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027082 D(fprintf(stderr, "%*c%s _gather_138[%d-%d]: %s failed!\n", p->level, ' ',
27083 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "del_target _loop0_139"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000027084 }
27085 _res = NULL;
27086 done:
27087 D(p->level--);
27088 return _res;
27089}
27090
Brandt Bucher145bf262021-02-26 14:51:55 -080027091// _loop0_141: ',' target
Pablo Galindo58fb1562021-02-02 19:54:22 +000027092static asdl_seq *
27093_loop0_141_rule(Parser *p)
27094{
27095 D(p->level++);
27096 if (p->error_indicator) {
27097 D(p->level--);
27098 return NULL;
27099 }
27100 void *_res = NULL;
27101 int _mark = p->mark;
27102 int _start_mark = p->mark;
27103 void **_children = PyMem_Malloc(sizeof(void *));
27104 if (!_children) {
27105 p->error_indicator = 1;
27106 PyErr_NoMemory();
27107 D(p->level--);
27108 return NULL;
27109 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027110 Py_ssize_t _children_capacity = 1;
27111 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080027112 { // ',' target
Pablo Galindo58fb1562021-02-02 19:54:22 +000027113 if (p->error_indicator) {
27114 D(p->level--);
27115 return NULL;
27116 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027117 D(fprintf(stderr, "%*c> _loop0_141[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' target"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000027118 Token * _literal;
Brandt Bucher145bf262021-02-26 14:51:55 -080027119 expr_ty elem;
Pablo Galindo58fb1562021-02-02 19:54:22 +000027120 while (
27121 (_literal = _PyPegen_expect_token(p, 12)) // token=','
27122 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080027123 (elem = target_rule(p)) // target
Pablo Galindo58fb1562021-02-02 19:54:22 +000027124 )
27125 {
27126 _res = elem;
27127 if (_res == NULL && PyErr_Occurred()) {
27128 p->error_indicator = 1;
27129 PyMem_Free(_children);
27130 D(p->level--);
27131 return NULL;
27132 }
27133 if (_n == _children_capacity) {
27134 _children_capacity *= 2;
27135 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27136 if (!_new_children) {
27137 p->error_indicator = 1;
27138 PyErr_NoMemory();
27139 D(p->level--);
27140 return NULL;
27141 }
27142 _children = _new_children;
27143 }
27144 _children[_n++] = _res;
27145 _mark = p->mark;
27146 }
27147 p->mark = _mark;
27148 D(fprintf(stderr, "%*c%s _loop0_141[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080027149 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' target"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000027150 }
27151 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
27152 if (!_seq) {
27153 PyMem_Free(_children);
27154 p->error_indicator = 1;
27155 PyErr_NoMemory();
27156 D(p->level--);
27157 return NULL;
27158 }
27159 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
27160 PyMem_Free(_children);
27161 _PyPegen_insert_memo(p, _start_mark, _loop0_141_type, _seq);
27162 D(p->level--);
27163 return _seq;
27164}
27165
Brandt Bucher145bf262021-02-26 14:51:55 -080027166// _gather_140: target _loop0_141
Pablo Galindo58fb1562021-02-02 19:54:22 +000027167static asdl_seq *
27168_gather_140_rule(Parser *p)
27169{
27170 D(p->level++);
27171 if (p->error_indicator) {
27172 D(p->level--);
27173 return NULL;
27174 }
27175 asdl_seq * _res = NULL;
27176 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027177 { // target _loop0_141
Pablo Galindo58fb1562021-02-02 19:54:22 +000027178 if (p->error_indicator) {
27179 D(p->level--);
27180 return NULL;
27181 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027182 D(fprintf(stderr, "%*c> _gather_140[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "target _loop0_141"));
27183 expr_ty elem;
Pablo Galindo58fb1562021-02-02 19:54:22 +000027184 asdl_seq * seq;
27185 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080027186 (elem = target_rule(p)) // target
Pablo Galindo58fb1562021-02-02 19:54:22 +000027187 &&
27188 (seq = _loop0_141_rule(p)) // _loop0_141
27189 )
27190 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027191 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 +000027192 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
27193 goto done;
27194 }
27195 p->mark = _mark;
27196 D(fprintf(stderr, "%*c%s _gather_140[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080027197 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "target _loop0_141"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000027198 }
27199 _res = NULL;
27200 done:
27201 D(p->level--);
27202 return _res;
27203}
27204
Brandt Bucher145bf262021-02-26 14:51:55 -080027205// _tmp_142: args | expression for_if_clauses
27206static void *
27207_tmp_142_rule(Parser *p)
27208{
27209 D(p->level++);
27210 if (p->error_indicator) {
27211 D(p->level--);
27212 return NULL;
27213 }
27214 void * _res = NULL;
27215 int _mark = p->mark;
27216 { // args
27217 if (p->error_indicator) {
27218 D(p->level--);
27219 return NULL;
27220 }
27221 D(fprintf(stderr, "%*c> _tmp_142[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args"));
27222 expr_ty args_var;
27223 if (
27224 (args_var = args_rule(p)) // args
27225 )
27226 {
27227 D(fprintf(stderr, "%*c+ _tmp_142[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args"));
27228 _res = args_var;
27229 goto done;
27230 }
27231 p->mark = _mark;
27232 D(fprintf(stderr, "%*c%s _tmp_142[%d-%d]: %s failed!\n", p->level, ' ',
27233 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args"));
27234 }
27235 { // expression for_if_clauses
27236 if (p->error_indicator) {
27237 D(p->level--);
27238 return NULL;
27239 }
27240 D(fprintf(stderr, "%*c> _tmp_142[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression for_if_clauses"));
27241 expr_ty expression_var;
27242 asdl_comprehension_seq* for_if_clauses_var;
27243 if (
27244 (expression_var = expression_rule(p)) // expression
27245 &&
27246 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
27247 )
27248 {
27249 D(fprintf(stderr, "%*c+ _tmp_142[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression for_if_clauses"));
27250 _res = _PyPegen_dummy_name(p, expression_var, for_if_clauses_var);
27251 goto done;
27252 }
27253 p->mark = _mark;
27254 D(fprintf(stderr, "%*c%s _tmp_142[%d-%d]: %s failed!\n", p->level, ' ',
27255 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression for_if_clauses"));
27256 }
27257 _res = NULL;
27258 done:
27259 D(p->level--);
27260 return _res;
27261}
27262
27263// _loop0_143: star_named_expressions
Pablo Galindo58fb1562021-02-02 19:54:22 +000027264static asdl_seq *
27265_loop0_143_rule(Parser *p)
27266{
27267 D(p->level++);
27268 if (p->error_indicator) {
27269 D(p->level--);
27270 return NULL;
27271 }
27272 void *_res = NULL;
27273 int _mark = p->mark;
27274 int _start_mark = p->mark;
27275 void **_children = PyMem_Malloc(sizeof(void *));
27276 if (!_children) {
27277 p->error_indicator = 1;
27278 PyErr_NoMemory();
27279 D(p->level--);
27280 return NULL;
27281 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027282 Py_ssize_t _children_capacity = 1;
27283 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080027284 { // star_named_expressions
Pablo Galindo58fb1562021-02-02 19:54:22 +000027285 if (p->error_indicator) {
27286 D(p->level--);
27287 return NULL;
27288 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027289 D(fprintf(stderr, "%*c> _loop0_143[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_named_expressions"));
27290 asdl_expr_seq* star_named_expressions_var;
27291 while (
27292 (star_named_expressions_var = star_named_expressions_rule(p)) // star_named_expressions
27293 )
27294 {
27295 _res = star_named_expressions_var;
27296 if (_n == _children_capacity) {
27297 _children_capacity *= 2;
27298 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27299 if (!_new_children) {
27300 p->error_indicator = 1;
27301 PyErr_NoMemory();
27302 D(p->level--);
27303 return NULL;
27304 }
27305 _children = _new_children;
27306 }
27307 _children[_n++] = _res;
27308 _mark = p->mark;
27309 }
27310 p->mark = _mark;
27311 D(fprintf(stderr, "%*c%s _loop0_143[%d-%d]: %s failed!\n", p->level, ' ',
27312 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expressions"));
27313 }
27314 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
27315 if (!_seq) {
27316 PyMem_Free(_children);
27317 p->error_indicator = 1;
27318 PyErr_NoMemory();
27319 D(p->level--);
27320 return NULL;
27321 }
27322 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
27323 PyMem_Free(_children);
27324 _PyPegen_insert_memo(p, _start_mark, _loop0_143_type, _seq);
27325 D(p->level--);
27326 return _seq;
27327}
27328
27329// _loop0_144: (star_targets '=')
27330static asdl_seq *
27331_loop0_144_rule(Parser *p)
27332{
27333 D(p->level++);
27334 if (p->error_indicator) {
27335 D(p->level--);
27336 return NULL;
27337 }
27338 void *_res = NULL;
27339 int _mark = p->mark;
27340 int _start_mark = p->mark;
27341 void **_children = PyMem_Malloc(sizeof(void *));
27342 if (!_children) {
27343 p->error_indicator = 1;
27344 PyErr_NoMemory();
27345 D(p->level--);
27346 return NULL;
27347 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027348 Py_ssize_t _children_capacity = 1;
27349 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080027350 { // (star_targets '=')
27351 if (p->error_indicator) {
27352 D(p->level--);
27353 return NULL;
27354 }
27355 D(fprintf(stderr, "%*c> _loop0_144[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')"));
27356 void *_tmp_175_var;
27357 while (
27358 (_tmp_175_var = _tmp_175_rule(p)) // star_targets '='
27359 )
27360 {
27361 _res = _tmp_175_var;
27362 if (_n == _children_capacity) {
27363 _children_capacity *= 2;
27364 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27365 if (!_new_children) {
27366 p->error_indicator = 1;
27367 PyErr_NoMemory();
27368 D(p->level--);
27369 return NULL;
27370 }
27371 _children = _new_children;
27372 }
27373 _children[_n++] = _res;
27374 _mark = p->mark;
27375 }
27376 p->mark = _mark;
27377 D(fprintf(stderr, "%*c%s _loop0_144[%d-%d]: %s failed!\n", p->level, ' ',
27378 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(star_targets '=')"));
27379 }
27380 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
27381 if (!_seq) {
27382 PyMem_Free(_children);
27383 p->error_indicator = 1;
27384 PyErr_NoMemory();
27385 D(p->level--);
27386 return NULL;
27387 }
27388 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
27389 PyMem_Free(_children);
27390 _PyPegen_insert_memo(p, _start_mark, _loop0_144_type, _seq);
27391 D(p->level--);
27392 return _seq;
27393}
27394
27395// _loop0_145: (star_targets '=')
27396static asdl_seq *
27397_loop0_145_rule(Parser *p)
27398{
27399 D(p->level++);
27400 if (p->error_indicator) {
27401 D(p->level--);
27402 return NULL;
27403 }
27404 void *_res = NULL;
27405 int _mark = p->mark;
27406 int _start_mark = p->mark;
27407 void **_children = PyMem_Malloc(sizeof(void *));
27408 if (!_children) {
27409 p->error_indicator = 1;
27410 PyErr_NoMemory();
27411 D(p->level--);
27412 return NULL;
27413 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027414 Py_ssize_t _children_capacity = 1;
27415 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080027416 { // (star_targets '=')
27417 if (p->error_indicator) {
27418 D(p->level--);
27419 return NULL;
27420 }
27421 D(fprintf(stderr, "%*c> _loop0_145[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')"));
27422 void *_tmp_176_var;
27423 while (
27424 (_tmp_176_var = _tmp_176_rule(p)) // star_targets '='
27425 )
27426 {
27427 _res = _tmp_176_var;
27428 if (_n == _children_capacity) {
27429 _children_capacity *= 2;
27430 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27431 if (!_new_children) {
27432 p->error_indicator = 1;
27433 PyErr_NoMemory();
27434 D(p->level--);
27435 return NULL;
27436 }
27437 _children = _new_children;
27438 }
27439 _children[_n++] = _res;
27440 _mark = p->mark;
27441 }
27442 p->mark = _mark;
27443 D(fprintf(stderr, "%*c%s _loop0_145[%d-%d]: %s failed!\n", p->level, ' ',
27444 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(star_targets '=')"));
27445 }
27446 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
27447 if (!_seq) {
27448 PyMem_Free(_children);
27449 p->error_indicator = 1;
27450 PyErr_NoMemory();
27451 D(p->level--);
27452 return NULL;
27453 }
27454 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
27455 PyMem_Free(_children);
27456 _PyPegen_insert_memo(p, _start_mark, _loop0_145_type, _seq);
27457 D(p->level--);
27458 return _seq;
27459}
27460
27461// _tmp_146: yield_expr | star_expressions
27462static void *
27463_tmp_146_rule(Parser *p)
27464{
27465 D(p->level++);
27466 if (p->error_indicator) {
27467 D(p->level--);
27468 return NULL;
27469 }
27470 void * _res = NULL;
27471 int _mark = p->mark;
27472 { // yield_expr
27473 if (p->error_indicator) {
27474 D(p->level--);
27475 return NULL;
27476 }
27477 D(fprintf(stderr, "%*c> _tmp_146[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
27478 expr_ty yield_expr_var;
27479 if (
27480 (yield_expr_var = yield_expr_rule(p)) // yield_expr
27481 )
27482 {
27483 D(fprintf(stderr, "%*c+ _tmp_146[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
27484 _res = yield_expr_var;
27485 goto done;
27486 }
27487 p->mark = _mark;
27488 D(fprintf(stderr, "%*c%s _tmp_146[%d-%d]: %s failed!\n", p->level, ' ',
27489 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
27490 }
27491 { // star_expressions
27492 if (p->error_indicator) {
27493 D(p->level--);
27494 return NULL;
27495 }
27496 D(fprintf(stderr, "%*c> _tmp_146[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
27497 expr_ty star_expressions_var;
27498 if (
27499 (star_expressions_var = star_expressions_rule(p)) // star_expressions
27500 )
27501 {
27502 D(fprintf(stderr, "%*c+ _tmp_146[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
27503 _res = star_expressions_var;
27504 goto done;
27505 }
27506 p->mark = _mark;
27507 D(fprintf(stderr, "%*c%s _tmp_146[%d-%d]: %s failed!\n", p->level, ' ',
27508 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
27509 }
27510 _res = NULL;
27511 done:
27512 D(p->level--);
27513 return _res;
27514}
27515
27516// _tmp_147: '[' | '(' | '{'
27517static void *
27518_tmp_147_rule(Parser *p)
27519{
27520 D(p->level++);
27521 if (p->error_indicator) {
27522 D(p->level--);
27523 return NULL;
27524 }
27525 void * _res = NULL;
27526 int _mark = p->mark;
27527 { // '['
27528 if (p->error_indicator) {
27529 D(p->level--);
27530 return NULL;
27531 }
27532 D(fprintf(stderr, "%*c> _tmp_147[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['"));
27533 Token * _literal;
27534 if (
27535 (_literal = _PyPegen_expect_token(p, 9)) // token='['
27536 )
27537 {
27538 D(fprintf(stderr, "%*c+ _tmp_147[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['"));
27539 _res = _literal;
27540 goto done;
27541 }
27542 p->mark = _mark;
27543 D(fprintf(stderr, "%*c%s _tmp_147[%d-%d]: %s failed!\n", p->level, ' ',
27544 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['"));
27545 }
27546 { // '('
27547 if (p->error_indicator) {
27548 D(p->level--);
27549 return NULL;
27550 }
27551 D(fprintf(stderr, "%*c> _tmp_147[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('"));
27552 Token * _literal;
27553 if (
27554 (_literal = _PyPegen_expect_token(p, 7)) // token='('
27555 )
27556 {
27557 D(fprintf(stderr, "%*c+ _tmp_147[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('"));
27558 _res = _literal;
27559 goto done;
27560 }
27561 p->mark = _mark;
27562 D(fprintf(stderr, "%*c%s _tmp_147[%d-%d]: %s failed!\n", p->level, ' ',
27563 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('"));
27564 }
27565 { // '{'
27566 if (p->error_indicator) {
27567 D(p->level--);
27568 return NULL;
27569 }
27570 D(fprintf(stderr, "%*c> _tmp_147[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{'"));
27571 Token * _literal;
27572 if (
27573 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
27574 )
27575 {
27576 D(fprintf(stderr, "%*c+ _tmp_147[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{'"));
27577 _res = _literal;
27578 goto done;
27579 }
27580 p->mark = _mark;
27581 D(fprintf(stderr, "%*c%s _tmp_147[%d-%d]: %s failed!\n", p->level, ' ',
27582 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{'"));
27583 }
27584 _res = NULL;
27585 done:
27586 D(p->level--);
27587 return _res;
27588}
27589
27590// _tmp_148: '[' | '{'
27591static void *
27592_tmp_148_rule(Parser *p)
27593{
27594 D(p->level++);
27595 if (p->error_indicator) {
27596 D(p->level--);
27597 return NULL;
27598 }
27599 void * _res = NULL;
27600 int _mark = p->mark;
27601 { // '['
27602 if (p->error_indicator) {
27603 D(p->level--);
27604 return NULL;
27605 }
27606 D(fprintf(stderr, "%*c> _tmp_148[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['"));
27607 Token * _literal;
27608 if (
27609 (_literal = _PyPegen_expect_token(p, 9)) // token='['
27610 )
27611 {
27612 D(fprintf(stderr, "%*c+ _tmp_148[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['"));
27613 _res = _literal;
27614 goto done;
27615 }
27616 p->mark = _mark;
27617 D(fprintf(stderr, "%*c%s _tmp_148[%d-%d]: %s failed!\n", p->level, ' ',
27618 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['"));
27619 }
27620 { // '{'
27621 if (p->error_indicator) {
27622 D(p->level--);
27623 return NULL;
27624 }
27625 D(fprintf(stderr, "%*c> _tmp_148[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{'"));
27626 Token * _literal;
27627 if (
27628 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
27629 )
27630 {
27631 D(fprintf(stderr, "%*c+ _tmp_148[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{'"));
27632 _res = _literal;
27633 goto done;
27634 }
27635 p->mark = _mark;
27636 D(fprintf(stderr, "%*c%s _tmp_148[%d-%d]: %s failed!\n", p->level, ' ',
27637 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{'"));
27638 }
27639 _res = NULL;
27640 done:
27641 D(p->level--);
27642 return _res;
27643}
27644
27645// _loop0_149: param_no_default
27646static asdl_seq *
27647_loop0_149_rule(Parser *p)
27648{
27649 D(p->level++);
27650 if (p->error_indicator) {
27651 D(p->level--);
27652 return NULL;
27653 }
27654 void *_res = NULL;
27655 int _mark = p->mark;
27656 int _start_mark = p->mark;
27657 void **_children = PyMem_Malloc(sizeof(void *));
27658 if (!_children) {
27659 p->error_indicator = 1;
27660 PyErr_NoMemory();
27661 D(p->level--);
27662 return NULL;
27663 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027664 Py_ssize_t _children_capacity = 1;
27665 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080027666 { // param_no_default
27667 if (p->error_indicator) {
27668 D(p->level--);
27669 return NULL;
27670 }
27671 D(fprintf(stderr, "%*c> _loop0_149[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default"));
27672 arg_ty param_no_default_var;
27673 while (
27674 (param_no_default_var = param_no_default_rule(p)) // param_no_default
27675 )
27676 {
27677 _res = param_no_default_var;
27678 if (_n == _children_capacity) {
27679 _children_capacity *= 2;
27680 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27681 if (!_new_children) {
27682 p->error_indicator = 1;
27683 PyErr_NoMemory();
27684 D(p->level--);
27685 return NULL;
27686 }
27687 _children = _new_children;
27688 }
27689 _children[_n++] = _res;
27690 _mark = p->mark;
27691 }
27692 p->mark = _mark;
27693 D(fprintf(stderr, "%*c%s _loop0_149[%d-%d]: %s failed!\n", p->level, ' ',
27694 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
27695 }
27696 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
27697 if (!_seq) {
27698 PyMem_Free(_children);
27699 p->error_indicator = 1;
27700 PyErr_NoMemory();
27701 D(p->level--);
27702 return NULL;
27703 }
27704 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
27705 PyMem_Free(_children);
27706 _PyPegen_insert_memo(p, _start_mark, _loop0_149_type, _seq);
27707 D(p->level--);
27708 return _seq;
27709}
27710
27711// _loop1_150: param_with_default
27712static asdl_seq *
27713_loop1_150_rule(Parser *p)
27714{
27715 D(p->level++);
27716 if (p->error_indicator) {
27717 D(p->level--);
27718 return NULL;
27719 }
27720 void *_res = NULL;
27721 int _mark = p->mark;
27722 int _start_mark = p->mark;
27723 void **_children = PyMem_Malloc(sizeof(void *));
27724 if (!_children) {
27725 p->error_indicator = 1;
27726 PyErr_NoMemory();
27727 D(p->level--);
27728 return NULL;
27729 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027730 Py_ssize_t _children_capacity = 1;
27731 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080027732 { // param_with_default
27733 if (p->error_indicator) {
27734 D(p->level--);
27735 return NULL;
27736 }
27737 D(fprintf(stderr, "%*c> _loop1_150[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default"));
27738 NameDefaultPair* param_with_default_var;
27739 while (
27740 (param_with_default_var = param_with_default_rule(p)) // param_with_default
27741 )
27742 {
27743 _res = param_with_default_var;
27744 if (_n == _children_capacity) {
27745 _children_capacity *= 2;
27746 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27747 if (!_new_children) {
27748 p->error_indicator = 1;
27749 PyErr_NoMemory();
27750 D(p->level--);
27751 return NULL;
27752 }
27753 _children = _new_children;
27754 }
27755 _children[_n++] = _res;
27756 _mark = p->mark;
27757 }
27758 p->mark = _mark;
27759 D(fprintf(stderr, "%*c%s _loop1_150[%d-%d]: %s failed!\n", p->level, ' ',
27760 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
27761 }
27762 if (_n == 0 || p->error_indicator) {
27763 PyMem_Free(_children);
27764 D(p->level--);
27765 return NULL;
27766 }
27767 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
27768 if (!_seq) {
27769 PyMem_Free(_children);
27770 p->error_indicator = 1;
27771 PyErr_NoMemory();
27772 D(p->level--);
27773 return NULL;
27774 }
27775 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
27776 PyMem_Free(_children);
27777 _PyPegen_insert_memo(p, _start_mark, _loop1_150_type, _seq);
27778 D(p->level--);
27779 return _seq;
27780}
27781
27782// _loop0_151: lambda_param_no_default
27783static asdl_seq *
27784_loop0_151_rule(Parser *p)
27785{
27786 D(p->level++);
27787 if (p->error_indicator) {
27788 D(p->level--);
27789 return NULL;
27790 }
27791 void *_res = NULL;
27792 int _mark = p->mark;
27793 int _start_mark = p->mark;
27794 void **_children = PyMem_Malloc(sizeof(void *));
27795 if (!_children) {
27796 p->error_indicator = 1;
27797 PyErr_NoMemory();
27798 D(p->level--);
27799 return NULL;
27800 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027801 Py_ssize_t _children_capacity = 1;
27802 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080027803 { // lambda_param_no_default
27804 if (p->error_indicator) {
27805 D(p->level--);
27806 return NULL;
27807 }
27808 D(fprintf(stderr, "%*c> _loop0_151[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
27809 arg_ty lambda_param_no_default_var;
27810 while (
27811 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
27812 )
27813 {
27814 _res = lambda_param_no_default_var;
27815 if (_n == _children_capacity) {
27816 _children_capacity *= 2;
27817 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27818 if (!_new_children) {
27819 p->error_indicator = 1;
27820 PyErr_NoMemory();
27821 D(p->level--);
27822 return NULL;
27823 }
27824 _children = _new_children;
27825 }
27826 _children[_n++] = _res;
27827 _mark = p->mark;
27828 }
27829 p->mark = _mark;
27830 D(fprintf(stderr, "%*c%s _loop0_151[%d-%d]: %s failed!\n", p->level, ' ',
27831 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
27832 }
27833 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
27834 if (!_seq) {
27835 PyMem_Free(_children);
27836 p->error_indicator = 1;
27837 PyErr_NoMemory();
27838 D(p->level--);
27839 return NULL;
27840 }
27841 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
27842 PyMem_Free(_children);
27843 _PyPegen_insert_memo(p, _start_mark, _loop0_151_type, _seq);
27844 D(p->level--);
27845 return _seq;
27846}
27847
27848// _loop1_152: lambda_param_with_default
27849static asdl_seq *
27850_loop1_152_rule(Parser *p)
27851{
27852 D(p->level++);
27853 if (p->error_indicator) {
27854 D(p->level--);
27855 return NULL;
27856 }
27857 void *_res = NULL;
27858 int _mark = p->mark;
27859 int _start_mark = p->mark;
27860 void **_children = PyMem_Malloc(sizeof(void *));
27861 if (!_children) {
27862 p->error_indicator = 1;
27863 PyErr_NoMemory();
27864 D(p->level--);
27865 return NULL;
27866 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027867 Py_ssize_t _children_capacity = 1;
27868 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080027869 { // lambda_param_with_default
27870 if (p->error_indicator) {
27871 D(p->level--);
27872 return NULL;
27873 }
27874 D(fprintf(stderr, "%*c> _loop1_152[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default"));
27875 NameDefaultPair* lambda_param_with_default_var;
27876 while (
27877 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
27878 )
27879 {
27880 _res = lambda_param_with_default_var;
27881 if (_n == _children_capacity) {
27882 _children_capacity *= 2;
27883 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27884 if (!_new_children) {
27885 p->error_indicator = 1;
27886 PyErr_NoMemory();
27887 D(p->level--);
27888 return NULL;
27889 }
27890 _children = _new_children;
27891 }
27892 _children[_n++] = _res;
27893 _mark = p->mark;
27894 }
27895 p->mark = _mark;
27896 D(fprintf(stderr, "%*c%s _loop1_152[%d-%d]: %s failed!\n", p->level, ' ',
27897 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
27898 }
27899 if (_n == 0 || p->error_indicator) {
27900 PyMem_Free(_children);
27901 D(p->level--);
27902 return NULL;
27903 }
27904 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
27905 if (!_seq) {
27906 PyMem_Free(_children);
27907 p->error_indicator = 1;
27908 PyErr_NoMemory();
27909 D(p->level--);
27910 return NULL;
27911 }
27912 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
27913 PyMem_Free(_children);
27914 _PyPegen_insert_memo(p, _start_mark, _loop1_152_type, _seq);
27915 D(p->level--);
27916 return _seq;
27917}
27918
27919// _tmp_153: ')' | ',' (')' | '**')
27920static void *
27921_tmp_153_rule(Parser *p)
27922{
27923 D(p->level++);
27924 if (p->error_indicator) {
27925 D(p->level--);
27926 return NULL;
27927 }
27928 void * _res = NULL;
27929 int _mark = p->mark;
27930 { // ')'
27931 if (p->error_indicator) {
27932 D(p->level--);
27933 return NULL;
27934 }
27935 D(fprintf(stderr, "%*c> _tmp_153[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
27936 Token * _literal;
27937 if (
27938 (_literal = _PyPegen_expect_token(p, 8)) // token=')'
27939 )
27940 {
27941 D(fprintf(stderr, "%*c+ _tmp_153[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
27942 _res = _literal;
27943 goto done;
27944 }
27945 p->mark = _mark;
27946 D(fprintf(stderr, "%*c%s _tmp_153[%d-%d]: %s failed!\n", p->level, ' ',
27947 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
27948 }
27949 { // ',' (')' | '**')
27950 if (p->error_indicator) {
27951 D(p->level--);
27952 return NULL;
27953 }
27954 D(fprintf(stderr, "%*c> _tmp_153[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (')' | '**')"));
27955 Token * _literal;
27956 void *_tmp_177_var;
27957 if (
27958 (_literal = _PyPegen_expect_token(p, 12)) // token=','
27959 &&
27960 (_tmp_177_var = _tmp_177_rule(p)) // ')' | '**'
27961 )
27962 {
27963 D(fprintf(stderr, "%*c+ _tmp_153[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' (')' | '**')"));
27964 _res = _PyPegen_dummy_name(p, _literal, _tmp_177_var);
27965 goto done;
27966 }
27967 p->mark = _mark;
27968 D(fprintf(stderr, "%*c%s _tmp_153[%d-%d]: %s failed!\n", p->level, ' ',
27969 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (')' | '**')"));
27970 }
27971 _res = NULL;
27972 done:
27973 D(p->level--);
27974 return _res;
27975}
27976
27977// _tmp_154: ':' | ',' (':' | '**')
27978static void *
27979_tmp_154_rule(Parser *p)
27980{
27981 D(p->level++);
27982 if (p->error_indicator) {
27983 D(p->level--);
27984 return NULL;
27985 }
27986 void * _res = NULL;
27987 int _mark = p->mark;
27988 { // ':'
27989 if (p->error_indicator) {
27990 D(p->level--);
27991 return NULL;
27992 }
27993 D(fprintf(stderr, "%*c> _tmp_154[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
27994 Token * _literal;
27995 if (
27996 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
27997 )
27998 {
27999 D(fprintf(stderr, "%*c+ _tmp_154[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
28000 _res = _literal;
28001 goto done;
28002 }
28003 p->mark = _mark;
28004 D(fprintf(stderr, "%*c%s _tmp_154[%d-%d]: %s failed!\n", p->level, ' ',
28005 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
28006 }
28007 { // ',' (':' | '**')
28008 if (p->error_indicator) {
28009 D(p->level--);
28010 return NULL;
28011 }
28012 D(fprintf(stderr, "%*c> _tmp_154[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (':' | '**')"));
28013 Token * _literal;
28014 void *_tmp_178_var;
28015 if (
28016 (_literal = _PyPegen_expect_token(p, 12)) // token=','
28017 &&
28018 (_tmp_178_var = _tmp_178_rule(p)) // ':' | '**'
28019 )
28020 {
28021 D(fprintf(stderr, "%*c+ _tmp_154[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' (':' | '**')"));
28022 _res = _PyPegen_dummy_name(p, _literal, _tmp_178_var);
28023 goto done;
28024 }
28025 p->mark = _mark;
28026 D(fprintf(stderr, "%*c%s _tmp_154[%d-%d]: %s failed!\n", p->level, ' ',
28027 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (':' | '**')"));
28028 }
28029 _res = NULL;
28030 done:
28031 D(p->level--);
28032 return _res;
28033}
28034
28035// _tmp_155: ',' | ')' | ':'
28036static void *
28037_tmp_155_rule(Parser *p)
28038{
28039 D(p->level++);
28040 if (p->error_indicator) {
28041 D(p->level--);
28042 return NULL;
28043 }
28044 void * _res = NULL;
28045 int _mark = p->mark;
28046 { // ','
28047 if (p->error_indicator) {
28048 D(p->level--);
28049 return NULL;
28050 }
28051 D(fprintf(stderr, "%*c> _tmp_155[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','"));
28052 Token * _literal;
28053 if (
28054 (_literal = _PyPegen_expect_token(p, 12)) // token=','
28055 )
28056 {
28057 D(fprintf(stderr, "%*c+ _tmp_155[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','"));
28058 _res = _literal;
28059 goto done;
28060 }
28061 p->mark = _mark;
28062 D(fprintf(stderr, "%*c%s _tmp_155[%d-%d]: %s failed!\n", p->level, ' ',
28063 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','"));
28064 }
28065 { // ')'
28066 if (p->error_indicator) {
28067 D(p->level--);
28068 return NULL;
28069 }
28070 D(fprintf(stderr, "%*c> _tmp_155[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
28071 Token * _literal;
28072 if (
28073 (_literal = _PyPegen_expect_token(p, 8)) // token=')'
28074 )
28075 {
28076 D(fprintf(stderr, "%*c+ _tmp_155[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
28077 _res = _literal;
28078 goto done;
28079 }
28080 p->mark = _mark;
28081 D(fprintf(stderr, "%*c%s _tmp_155[%d-%d]: %s failed!\n", p->level, ' ',
28082 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
28083 }
28084 { // ':'
28085 if (p->error_indicator) {
28086 D(p->level--);
28087 return NULL;
28088 }
28089 D(fprintf(stderr, "%*c> _tmp_155[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
28090 Token * _literal;
28091 if (
28092 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
28093 )
28094 {
28095 D(fprintf(stderr, "%*c+ _tmp_155[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
28096 _res = _literal;
28097 goto done;
28098 }
28099 p->mark = _mark;
28100 D(fprintf(stderr, "%*c%s _tmp_155[%d-%d]: %s failed!\n", p->level, ' ',
28101 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
28102 }
28103 _res = NULL;
28104 done:
28105 D(p->level--);
28106 return _res;
28107}
28108
28109// _loop0_157: ',' (expression ['as' star_target])
28110static asdl_seq *
28111_loop0_157_rule(Parser *p)
28112{
28113 D(p->level++);
28114 if (p->error_indicator) {
28115 D(p->level--);
28116 return NULL;
28117 }
28118 void *_res = NULL;
28119 int _mark = p->mark;
28120 int _start_mark = p->mark;
28121 void **_children = PyMem_Malloc(sizeof(void *));
28122 if (!_children) {
28123 p->error_indicator = 1;
28124 PyErr_NoMemory();
28125 D(p->level--);
28126 return NULL;
28127 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028128 Py_ssize_t _children_capacity = 1;
28129 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080028130 { // ',' (expression ['as' star_target])
28131 if (p->error_indicator) {
28132 D(p->level--);
28133 return NULL;
28134 }
28135 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 +000028136 Token * _literal;
28137 void *elem;
28138 while (
28139 (_literal = _PyPegen_expect_token(p, 12)) // token=','
28140 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080028141 (elem = _tmp_179_rule(p)) // expression ['as' star_target]
Pablo Galindo58fb1562021-02-02 19:54:22 +000028142 )
28143 {
28144 _res = elem;
28145 if (_res == NULL && PyErr_Occurred()) {
28146 p->error_indicator = 1;
28147 PyMem_Free(_children);
28148 D(p->level--);
28149 return NULL;
28150 }
28151 if (_n == _children_capacity) {
28152 _children_capacity *= 2;
28153 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28154 if (!_new_children) {
28155 p->error_indicator = 1;
28156 PyErr_NoMemory();
28157 D(p->level--);
28158 return NULL;
28159 }
28160 _children = _new_children;
28161 }
28162 _children[_n++] = _res;
28163 _mark = p->mark;
28164 }
28165 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028166 D(fprintf(stderr, "%*c%s _loop0_157[%d-%d]: %s failed!\n", p->level, ' ',
28167 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (expression ['as' star_target])"));
28168 }
28169 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
28170 if (!_seq) {
28171 PyMem_Free(_children);
28172 p->error_indicator = 1;
28173 PyErr_NoMemory();
28174 D(p->level--);
28175 return NULL;
28176 }
28177 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
28178 PyMem_Free(_children);
28179 _PyPegen_insert_memo(p, _start_mark, _loop0_157_type, _seq);
28180 D(p->level--);
28181 return _seq;
28182}
28183
28184// _gather_156: (expression ['as' star_target]) _loop0_157
28185static asdl_seq *
28186_gather_156_rule(Parser *p)
28187{
28188 D(p->level++);
28189 if (p->error_indicator) {
28190 D(p->level--);
28191 return NULL;
28192 }
28193 asdl_seq * _res = NULL;
28194 int _mark = p->mark;
28195 { // (expression ['as' star_target]) _loop0_157
28196 if (p->error_indicator) {
28197 D(p->level--);
28198 return NULL;
28199 }
28200 D(fprintf(stderr, "%*c> _gather_156[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(expression ['as' star_target]) _loop0_157"));
28201 void *elem;
28202 asdl_seq * seq;
28203 if (
28204 (elem = _tmp_179_rule(p)) // expression ['as' star_target]
28205 &&
28206 (seq = _loop0_157_rule(p)) // _loop0_157
28207 )
28208 {
28209 D(fprintf(stderr, "%*c+ _gather_156[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(expression ['as' star_target]) _loop0_157"));
28210 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
28211 goto done;
28212 }
28213 p->mark = _mark;
28214 D(fprintf(stderr, "%*c%s _gather_156[%d-%d]: %s failed!\n", p->level, ' ',
28215 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expression ['as' star_target]) _loop0_157"));
28216 }
28217 _res = NULL;
28218 done:
28219 D(p->level--);
28220 return _res;
28221}
28222
28223// _loop0_159: ',' (expressions ['as' star_target])
28224static asdl_seq *
28225_loop0_159_rule(Parser *p)
28226{
28227 D(p->level++);
28228 if (p->error_indicator) {
28229 D(p->level--);
28230 return NULL;
28231 }
28232 void *_res = NULL;
28233 int _mark = p->mark;
28234 int _start_mark = p->mark;
28235 void **_children = PyMem_Malloc(sizeof(void *));
28236 if (!_children) {
28237 p->error_indicator = 1;
28238 PyErr_NoMemory();
28239 D(p->level--);
28240 return NULL;
28241 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028242 Py_ssize_t _children_capacity = 1;
28243 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080028244 { // ',' (expressions ['as' star_target])
28245 if (p->error_indicator) {
28246 D(p->level--);
28247 return NULL;
28248 }
28249 D(fprintf(stderr, "%*c> _loop0_159[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (expressions ['as' star_target])"));
28250 Token * _literal;
28251 void *elem;
28252 while (
28253 (_literal = _PyPegen_expect_token(p, 12)) // token=','
28254 &&
28255 (elem = _tmp_180_rule(p)) // expressions ['as' star_target]
28256 )
28257 {
28258 _res = elem;
28259 if (_res == NULL && PyErr_Occurred()) {
28260 p->error_indicator = 1;
28261 PyMem_Free(_children);
28262 D(p->level--);
28263 return NULL;
28264 }
28265 if (_n == _children_capacity) {
28266 _children_capacity *= 2;
28267 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28268 if (!_new_children) {
28269 p->error_indicator = 1;
28270 PyErr_NoMemory();
28271 D(p->level--);
28272 return NULL;
28273 }
28274 _children = _new_children;
28275 }
28276 _children[_n++] = _res;
28277 _mark = p->mark;
28278 }
28279 p->mark = _mark;
28280 D(fprintf(stderr, "%*c%s _loop0_159[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +000028281 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (expressions ['as' star_target])"));
28282 }
28283 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
28284 if (!_seq) {
28285 PyMem_Free(_children);
28286 p->error_indicator = 1;
28287 PyErr_NoMemory();
28288 D(p->level--);
28289 return NULL;
28290 }
28291 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
28292 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080028293 _PyPegen_insert_memo(p, _start_mark, _loop0_159_type, _seq);
Pablo Galindo58fb1562021-02-02 19:54:22 +000028294 D(p->level--);
28295 return _seq;
28296}
28297
Brandt Bucher145bf262021-02-26 14:51:55 -080028298// _gather_158: (expressions ['as' star_target]) _loop0_159
Pablo Galindo58fb1562021-02-02 19:54:22 +000028299static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080028300_gather_158_rule(Parser *p)
Pablo Galindo58fb1562021-02-02 19:54:22 +000028301{
28302 D(p->level++);
28303 if (p->error_indicator) {
28304 D(p->level--);
28305 return NULL;
28306 }
28307 asdl_seq * _res = NULL;
28308 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028309 { // (expressions ['as' star_target]) _loop0_159
Pablo Galindo58fb1562021-02-02 19:54:22 +000028310 if (p->error_indicator) {
28311 D(p->level--);
28312 return NULL;
28313 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028314 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 +000028315 void *elem;
28316 asdl_seq * seq;
28317 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080028318 (elem = _tmp_180_rule(p)) // expressions ['as' star_target]
Pablo Galindo58fb1562021-02-02 19:54:22 +000028319 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080028320 (seq = _loop0_159_rule(p)) // _loop0_159
Pablo Galindo58fb1562021-02-02 19:54:22 +000028321 )
28322 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028323 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 +000028324 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
28325 goto done;
28326 }
28327 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028328 D(fprintf(stderr, "%*c%s _gather_158[%d-%d]: %s failed!\n", p->level, ' ',
28329 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expressions ['as' star_target]) _loop0_159"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000028330 }
28331 _res = NULL;
28332 done:
28333 D(p->level--);
28334 return _res;
28335}
28336
Brandt Bucher145bf262021-02-26 14:51:55 -080028337// _tmp_160: 'as' NAME
Pablo Galindo58fb1562021-02-02 19:54:22 +000028338static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080028339_tmp_160_rule(Parser *p)
Pablo Galindo58fb1562021-02-02 19:54:22 +000028340{
28341 D(p->level++);
28342 if (p->error_indicator) {
28343 D(p->level--);
28344 return NULL;
28345 }
28346 void * _res = NULL;
28347 int _mark = p->mark;
Pablo Galindo206cbda2021-02-07 18:42:21 +000028348 { // 'as' NAME
28349 if (p->error_indicator) {
28350 D(p->level--);
28351 return NULL;
28352 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028353 D(fprintf(stderr, "%*c> _tmp_160[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000028354 Token * _keyword;
28355 expr_ty name_var;
28356 if (
28357 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
28358 &&
28359 (name_var = _PyPegen_name_token(p)) // NAME
28360 )
28361 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028362 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 +000028363 _res = _PyPegen_dummy_name(p, _keyword, name_var);
28364 goto done;
28365 }
28366 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028367 D(fprintf(stderr, "%*c%s _tmp_160[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo206cbda2021-02-07 18:42:21 +000028368 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
28369 }
28370 _res = NULL;
28371 done:
28372 D(p->level--);
28373 return _res;
28374}
28375
Brandt Bucher145bf262021-02-26 14:51:55 -080028376// _tmp_161: 'as' NAME
Pablo Galindo206cbda2021-02-07 18:42:21 +000028377static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080028378_tmp_161_rule(Parser *p)
Pablo Galindo206cbda2021-02-07 18:42:21 +000028379{
28380 D(p->level++);
28381 if (p->error_indicator) {
28382 D(p->level--);
28383 return NULL;
28384 }
28385 void * _res = NULL;
28386 int _mark = p->mark;
28387 { // 'as' NAME
28388 if (p->error_indicator) {
28389 D(p->level--);
28390 return NULL;
28391 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028392 D(fprintf(stderr, "%*c> _tmp_161[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000028393 Token * _keyword;
28394 expr_ty name_var;
28395 if (
28396 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
28397 &&
28398 (name_var = _PyPegen_name_token(p)) // NAME
28399 )
28400 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028401 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 +000028402 _res = _PyPegen_dummy_name(p, _keyword, name_var);
28403 goto done;
28404 }
28405 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028406 D(fprintf(stderr, "%*c%s _tmp_161[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo206cbda2021-02-07 18:42:21 +000028407 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
28408 }
28409 _res = NULL;
28410 done:
28411 D(p->level--);
28412 return _res;
28413}
28414
Brandt Bucher145bf262021-02-26 14:51:55 -080028415// _tmp_162: star_targets '='
Pablo Galindo206cbda2021-02-07 18:42:21 +000028416static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080028417_tmp_162_rule(Parser *p)
Pablo Galindo206cbda2021-02-07 18:42:21 +000028418{
28419 D(p->level++);
28420 if (p->error_indicator) {
28421 D(p->level--);
28422 return NULL;
28423 }
28424 void * _res = NULL;
28425 int _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028426 { // star_targets '='
28427 if (p->error_indicator) {
28428 D(p->level--);
28429 return NULL;
28430 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028431 D(fprintf(stderr, "%*c> _tmp_162[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028432 Token * _literal;
28433 expr_ty z;
28434 if (
28435 (z = star_targets_rule(p)) // star_targets
28436 &&
28437 (_literal = _PyPegen_expect_token(p, 22)) // token='='
28438 )
28439 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028440 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 +010028441 _res = z;
28442 if (_res == NULL && PyErr_Occurred()) {
28443 p->error_indicator = 1;
28444 D(p->level--);
28445 return NULL;
28446 }
28447 goto done;
28448 }
28449 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028450 D(fprintf(stderr, "%*c%s _tmp_162[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028451 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='"));
28452 }
28453 _res = NULL;
28454 done:
28455 D(p->level--);
28456 return _res;
28457}
28458
Brandt Bucher145bf262021-02-26 14:51:55 -080028459// _tmp_163: '.' | '...'
Pablo Galindo835f14f2021-01-31 22:52:56 +000028460static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080028461_tmp_163_rule(Parser *p)
Pablo Galindo835f14f2021-01-31 22:52:56 +000028462{
28463 D(p->level++);
28464 if (p->error_indicator) {
28465 D(p->level--);
28466 return NULL;
28467 }
28468 void * _res = NULL;
28469 int _mark = p->mark;
Pablo Galindo206cbda2021-02-07 18:42:21 +000028470 { // '.'
28471 if (p->error_indicator) {
28472 D(p->level--);
28473 return NULL;
28474 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028475 D(fprintf(stderr, "%*c> _tmp_163[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000028476 Token * _literal;
28477 if (
28478 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
28479 )
28480 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028481 D(fprintf(stderr, "%*c+ _tmp_163[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000028482 _res = _literal;
28483 goto done;
28484 }
28485 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028486 D(fprintf(stderr, "%*c%s _tmp_163[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo206cbda2021-02-07 18:42:21 +000028487 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
28488 }
28489 { // '...'
28490 if (p->error_indicator) {
28491 D(p->level--);
28492 return NULL;
28493 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028494 D(fprintf(stderr, "%*c> _tmp_163[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000028495 Token * _literal;
28496 if (
28497 (_literal = _PyPegen_expect_token(p, 52)) // token='...'
28498 )
28499 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028500 D(fprintf(stderr, "%*c+ _tmp_163[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000028501 _res = _literal;
28502 goto done;
28503 }
28504 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028505 D(fprintf(stderr, "%*c%s _tmp_163[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo206cbda2021-02-07 18:42:21 +000028506 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'"));
28507 }
28508 _res = NULL;
28509 done:
28510 D(p->level--);
28511 return _res;
28512}
28513
Brandt Bucher145bf262021-02-26 14:51:55 -080028514// _tmp_164: '.' | '...'
Pablo Galindo206cbda2021-02-07 18:42:21 +000028515static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080028516_tmp_164_rule(Parser *p)
Pablo Galindo206cbda2021-02-07 18:42:21 +000028517{
28518 D(p->level++);
28519 if (p->error_indicator) {
28520 D(p->level--);
28521 return NULL;
28522 }
28523 void * _res = NULL;
28524 int _mark = p->mark;
28525 { // '.'
28526 if (p->error_indicator) {
28527 D(p->level--);
28528 return NULL;
28529 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028530 D(fprintf(stderr, "%*c> _tmp_164[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000028531 Token * _literal;
28532 if (
28533 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
28534 )
28535 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028536 D(fprintf(stderr, "%*c+ _tmp_164[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000028537 _res = _literal;
28538 goto done;
28539 }
28540 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028541 D(fprintf(stderr, "%*c%s _tmp_164[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo206cbda2021-02-07 18:42:21 +000028542 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
28543 }
28544 { // '...'
28545 if (p->error_indicator) {
28546 D(p->level--);
28547 return NULL;
28548 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028549 D(fprintf(stderr, "%*c> _tmp_164[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000028550 Token * _literal;
28551 if (
28552 (_literal = _PyPegen_expect_token(p, 52)) // token='...'
28553 )
28554 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028555 D(fprintf(stderr, "%*c+ _tmp_164[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000028556 _res = _literal;
28557 goto done;
28558 }
28559 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028560 D(fprintf(stderr, "%*c%s _tmp_164[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo206cbda2021-02-07 18:42:21 +000028561 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'"));
28562 }
28563 _res = NULL;
28564 done:
28565 D(p->level--);
28566 return _res;
28567}
28568
Brandt Bucher145bf262021-02-26 14:51:55 -080028569// _tmp_165: '@' named_expression NEWLINE
Pablo Galindo206cbda2021-02-07 18:42:21 +000028570static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080028571_tmp_165_rule(Parser *p)
Pablo Galindo206cbda2021-02-07 18:42:21 +000028572{
28573 D(p->level++);
28574 if (p->error_indicator) {
28575 D(p->level--);
28576 return NULL;
28577 }
28578 void * _res = NULL;
28579 int _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028580 { // '@' named_expression NEWLINE
28581 if (p->error_indicator) {
28582 D(p->level--);
28583 return NULL;
28584 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028585 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 +010028586 Token * _literal;
28587 expr_ty f;
28588 Token * newline_var;
28589 if (
28590 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
28591 &&
28592 (f = named_expression_rule(p)) // named_expression
28593 &&
28594 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
28595 )
28596 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028597 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 +010028598 _res = f;
28599 if (_res == NULL && PyErr_Occurred()) {
28600 p->error_indicator = 1;
28601 D(p->level--);
28602 return NULL;
28603 }
28604 goto done;
28605 }
28606 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028607 D(fprintf(stderr, "%*c%s _tmp_165[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028608 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@' named_expression NEWLINE"));
28609 }
28610 _res = NULL;
28611 done:
28612 D(p->level--);
28613 return _res;
28614}
28615
Brandt Bucher145bf262021-02-26 14:51:55 -080028616// _tmp_166: ',' star_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028617static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080028618_tmp_166_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028619{
28620 D(p->level++);
28621 if (p->error_indicator) {
28622 D(p->level--);
28623 return NULL;
28624 }
28625 void * _res = NULL;
28626 int _mark = p->mark;
28627 { // ',' star_expression
28628 if (p->error_indicator) {
28629 D(p->level--);
28630 return NULL;
28631 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028632 D(fprintf(stderr, "%*c> _tmp_166[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028633 Token * _literal;
28634 expr_ty c;
28635 if (
28636 (_literal = _PyPegen_expect_token(p, 12)) // token=','
28637 &&
28638 (c = star_expression_rule(p)) // star_expression
28639 )
28640 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028641 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 +010028642 _res = c;
28643 if (_res == NULL && PyErr_Occurred()) {
28644 p->error_indicator = 1;
28645 D(p->level--);
28646 return NULL;
28647 }
28648 goto done;
28649 }
28650 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028651 D(fprintf(stderr, "%*c%s _tmp_166[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028652 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_expression"));
28653 }
28654 _res = NULL;
28655 done:
28656 D(p->level--);
28657 return _res;
28658}
28659
Brandt Bucher145bf262021-02-26 14:51:55 -080028660// _tmp_167: ',' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028661static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080028662_tmp_167_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028663{
28664 D(p->level++);
28665 if (p->error_indicator) {
28666 D(p->level--);
28667 return NULL;
28668 }
28669 void * _res = NULL;
28670 int _mark = p->mark;
28671 { // ',' expression
28672 if (p->error_indicator) {
28673 D(p->level--);
28674 return NULL;
28675 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028676 D(fprintf(stderr, "%*c> _tmp_167[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028677 Token * _literal;
28678 expr_ty c;
28679 if (
28680 (_literal = _PyPegen_expect_token(p, 12)) // token=','
28681 &&
28682 (c = expression_rule(p)) // expression
28683 )
28684 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028685 D(fprintf(stderr, "%*c+ _tmp_167[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028686 _res = c;
28687 if (_res == NULL && PyErr_Occurred()) {
28688 p->error_indicator = 1;
28689 D(p->level--);
28690 return NULL;
28691 }
28692 goto done;
28693 }
28694 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028695 D(fprintf(stderr, "%*c%s _tmp_167[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028696 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
28697 }
28698 _res = NULL;
28699 done:
28700 D(p->level--);
28701 return _res;
28702}
28703
Brandt Bucher145bf262021-02-26 14:51:55 -080028704// _tmp_168: 'or' conjunction
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028705static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080028706_tmp_168_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028707{
28708 D(p->level++);
28709 if (p->error_indicator) {
28710 D(p->level--);
28711 return NULL;
28712 }
28713 void * _res = NULL;
28714 int _mark = p->mark;
28715 { // 'or' conjunction
28716 if (p->error_indicator) {
28717 D(p->level--);
28718 return NULL;
28719 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028720 D(fprintf(stderr, "%*c> _tmp_168[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'or' conjunction"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028721 Token * _keyword;
28722 expr_ty c;
28723 if (
28724 (_keyword = _PyPegen_expect_token(p, 531)) // token='or'
28725 &&
28726 (c = conjunction_rule(p)) // conjunction
28727 )
28728 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028729 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 +010028730 _res = c;
28731 if (_res == NULL && PyErr_Occurred()) {
28732 p->error_indicator = 1;
28733 D(p->level--);
28734 return NULL;
28735 }
28736 goto done;
28737 }
28738 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028739 D(fprintf(stderr, "%*c%s _tmp_168[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028740 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'or' conjunction"));
28741 }
28742 _res = NULL;
28743 done:
28744 D(p->level--);
28745 return _res;
28746}
28747
Brandt Bucher145bf262021-02-26 14:51:55 -080028748// _tmp_169: 'and' inversion
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028749static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080028750_tmp_169_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028751{
28752 D(p->level++);
28753 if (p->error_indicator) {
28754 D(p->level--);
28755 return NULL;
28756 }
28757 void * _res = NULL;
28758 int _mark = p->mark;
28759 { // 'and' inversion
28760 if (p->error_indicator) {
28761 D(p->level--);
28762 return NULL;
28763 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028764 D(fprintf(stderr, "%*c> _tmp_169[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'and' inversion"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028765 Token * _keyword;
28766 expr_ty c;
28767 if (
28768 (_keyword = _PyPegen_expect_token(p, 532)) // token='and'
28769 &&
28770 (c = inversion_rule(p)) // inversion
28771 )
28772 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028773 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 +010028774 _res = c;
28775 if (_res == NULL && PyErr_Occurred()) {
28776 p->error_indicator = 1;
28777 D(p->level--);
28778 return NULL;
28779 }
28780 goto done;
28781 }
28782 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028783 D(fprintf(stderr, "%*c%s _tmp_169[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo835f14f2021-01-31 22:52:56 +000028784 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'and' inversion"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028785 }
28786 _res = NULL;
28787 done:
28788 D(p->level--);
28789 return _res;
28790}
28791
Brandt Bucher145bf262021-02-26 14:51:55 -080028792// _tmp_170: 'if' disjunction
Pablo Galindo835f14f2021-01-31 22:52:56 +000028793static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080028794_tmp_170_rule(Parser *p)
Pablo Galindo835f14f2021-01-31 22:52:56 +000028795{
28796 D(p->level++);
28797 if (p->error_indicator) {
28798 D(p->level--);
28799 return NULL;
28800 }
28801 void * _res = NULL;
28802 int _mark = p->mark;
Pablo Galindo206cbda2021-02-07 18:42:21 +000028803 { // 'if' disjunction
28804 if (p->error_indicator) {
28805 D(p->level--);
28806 return NULL;
28807 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028808 D(fprintf(stderr, "%*c> _tmp_170[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000028809 Token * _keyword;
28810 expr_ty z;
28811 if (
28812 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
28813 &&
28814 (z = disjunction_rule(p)) // disjunction
28815 )
28816 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028817 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 +000028818 _res = z;
28819 if (_res == NULL && PyErr_Occurred()) {
28820 p->error_indicator = 1;
28821 D(p->level--);
28822 return NULL;
28823 }
28824 goto done;
28825 }
28826 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028827 D(fprintf(stderr, "%*c%s _tmp_170[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo206cbda2021-02-07 18:42:21 +000028828 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' disjunction"));
28829 }
28830 _res = NULL;
28831 done:
28832 D(p->level--);
28833 return _res;
28834}
28835
Brandt Bucher145bf262021-02-26 14:51:55 -080028836// _tmp_171: 'if' disjunction
Pablo Galindo206cbda2021-02-07 18:42:21 +000028837static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080028838_tmp_171_rule(Parser *p)
Pablo Galindo206cbda2021-02-07 18:42:21 +000028839{
28840 D(p->level++);
28841 if (p->error_indicator) {
28842 D(p->level--);
28843 return NULL;
28844 }
28845 void * _res = NULL;
28846 int _mark = p->mark;
28847 { // 'if' disjunction
28848 if (p->error_indicator) {
28849 D(p->level--);
28850 return NULL;
28851 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028852 D(fprintf(stderr, "%*c> _tmp_171[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000028853 Token * _keyword;
28854 expr_ty z;
28855 if (
28856 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
28857 &&
28858 (z = disjunction_rule(p)) // disjunction
28859 )
28860 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028861 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 +000028862 _res = z;
28863 if (_res == NULL && PyErr_Occurred()) {
28864 p->error_indicator = 1;
28865 D(p->level--);
28866 return NULL;
28867 }
28868 goto done;
28869 }
28870 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028871 D(fprintf(stderr, "%*c%s _tmp_171[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo206cbda2021-02-07 18:42:21 +000028872 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' disjunction"));
28873 }
28874 _res = NULL;
28875 done:
28876 D(p->level--);
28877 return _res;
28878}
28879
Brandt Bucher145bf262021-02-26 14:51:55 -080028880// _tmp_172: starred_expression | named_expression !'='
Pablo Galindo206cbda2021-02-07 18:42:21 +000028881static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080028882_tmp_172_rule(Parser *p)
Pablo Galindo206cbda2021-02-07 18:42:21 +000028883{
28884 D(p->level++);
28885 if (p->error_indicator) {
28886 D(p->level--);
28887 return NULL;
28888 }
28889 void * _res = NULL;
28890 int _mark = p->mark;
Pablo Galindo4a97b152020-09-02 17:44:19 +010028891 { // starred_expression
28892 if (p->error_indicator) {
28893 D(p->level--);
28894 return NULL;
28895 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028896 D(fprintf(stderr, "%*c> _tmp_172[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "starred_expression"));
Pablo Galindo4a97b152020-09-02 17:44:19 +010028897 expr_ty starred_expression_var;
28898 if (
28899 (starred_expression_var = starred_expression_rule(p)) // starred_expression
28900 )
28901 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028902 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 +010028903 _res = starred_expression_var;
28904 goto done;
28905 }
28906 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028907 D(fprintf(stderr, "%*c%s _tmp_172[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo4a97b152020-09-02 17:44:19 +010028908 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "starred_expression"));
28909 }
28910 { // named_expression !'='
28911 if (p->error_indicator) {
28912 D(p->level--);
28913 return NULL;
28914 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028915 D(fprintf(stderr, "%*c> _tmp_172[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression !'='"));
Pablo Galindo4a97b152020-09-02 17:44:19 +010028916 expr_ty named_expression_var;
28917 if (
28918 (named_expression_var = named_expression_rule(p)) // named_expression
28919 &&
28920 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 22) // token='='
28921 )
28922 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028923 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 +010028924 _res = named_expression_var;
28925 goto done;
28926 }
28927 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028928 D(fprintf(stderr, "%*c%s _tmp_172[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo835f14f2021-01-31 22:52:56 +000028929 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression !'='"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028930 }
28931 _res = NULL;
28932 done:
28933 D(p->level--);
28934 return _res;
28935}
28936
Brandt Bucher145bf262021-02-26 14:51:55 -080028937// _tmp_173: ',' star_target
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020028938static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080028939_tmp_173_rule(Parser *p)
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020028940{
28941 D(p->level++);
28942 if (p->error_indicator) {
28943 D(p->level--);
28944 return NULL;
28945 }
28946 void * _res = NULL;
28947 int _mark = p->mark;
Pablo Galindo206cbda2021-02-07 18:42:21 +000028948 { // ',' star_target
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020028949 if (p->error_indicator) {
28950 D(p->level--);
28951 return NULL;
28952 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028953 D(fprintf(stderr, "%*c> _tmp_173[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target"));
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020028954 Token * _literal;
Pablo Galindo206cbda2021-02-07 18:42:21 +000028955 expr_ty c;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020028956 if (
Pablo Galindo206cbda2021-02-07 18:42:21 +000028957 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020028958 &&
Pablo Galindo206cbda2021-02-07 18:42:21 +000028959 (c = star_target_rule(p)) // star_target
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020028960 )
28961 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028962 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 +000028963 _res = c;
28964 if (_res == NULL && PyErr_Occurred()) {
28965 p->error_indicator = 1;
28966 D(p->level--);
28967 return NULL;
28968 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020028969 goto done;
28970 }
28971 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028972 D(fprintf(stderr, "%*c%s _tmp_173[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo206cbda2021-02-07 18:42:21 +000028973 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_target"));
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020028974 }
28975 _res = NULL;
28976 done:
28977 D(p->level--);
28978 return _res;
28979}
28980
Brandt Bucher145bf262021-02-26 14:51:55 -080028981// _tmp_174: ',' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028982static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080028983_tmp_174_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028984{
28985 D(p->level++);
28986 if (p->error_indicator) {
28987 D(p->level--);
28988 return NULL;
28989 }
28990 void * _res = NULL;
28991 int _mark = p->mark;
Pablo Galindo206cbda2021-02-07 18:42:21 +000028992 { // ',' star_target
28993 if (p->error_indicator) {
28994 D(p->level--);
28995 return NULL;
28996 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028997 D(fprintf(stderr, "%*c> _tmp_174[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000028998 Token * _literal;
28999 expr_ty c;
29000 if (
29001 (_literal = _PyPegen_expect_token(p, 12)) // token=','
29002 &&
29003 (c = star_target_rule(p)) // star_target
29004 )
29005 {
Brandt Bucher145bf262021-02-26 14:51:55 -080029006 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 +000029007 _res = c;
29008 if (_res == NULL && PyErr_Occurred()) {
29009 p->error_indicator = 1;
29010 D(p->level--);
29011 return NULL;
29012 }
29013 goto done;
29014 }
29015 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080029016 D(fprintf(stderr, "%*c%s _tmp_174[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo206cbda2021-02-07 18:42:21 +000029017 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_target"));
29018 }
29019 _res = NULL;
29020 done:
29021 D(p->level--);
29022 return _res;
29023}
29024
Brandt Bucher145bf262021-02-26 14:51:55 -080029025// _tmp_175: star_targets '='
Pablo Galindo206cbda2021-02-07 18:42:21 +000029026static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080029027_tmp_175_rule(Parser *p)
Pablo Galindo206cbda2021-02-07 18:42:21 +000029028{
29029 D(p->level++);
29030 if (p->error_indicator) {
29031 D(p->level--);
29032 return NULL;
29033 }
29034 void * _res = NULL;
29035 int _mark = p->mark;
Pablo Galindo835f14f2021-01-31 22:52:56 +000029036 { // star_targets '='
29037 if (p->error_indicator) {
29038 D(p->level--);
29039 return NULL;
29040 }
Brandt Bucher145bf262021-02-26 14:51:55 -080029041 D(fprintf(stderr, "%*c> _tmp_175[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
Pablo Galindo835f14f2021-01-31 22:52:56 +000029042 Token * _literal;
29043 expr_ty star_targets_var;
29044 if (
29045 (star_targets_var = star_targets_rule(p)) // star_targets
29046 &&
29047 (_literal = _PyPegen_expect_token(p, 22)) // token='='
29048 )
29049 {
Brandt Bucher145bf262021-02-26 14:51:55 -080029050 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 +000029051 _res = _PyPegen_dummy_name(p, star_targets_var, _literal);
29052 goto done;
29053 }
29054 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080029055 D(fprintf(stderr, "%*c%s _tmp_175[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo835f14f2021-01-31 22:52:56 +000029056 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='"));
29057 }
29058 _res = NULL;
29059 done:
29060 D(p->level--);
29061 return _res;
29062}
29063
Brandt Bucher145bf262021-02-26 14:51:55 -080029064// _tmp_176: star_targets '='
Pablo Galindo835f14f2021-01-31 22:52:56 +000029065static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080029066_tmp_176_rule(Parser *p)
Pablo Galindo206cbda2021-02-07 18:42:21 +000029067{
29068 D(p->level++);
29069 if (p->error_indicator) {
29070 D(p->level--);
29071 return NULL;
29072 }
29073 void * _res = NULL;
29074 int _mark = p->mark;
29075 { // star_targets '='
29076 if (p->error_indicator) {
29077 D(p->level--);
29078 return NULL;
29079 }
Brandt Bucher145bf262021-02-26 14:51:55 -080029080 D(fprintf(stderr, "%*c> _tmp_176[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000029081 Token * _literal;
29082 expr_ty star_targets_var;
29083 if (
29084 (star_targets_var = star_targets_rule(p)) // star_targets
29085 &&
29086 (_literal = _PyPegen_expect_token(p, 22)) // token='='
29087 )
29088 {
Brandt Bucher145bf262021-02-26 14:51:55 -080029089 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 +000029090 _res = _PyPegen_dummy_name(p, star_targets_var, _literal);
29091 goto done;
29092 }
29093 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080029094 D(fprintf(stderr, "%*c%s _tmp_176[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo206cbda2021-02-07 18:42:21 +000029095 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='"));
29096 }
29097 _res = NULL;
29098 done:
29099 D(p->level--);
29100 return _res;
29101}
29102
Brandt Bucher145bf262021-02-26 14:51:55 -080029103// _tmp_177: ')' | '**'
Pablo Galindo206cbda2021-02-07 18:42:21 +000029104static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080029105_tmp_177_rule(Parser *p)
Pablo Galindo835f14f2021-01-31 22:52:56 +000029106{
29107 D(p->level++);
29108 if (p->error_indicator) {
29109 D(p->level--);
29110 return NULL;
29111 }
29112 void * _res = NULL;
29113 int _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029114 { // ')'
29115 if (p->error_indicator) {
29116 D(p->level--);
29117 return NULL;
29118 }
Brandt Bucher145bf262021-02-26 14:51:55 -080029119 D(fprintf(stderr, "%*c> _tmp_177[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029120 Token * _literal;
29121 if (
29122 (_literal = _PyPegen_expect_token(p, 8)) // token=')'
29123 )
29124 {
Brandt Bucher145bf262021-02-26 14:51:55 -080029125 D(fprintf(stderr, "%*c+ _tmp_177[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029126 _res = _literal;
29127 goto done;
29128 }
29129 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080029130 D(fprintf(stderr, "%*c%s _tmp_177[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo835f14f2021-01-31 22:52:56 +000029131 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029132 }
29133 { // '**'
29134 if (p->error_indicator) {
29135 D(p->level--);
29136 return NULL;
29137 }
Brandt Bucher145bf262021-02-26 14:51:55 -080029138 D(fprintf(stderr, "%*c> _tmp_177[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029139 Token * _literal;
29140 if (
29141 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
29142 )
29143 {
Brandt Bucher145bf262021-02-26 14:51:55 -080029144 D(fprintf(stderr, "%*c+ _tmp_177[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029145 _res = _literal;
29146 goto done;
29147 }
29148 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080029149 D(fprintf(stderr, "%*c%s _tmp_177[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029150 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**'"));
29151 }
29152 _res = NULL;
29153 done:
29154 D(p->level--);
29155 return _res;
29156}
29157
Brandt Bucher145bf262021-02-26 14:51:55 -080029158// _tmp_178: ':' | '**'
Pablo Galindo835f14f2021-01-31 22:52:56 +000029159static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080029160_tmp_178_rule(Parser *p)
Pablo Galindo835f14f2021-01-31 22:52:56 +000029161{
29162 D(p->level++);
29163 if (p->error_indicator) {
29164 D(p->level--);
29165 return NULL;
29166 }
29167 void * _res = NULL;
29168 int _mark = p->mark;
29169 { // ':'
29170 if (p->error_indicator) {
29171 D(p->level--);
29172 return NULL;
29173 }
Brandt Bucher145bf262021-02-26 14:51:55 -080029174 D(fprintf(stderr, "%*c> _tmp_178[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
Pablo Galindo835f14f2021-01-31 22:52:56 +000029175 Token * _literal;
29176 if (
29177 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
29178 )
29179 {
Brandt Bucher145bf262021-02-26 14:51:55 -080029180 D(fprintf(stderr, "%*c+ _tmp_178[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
Pablo Galindo835f14f2021-01-31 22:52:56 +000029181 _res = _literal;
29182 goto done;
29183 }
29184 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080029185 D(fprintf(stderr, "%*c%s _tmp_178[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo835f14f2021-01-31 22:52:56 +000029186 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
29187 }
29188 { // '**'
29189 if (p->error_indicator) {
29190 D(p->level--);
29191 return NULL;
29192 }
Brandt Bucher145bf262021-02-26 14:51:55 -080029193 D(fprintf(stderr, "%*c> _tmp_178[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**'"));
Pablo Galindo835f14f2021-01-31 22:52:56 +000029194 Token * _literal;
29195 if (
29196 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
29197 )
29198 {
Brandt Bucher145bf262021-02-26 14:51:55 -080029199 D(fprintf(stderr, "%*c+ _tmp_178[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**'"));
Pablo Galindo835f14f2021-01-31 22:52:56 +000029200 _res = _literal;
29201 goto done;
29202 }
29203 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080029204 D(fprintf(stderr, "%*c%s _tmp_178[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo835f14f2021-01-31 22:52:56 +000029205 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**'"));
29206 }
29207 _res = NULL;
29208 done:
29209 D(p->level--);
29210 return _res;
29211}
29212
Brandt Bucher145bf262021-02-26 14:51:55 -080029213// _tmp_179: expression ['as' star_target]
Pablo Galindo58fb1562021-02-02 19:54:22 +000029214static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080029215_tmp_179_rule(Parser *p)
Pablo Galindo58fb1562021-02-02 19:54:22 +000029216{
29217 D(p->level++);
29218 if (p->error_indicator) {
29219 D(p->level--);
29220 return NULL;
29221 }
29222 void * _res = NULL;
29223 int _mark = p->mark;
29224 { // expression ['as' star_target]
29225 if (p->error_indicator) {
29226 D(p->level--);
29227 return NULL;
29228 }
Brandt Bucher145bf262021-02-26 14:51:55 -080029229 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 +000029230 void *_opt_var;
29231 UNUSED(_opt_var); // Silence compiler warnings
29232 expr_ty expression_var;
29233 if (
29234 (expression_var = expression_rule(p)) // expression
29235 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080029236 (_opt_var = _tmp_181_rule(p), 1) // ['as' star_target]
Pablo Galindo58fb1562021-02-02 19:54:22 +000029237 )
29238 {
Brandt Bucher145bf262021-02-26 14:51:55 -080029239 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 +000029240 _res = _PyPegen_dummy_name(p, expression_var, _opt_var);
29241 goto done;
29242 }
29243 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080029244 D(fprintf(stderr, "%*c%s _tmp_179[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +000029245 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ['as' star_target]"));
29246 }
29247 _res = NULL;
29248 done:
29249 D(p->level--);
29250 return _res;
29251}
29252
Brandt Bucher145bf262021-02-26 14:51:55 -080029253// _tmp_180: expressions ['as' star_target]
Pablo Galindo58fb1562021-02-02 19:54:22 +000029254static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080029255_tmp_180_rule(Parser *p)
Pablo Galindo58fb1562021-02-02 19:54:22 +000029256{
29257 D(p->level++);
29258 if (p->error_indicator) {
29259 D(p->level--);
29260 return NULL;
29261 }
29262 void * _res = NULL;
29263 int _mark = p->mark;
29264 { // expressions ['as' star_target]
29265 if (p->error_indicator) {
29266 D(p->level--);
29267 return NULL;
29268 }
Brandt Bucher145bf262021-02-26 14:51:55 -080029269 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 +000029270 void *_opt_var;
29271 UNUSED(_opt_var); // Silence compiler warnings
29272 expr_ty expressions_var;
29273 if (
29274 (expressions_var = expressions_rule(p)) // expressions
29275 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080029276 (_opt_var = _tmp_182_rule(p), 1) // ['as' star_target]
Pablo Galindo58fb1562021-02-02 19:54:22 +000029277 )
29278 {
Brandt Bucher145bf262021-02-26 14:51:55 -080029279 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 +000029280 _res = _PyPegen_dummy_name(p, expressions_var, _opt_var);
29281 goto done;
29282 }
29283 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080029284 D(fprintf(stderr, "%*c%s _tmp_180[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +000029285 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expressions ['as' star_target]"));
29286 }
29287 _res = NULL;
29288 done:
29289 D(p->level--);
29290 return _res;
29291}
29292
Brandt Bucher145bf262021-02-26 14:51:55 -080029293// _tmp_181: 'as' star_target
Pablo Galindo58fb1562021-02-02 19:54:22 +000029294static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080029295_tmp_181_rule(Parser *p)
Pablo Galindo58fb1562021-02-02 19:54:22 +000029296{
29297 D(p->level++);
29298 if (p->error_indicator) {
29299 D(p->level--);
29300 return NULL;
29301 }
29302 void * _res = NULL;
29303 int _mark = p->mark;
29304 { // 'as' star_target
29305 if (p->error_indicator) {
29306 D(p->level--);
29307 return NULL;
29308 }
Brandt Bucher145bf262021-02-26 14:51:55 -080029309 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 +000029310 Token * _keyword;
29311 expr_ty star_target_var;
29312 if (
29313 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
29314 &&
29315 (star_target_var = star_target_rule(p)) // star_target
29316 )
29317 {
Brandt Bucher145bf262021-02-26 14:51:55 -080029318 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 +000029319 _res = _PyPegen_dummy_name(p, _keyword, star_target_var);
29320 goto done;
29321 }
29322 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080029323 D(fprintf(stderr, "%*c%s _tmp_181[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +000029324 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' star_target"));
29325 }
29326 _res = NULL;
29327 done:
29328 D(p->level--);
29329 return _res;
29330}
29331
Brandt Bucher145bf262021-02-26 14:51:55 -080029332// _tmp_182: 'as' star_target
Pablo Galindo58fb1562021-02-02 19:54:22 +000029333static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080029334_tmp_182_rule(Parser *p)
Pablo Galindo58fb1562021-02-02 19:54:22 +000029335{
29336 D(p->level++);
29337 if (p->error_indicator) {
29338 D(p->level--);
29339 return NULL;
29340 }
29341 void * _res = NULL;
29342 int _mark = p->mark;
29343 { // 'as' star_target
29344 if (p->error_indicator) {
29345 D(p->level--);
29346 return NULL;
29347 }
Brandt Bucher145bf262021-02-26 14:51:55 -080029348 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 +000029349 Token * _keyword;
29350 expr_ty star_target_var;
29351 if (
29352 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
29353 &&
29354 (star_target_var = star_target_rule(p)) // star_target
29355 )
29356 {
Brandt Bucher145bf262021-02-26 14:51:55 -080029357 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 +000029358 _res = _PyPegen_dummy_name(p, _keyword, star_target_var);
29359 goto done;
29360 }
29361 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080029362 D(fprintf(stderr, "%*c%s _tmp_182[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +000029363 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' star_target"));
29364 }
29365 _res = NULL;
29366 done:
29367 D(p->level--);
29368 return _res;
29369}
29370
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029371void *
29372_PyPegen_parse(Parser *p)
29373{
29374 // Initialize keywords
29375 p->keywords = reserved_keywords;
29376 p->n_keyword_lists = n_keyword_lists;
29377
29378 // Run parser
29379 void *result = NULL;
29380 if (p->start_rule == Py_file_input) {
29381 result = file_rule(p);
29382 } else if (p->start_rule == Py_single_input) {
29383 result = interactive_rule(p);
29384 } else if (p->start_rule == Py_eval_input) {
29385 result = eval_rule(p);
29386 } else if (p->start_rule == Py_func_type_input) {
29387 result = func_type_rule(p);
29388 } else if (p->start_rule == Py_fstring_input) {
29389 result = fstring_rule(p);
29390 }
29391
29392 return result;
29393}
29394
29395// The end