blob: d158b2952baec9c839b920507d81f730469d9bad [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
Pablo Galindod9151cb2021-04-13 02:32:33 +0100162#define direct_named_expression_type 1094
163#define annotated_rhs_type 1095
164#define expressions_type 1096
165#define expression_type 1097
166#define lambdef_type 1098
167#define lambda_params_type 1099
168#define lambda_parameters_type 1100
169#define lambda_slash_no_default_type 1101
170#define lambda_slash_with_default_type 1102
171#define lambda_star_etc_type 1103
172#define lambda_kwds_type 1104
173#define lambda_param_no_default_type 1105
174#define lambda_param_with_default_type 1106
175#define lambda_param_maybe_default_type 1107
176#define lambda_param_type 1108
177#define disjunction_type 1109
178#define conjunction_type 1110
179#define inversion_type 1111
180#define comparison_type 1112
181#define compare_op_bitwise_or_pair_type 1113
182#define eq_bitwise_or_type 1114
183#define noteq_bitwise_or_type 1115
184#define lte_bitwise_or_type 1116
185#define lt_bitwise_or_type 1117
186#define gte_bitwise_or_type 1118
187#define gt_bitwise_or_type 1119
188#define notin_bitwise_or_type 1120
189#define in_bitwise_or_type 1121
190#define isnot_bitwise_or_type 1122
191#define is_bitwise_or_type 1123
192#define bitwise_or_type 1124 // Left-recursive
193#define bitwise_xor_type 1125 // Left-recursive
194#define bitwise_and_type 1126 // Left-recursive
195#define shift_expr_type 1127 // Left-recursive
196#define sum_type 1128 // Left-recursive
197#define term_type 1129 // Left-recursive
198#define factor_type 1130
199#define power_type 1131
200#define await_primary_type 1132
201#define primary_type 1133 // Left-recursive
202#define slices_type 1134
203#define slice_type 1135
204#define atom_type 1136
205#define strings_type 1137
206#define list_type 1138
207#define listcomp_type 1139
208#define tuple_type 1140
209#define group_type 1141
210#define genexp_type 1142
211#define set_type 1143
212#define setcomp_type 1144
213#define dict_type 1145
214#define dictcomp_type 1146
215#define double_starred_kvpairs_type 1147
216#define double_starred_kvpair_type 1148
217#define kvpair_type 1149
218#define for_if_clauses_type 1150
219#define for_if_clause_type 1151
220#define yield_expr_type 1152
221#define arguments_type 1153
222#define args_type 1154
223#define kwargs_type 1155
224#define starred_expression_type 1156
225#define kwarg_or_starred_type 1157
226#define kwarg_or_double_starred_type 1158
227#define star_targets_type 1159
228#define star_targets_list_seq_type 1160
229#define star_targets_tuple_seq_type 1161
230#define star_target_type 1162
231#define target_with_star_atom_type 1163
232#define star_atom_type 1164
233#define single_target_type 1165
234#define single_subscript_attribute_target_type 1166
235#define del_targets_type 1167
236#define del_target_type 1168
237#define del_t_atom_type 1169
238#define targets_type 1170
239#define target_type 1171
240#define t_primary_type 1172 // Left-recursive
241#define t_lookahead_type 1173
242#define t_atom_type 1174
243#define invalid_arguments_type 1175
244#define invalid_kwarg_type 1176
245#define invalid_named_expression_type 1177
246#define invalid_assignment_type 1178
247#define invalid_ann_assign_target_type 1179
248#define invalid_del_stmt_type 1180
249#define invalid_block_type 1181
250#define invalid_primary_type 1182 // Left-recursive
251#define invalid_comprehension_type 1183
252#define invalid_dict_comprehension_type 1184
253#define invalid_parameters_type 1185
254#define invalid_parameters_helper_type 1186
255#define invalid_lambda_parameters_type 1187
256#define invalid_lambda_parameters_helper_type 1188
257#define invalid_star_etc_type 1189
258#define invalid_lambda_star_etc_type 1190
259#define invalid_double_type_comments_type 1191
260#define invalid_with_item_type 1192
261#define invalid_for_target_type 1193
262#define invalid_group_type 1194
263#define invalid_import_from_targets_type 1195
264#define invalid_with_stmt_type 1196
265#define invalid_except_block_type 1197
266#define invalid_match_stmt_type 1198
267#define invalid_case_block_type 1199
268#define invalid_if_stmt_type 1200
269#define invalid_elif_stmt_type 1201
270#define invalid_while_stmt_type 1202
271#define _loop0_1_type 1203
272#define _loop0_2_type 1204
273#define _loop0_4_type 1205
274#define _gather_3_type 1206
275#define _loop0_6_type 1207
276#define _gather_5_type 1208
277#define _loop0_8_type 1209
278#define _gather_7_type 1210
279#define _loop0_10_type 1211
280#define _gather_9_type 1212
281#define _loop1_11_type 1213
282#define _loop0_13_type 1214
283#define _gather_12_type 1215
284#define _tmp_14_type 1216
285#define _tmp_15_type 1217
286#define _tmp_16_type 1218
287#define _tmp_17_type 1219
288#define _tmp_18_type 1220
289#define _tmp_19_type 1221
290#define _tmp_20_type 1222
291#define _tmp_21_type 1223
292#define _loop1_22_type 1224
293#define _tmp_23_type 1225
294#define _tmp_24_type 1226
295#define _loop0_26_type 1227
296#define _gather_25_type 1228
297#define _loop0_28_type 1229
298#define _gather_27_type 1230
299#define _tmp_29_type 1231
300#define _tmp_30_type 1232
301#define _loop0_31_type 1233
302#define _loop1_32_type 1234
303#define _loop0_34_type 1235
304#define _gather_33_type 1236
305#define _tmp_35_type 1237
306#define _loop0_37_type 1238
307#define _gather_36_type 1239
308#define _tmp_38_type 1240
309#define _loop0_40_type 1241
310#define _gather_39_type 1242
311#define _loop0_42_type 1243
312#define _gather_41_type 1244
313#define _loop0_44_type 1245
314#define _gather_43_type 1246
315#define _loop0_46_type 1247
316#define _gather_45_type 1248
317#define _tmp_47_type 1249
318#define _loop1_48_type 1250
319#define _tmp_49_type 1251
320#define _loop1_50_type 1252
321#define _loop0_52_type 1253
322#define _gather_51_type 1254
323#define _tmp_53_type 1255
324#define _tmp_54_type 1256
325#define _tmp_55_type 1257
326#define _loop0_57_type 1258
327#define _gather_56_type 1259
328#define _tmp_58_type 1260
329#define _loop0_60_type 1261
330#define _gather_59_type 1262
331#define _tmp_61_type 1263
332#define _loop0_63_type 1264
333#define _gather_62_type 1265
334#define _loop0_65_type 1266
335#define _gather_64_type 1267
336#define _tmp_66_type 1268
337#define _tmp_67_type 1269
338#define _tmp_68_type 1270
339#define _tmp_69_type 1271
340#define _loop0_70_type 1272
341#define _loop0_71_type 1273
342#define _loop0_72_type 1274
343#define _loop1_73_type 1275
344#define _loop0_74_type 1276
345#define _loop1_75_type 1277
346#define _loop1_76_type 1278
347#define _loop1_77_type 1279
348#define _loop0_78_type 1280
349#define _loop1_79_type 1281
350#define _loop0_80_type 1282
351#define _loop1_81_type 1283
352#define _loop0_82_type 1284
353#define _loop1_83_type 1285
354#define _loop1_84_type 1286
355#define _tmp_85_type 1287
356#define _loop1_86_type 1288
357#define _loop0_88_type 1289
358#define _gather_87_type 1290
359#define _loop1_89_type 1291
360#define _loop0_90_type 1292
361#define _loop0_91_type 1293
362#define _loop0_92_type 1294
363#define _loop1_93_type 1295
364#define _loop0_94_type 1296
365#define _loop1_95_type 1297
366#define _loop1_96_type 1298
367#define _loop1_97_type 1299
368#define _loop0_98_type 1300
369#define _loop1_99_type 1301
370#define _loop0_100_type 1302
371#define _loop1_101_type 1303
372#define _loop0_102_type 1304
373#define _loop1_103_type 1305
374#define _loop1_104_type 1306
375#define _loop1_105_type 1307
376#define _loop1_106_type 1308
377#define _tmp_107_type 1309
378#define _loop0_109_type 1310
379#define _gather_108_type 1311
380#define _tmp_110_type 1312
381#define _tmp_111_type 1313
382#define _tmp_112_type 1314
383#define _tmp_113_type 1315
384#define _loop1_114_type 1316
385#define _tmp_115_type 1317
386#define _tmp_116_type 1318
387#define _loop0_118_type 1319
388#define _gather_117_type 1320
389#define _loop1_119_type 1321
390#define _loop0_120_type 1322
391#define _loop0_121_type 1323
392#define _loop0_123_type 1324
393#define _gather_122_type 1325
394#define _tmp_124_type 1326
395#define _loop0_126_type 1327
396#define _gather_125_type 1328
397#define _loop0_128_type 1329
398#define _gather_127_type 1330
399#define _loop0_130_type 1331
400#define _gather_129_type 1332
401#define _loop0_132_type 1333
402#define _gather_131_type 1334
403#define _loop0_133_type 1335
404#define _loop0_135_type 1336
405#define _gather_134_type 1337
406#define _loop1_136_type 1338
407#define _tmp_137_type 1339
408#define _loop0_139_type 1340
409#define _gather_138_type 1341
410#define _loop0_141_type 1342
411#define _gather_140_type 1343
412#define _tmp_142_type 1344
413#define _tmp_143_type 1345
414#define _tmp_144_type 1346
415#define _tmp_145_type 1347
416#define _loop0_146_type 1348
417#define _loop0_147_type 1349
418#define _loop0_148_type 1350
419#define _tmp_149_type 1351
420#define _tmp_150_type 1352
421#define _tmp_151_type 1353
422#define _loop0_152_type 1354
423#define _loop1_153_type 1355
424#define _loop0_154_type 1356
425#define _loop1_155_type 1357
426#define _tmp_156_type 1358
427#define _tmp_157_type 1359
428#define _tmp_158_type 1360
429#define _loop0_160_type 1361
430#define _gather_159_type 1362
431#define _loop0_162_type 1363
432#define _gather_161_type 1364
433#define _tmp_163_type 1365
434#define _tmp_164_type 1366
435#define _tmp_165_type 1367
436#define _tmp_166_type 1368
437#define _tmp_167_type 1369
438#define _tmp_168_type 1370
439#define _tmp_169_type 1371
440#define _tmp_170_type 1372
441#define _tmp_171_type 1373
442#define _tmp_172_type 1374
443#define _tmp_173_type 1375
444#define _tmp_174_type 1376
445#define _tmp_175_type 1377
446#define _tmp_176_type 1378
447#define _tmp_177_type 1379
448#define _tmp_178_type 1380
449#define _tmp_179_type 1381
450#define _tmp_180_type 1382
451#define _tmp_181_type 1383
452#define _tmp_182_type 1384
453#define _tmp_183_type 1385
454#define _tmp_184_type 1386
455#define _tmp_185_type 1387
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100456
457static mod_ty file_rule(Parser *p);
458static mod_ty interactive_rule(Parser *p);
459static mod_ty eval_rule(Parser *p);
460static mod_ty func_type_rule(Parser *p);
461static expr_ty fstring_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100462static asdl_expr_seq* type_expressions_rule(Parser *p);
463static asdl_stmt_seq* statements_rule(Parser *p);
464static asdl_stmt_seq* statement_rule(Parser *p);
465static asdl_stmt_seq* statement_newline_rule(Parser *p);
Pablo Galindo9bdc40e2020-11-30 19:42:38 +0000466static asdl_stmt_seq* simple_stmts_rule(Parser *p);
467static stmt_ty simple_stmt_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100468static stmt_ty compound_stmt_rule(Parser *p);
469static stmt_ty assignment_rule(Parser *p);
470static AugOperator* augassign_rule(Parser *p);
471static stmt_ty global_stmt_rule(Parser *p);
472static stmt_ty nonlocal_stmt_rule(Parser *p);
473static stmt_ty yield_stmt_rule(Parser *p);
474static stmt_ty assert_stmt_rule(Parser *p);
475static stmt_ty del_stmt_rule(Parser *p);
476static stmt_ty import_stmt_rule(Parser *p);
477static stmt_ty import_name_rule(Parser *p);
478static stmt_ty import_from_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100479static asdl_alias_seq* import_from_targets_rule(Parser *p);
480static asdl_alias_seq* import_from_as_names_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100481static alias_ty import_from_as_name_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100482static asdl_alias_seq* dotted_as_names_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100483static alias_ty dotted_as_name_rule(Parser *p);
484static expr_ty dotted_name_rule(Parser *p);
485static stmt_ty if_stmt_rule(Parser *p);
486static stmt_ty elif_stmt_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100487static asdl_stmt_seq* else_block_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100488static stmt_ty while_stmt_rule(Parser *p);
489static stmt_ty for_stmt_rule(Parser *p);
490static stmt_ty with_stmt_rule(Parser *p);
491static withitem_ty with_item_rule(Parser *p);
492static stmt_ty try_stmt_rule(Parser *p);
493static excepthandler_ty except_block_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100494static asdl_stmt_seq* finally_block_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800495static stmt_ty match_stmt_rule(Parser *p);
496static expr_ty subject_expr_rule(Parser *p);
497static match_case_ty case_block_rule(Parser *p);
498static expr_ty guard_rule(Parser *p);
499static expr_ty patterns_rule(Parser *p);
500static expr_ty pattern_rule(Parser *p);
501static expr_ty as_pattern_rule(Parser *p);
502static expr_ty or_pattern_rule(Parser *p);
503static expr_ty closed_pattern_rule(Parser *p);
504static expr_ty literal_pattern_rule(Parser *p);
505static expr_ty signed_number_rule(Parser *p);
506static expr_ty capture_pattern_rule(Parser *p);
507static expr_ty wildcard_pattern_rule(Parser *p);
508static expr_ty value_pattern_rule(Parser *p);
509static expr_ty attr_rule(Parser *p);
510static expr_ty name_or_attr_rule(Parser *p);
511static expr_ty group_pattern_rule(Parser *p);
512static expr_ty sequence_pattern_rule(Parser *p);
513static asdl_seq* open_sequence_pattern_rule(Parser *p);
514static asdl_seq* maybe_sequence_pattern_rule(Parser *p);
515static expr_ty maybe_star_pattern_rule(Parser *p);
516static expr_ty star_pattern_rule(Parser *p);
517static expr_ty mapping_pattern_rule(Parser *p);
518static asdl_seq* items_pattern_rule(Parser *p);
519static KeyValuePair* key_value_pattern_rule(Parser *p);
520static KeyValuePair* double_star_pattern_rule(Parser *p);
521static expr_ty class_pattern_rule(Parser *p);
522static asdl_expr_seq* positional_patterns_rule(Parser *p);
523static asdl_keyword_seq* keyword_patterns_rule(Parser *p);
524static keyword_ty keyword_pattern_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100525static stmt_ty return_stmt_rule(Parser *p);
526static stmt_ty raise_stmt_rule(Parser *p);
527static stmt_ty function_def_rule(Parser *p);
528static stmt_ty function_def_raw_rule(Parser *p);
529static Token* func_type_comment_rule(Parser *p);
530static arguments_ty params_rule(Parser *p);
531static arguments_ty parameters_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100532static asdl_arg_seq* slash_no_default_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100533static SlashWithDefault* slash_with_default_rule(Parser *p);
534static StarEtc* star_etc_rule(Parser *p);
535static arg_ty kwds_rule(Parser *p);
536static arg_ty param_no_default_rule(Parser *p);
537static NameDefaultPair* param_with_default_rule(Parser *p);
538static NameDefaultPair* param_maybe_default_rule(Parser *p);
539static arg_ty param_rule(Parser *p);
540static expr_ty annotation_rule(Parser *p);
541static expr_ty default_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100542static asdl_expr_seq* decorators_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100543static stmt_ty class_def_rule(Parser *p);
544static stmt_ty class_def_raw_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100545static asdl_stmt_seq* block_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100546static expr_ty star_expressions_rule(Parser *p);
547static expr_ty star_expression_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100548static asdl_expr_seq* star_named_expressions_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100549static expr_ty star_named_expression_rule(Parser *p);
550static expr_ty named_expression_rule(Parser *p);
Pablo Galindod9151cb2021-04-13 02:32:33 +0100551static expr_ty direct_named_expression_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100552static expr_ty annotated_rhs_rule(Parser *p);
553static expr_ty expressions_rule(Parser *p);
554static expr_ty expression_rule(Parser *p);
555static expr_ty lambdef_rule(Parser *p);
556static arguments_ty lambda_params_rule(Parser *p);
557static arguments_ty lambda_parameters_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100558static asdl_arg_seq* lambda_slash_no_default_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100559static SlashWithDefault* lambda_slash_with_default_rule(Parser *p);
560static StarEtc* lambda_star_etc_rule(Parser *p);
561static arg_ty lambda_kwds_rule(Parser *p);
562static arg_ty lambda_param_no_default_rule(Parser *p);
563static NameDefaultPair* lambda_param_with_default_rule(Parser *p);
564static NameDefaultPair* lambda_param_maybe_default_rule(Parser *p);
565static arg_ty lambda_param_rule(Parser *p);
566static expr_ty disjunction_rule(Parser *p);
567static expr_ty conjunction_rule(Parser *p);
568static expr_ty inversion_rule(Parser *p);
569static expr_ty comparison_rule(Parser *p);
570static CmpopExprPair* compare_op_bitwise_or_pair_rule(Parser *p);
571static CmpopExprPair* eq_bitwise_or_rule(Parser *p);
572static CmpopExprPair* noteq_bitwise_or_rule(Parser *p);
573static CmpopExprPair* lte_bitwise_or_rule(Parser *p);
574static CmpopExprPair* lt_bitwise_or_rule(Parser *p);
575static CmpopExprPair* gte_bitwise_or_rule(Parser *p);
576static CmpopExprPair* gt_bitwise_or_rule(Parser *p);
577static CmpopExprPair* notin_bitwise_or_rule(Parser *p);
578static CmpopExprPair* in_bitwise_or_rule(Parser *p);
579static CmpopExprPair* isnot_bitwise_or_rule(Parser *p);
580static CmpopExprPair* is_bitwise_or_rule(Parser *p);
581static expr_ty bitwise_or_rule(Parser *p);
582static expr_ty bitwise_xor_rule(Parser *p);
583static expr_ty bitwise_and_rule(Parser *p);
584static expr_ty shift_expr_rule(Parser *p);
585static expr_ty sum_rule(Parser *p);
586static expr_ty term_rule(Parser *p);
587static expr_ty factor_rule(Parser *p);
588static expr_ty power_rule(Parser *p);
589static expr_ty await_primary_rule(Parser *p);
590static expr_ty primary_rule(Parser *p);
591static expr_ty slices_rule(Parser *p);
592static expr_ty slice_rule(Parser *p);
593static expr_ty atom_rule(Parser *p);
594static expr_ty strings_rule(Parser *p);
595static expr_ty list_rule(Parser *p);
596static expr_ty listcomp_rule(Parser *p);
597static expr_ty tuple_rule(Parser *p);
598static expr_ty group_rule(Parser *p);
599static expr_ty genexp_rule(Parser *p);
600static expr_ty set_rule(Parser *p);
601static expr_ty setcomp_rule(Parser *p);
602static expr_ty dict_rule(Parser *p);
603static expr_ty dictcomp_rule(Parser *p);
604static asdl_seq* double_starred_kvpairs_rule(Parser *p);
605static KeyValuePair* double_starred_kvpair_rule(Parser *p);
606static KeyValuePair* kvpair_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100607static asdl_comprehension_seq* for_if_clauses_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100608static comprehension_ty for_if_clause_rule(Parser *p);
609static expr_ty yield_expr_rule(Parser *p);
610static expr_ty arguments_rule(Parser *p);
611static expr_ty args_rule(Parser *p);
612static asdl_seq* kwargs_rule(Parser *p);
613static expr_ty starred_expression_rule(Parser *p);
614static KeywordOrStarred* kwarg_or_starred_rule(Parser *p);
615static KeywordOrStarred* kwarg_or_double_starred_rule(Parser *p);
616static expr_ty star_targets_rule(Parser *p);
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +0200617static asdl_expr_seq* star_targets_list_seq_rule(Parser *p);
618static asdl_expr_seq* star_targets_tuple_seq_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100619static expr_ty star_target_rule(Parser *p);
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +0200620static expr_ty target_with_star_atom_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100621static expr_ty star_atom_rule(Parser *p);
622static expr_ty single_target_rule(Parser *p);
623static expr_ty single_subscript_attribute_target_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100624static asdl_expr_seq* del_targets_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100625static expr_ty del_target_rule(Parser *p);
626static expr_ty del_t_atom_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100627static asdl_expr_seq* targets_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100628static expr_ty target_rule(Parser *p);
629static expr_ty t_primary_rule(Parser *p);
630static void *t_lookahead_rule(Parser *p);
631static expr_ty t_atom_rule(Parser *p);
Lysandros Nikolaoubca70142020-10-27 00:42:04 +0200632static void *invalid_arguments_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100633static void *invalid_kwarg_rule(Parser *p);
634static void *invalid_named_expression_rule(Parser *p);
635static void *invalid_assignment_rule(Parser *p);
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +0300636static expr_ty invalid_ann_assign_target_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300637static void *invalid_del_stmt_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100638static void *invalid_block_rule(Parser *p);
Lysandros Nikolaou15acc4e2020-10-27 20:54:20 +0200639static void *invalid_primary_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100640static void *invalid_comprehension_rule(Parser *p);
641static void *invalid_dict_comprehension_rule(Parser *p);
642static void *invalid_parameters_rule(Parser *p);
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +0200643static void *invalid_parameters_helper_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100644static void *invalid_lambda_parameters_rule(Parser *p);
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +0200645static void *invalid_lambda_parameters_helper_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100646static void *invalid_star_etc_rule(Parser *p);
647static void *invalid_lambda_star_etc_rule(Parser *p);
648static void *invalid_double_type_comments_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300649static void *invalid_with_item_rule(Parser *p);
650static void *invalid_for_target_rule(Parser *p);
651static void *invalid_group_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100652static void *invalid_import_from_targets_rule(Parser *p);
Pablo Galindo58fb1562021-02-02 19:54:22 +0000653static void *invalid_with_stmt_rule(Parser *p);
Pablo Galindo206cbda2021-02-07 18:42:21 +0000654static void *invalid_except_block_rule(Parser *p);
Pablo Galindo08fb8ac2021-03-18 01:03:11 +0000655static void *invalid_match_stmt_rule(Parser *p);
656static void *invalid_case_block_rule(Parser *p);
Pablo Galindob86ed8e2021-04-12 16:59:30 +0100657static void *invalid_if_stmt_rule(Parser *p);
658static void *invalid_elif_stmt_rule(Parser *p);
659static void *invalid_while_stmt_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100660static asdl_seq *_loop0_1_rule(Parser *p);
661static asdl_seq *_loop0_2_rule(Parser *p);
662static asdl_seq *_loop0_4_rule(Parser *p);
663static asdl_seq *_gather_3_rule(Parser *p);
664static asdl_seq *_loop0_6_rule(Parser *p);
665static asdl_seq *_gather_5_rule(Parser *p);
666static asdl_seq *_loop0_8_rule(Parser *p);
667static asdl_seq *_gather_7_rule(Parser *p);
668static asdl_seq *_loop0_10_rule(Parser *p);
669static asdl_seq *_gather_9_rule(Parser *p);
670static asdl_seq *_loop1_11_rule(Parser *p);
671static asdl_seq *_loop0_13_rule(Parser *p);
672static asdl_seq *_gather_12_rule(Parser *p);
673static void *_tmp_14_rule(Parser *p);
674static void *_tmp_15_rule(Parser *p);
675static void *_tmp_16_rule(Parser *p);
676static void *_tmp_17_rule(Parser *p);
677static void *_tmp_18_rule(Parser *p);
678static void *_tmp_19_rule(Parser *p);
679static void *_tmp_20_rule(Parser *p);
680static void *_tmp_21_rule(Parser *p);
681static asdl_seq *_loop1_22_rule(Parser *p);
682static void *_tmp_23_rule(Parser *p);
683static void *_tmp_24_rule(Parser *p);
684static asdl_seq *_loop0_26_rule(Parser *p);
685static asdl_seq *_gather_25_rule(Parser *p);
686static asdl_seq *_loop0_28_rule(Parser *p);
687static asdl_seq *_gather_27_rule(Parser *p);
688static void *_tmp_29_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300689static void *_tmp_30_rule(Parser *p);
690static asdl_seq *_loop0_31_rule(Parser *p);
691static asdl_seq *_loop1_32_rule(Parser *p);
692static asdl_seq *_loop0_34_rule(Parser *p);
693static asdl_seq *_gather_33_rule(Parser *p);
694static void *_tmp_35_rule(Parser *p);
695static asdl_seq *_loop0_37_rule(Parser *p);
696static asdl_seq *_gather_36_rule(Parser *p);
697static void *_tmp_38_rule(Parser *p);
698static asdl_seq *_loop0_40_rule(Parser *p);
699static asdl_seq *_gather_39_rule(Parser *p);
700static asdl_seq *_loop0_42_rule(Parser *p);
701static asdl_seq *_gather_41_rule(Parser *p);
702static asdl_seq *_loop0_44_rule(Parser *p);
703static asdl_seq *_gather_43_rule(Parser *p);
704static asdl_seq *_loop0_46_rule(Parser *p);
705static asdl_seq *_gather_45_rule(Parser *p);
706static void *_tmp_47_rule(Parser *p);
707static asdl_seq *_loop1_48_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100708static void *_tmp_49_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800709static asdl_seq *_loop1_50_rule(Parser *p);
710static asdl_seq *_loop0_52_rule(Parser *p);
711static asdl_seq *_gather_51_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300712static void *_tmp_53_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800713static void *_tmp_54_rule(Parser *p);
714static void *_tmp_55_rule(Parser *p);
715static asdl_seq *_loop0_57_rule(Parser *p);
716static asdl_seq *_gather_56_rule(Parser *p);
717static void *_tmp_58_rule(Parser *p);
718static asdl_seq *_loop0_60_rule(Parser *p);
719static asdl_seq *_gather_59_rule(Parser *p);
720static void *_tmp_61_rule(Parser *p);
721static asdl_seq *_loop0_63_rule(Parser *p);
722static asdl_seq *_gather_62_rule(Parser *p);
723static asdl_seq *_loop0_65_rule(Parser *p);
724static asdl_seq *_gather_64_rule(Parser *p);
725static void *_tmp_66_rule(Parser *p);
726static void *_tmp_67_rule(Parser *p);
727static void *_tmp_68_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300728static void *_tmp_69_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800729static asdl_seq *_loop0_70_rule(Parser *p);
730static asdl_seq *_loop0_71_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000731static asdl_seq *_loop0_72_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000732static asdl_seq *_loop1_73_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300733static asdl_seq *_loop0_74_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800734static asdl_seq *_loop1_75_rule(Parser *p);
735static asdl_seq *_loop1_76_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000736static asdl_seq *_loop1_77_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300737static asdl_seq *_loop0_78_rule(Parser *p);
738static asdl_seq *_loop1_79_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800739static asdl_seq *_loop0_80_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100740static asdl_seq *_loop1_81_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000741static asdl_seq *_loop0_82_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300742static asdl_seq *_loop1_83_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800743static asdl_seq *_loop1_84_rule(Parser *p);
744static void *_tmp_85_rule(Parser *p);
745static asdl_seq *_loop1_86_rule(Parser *p);
746static asdl_seq *_loop0_88_rule(Parser *p);
747static asdl_seq *_gather_87_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100748static asdl_seq *_loop1_89_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800749static asdl_seq *_loop0_90_rule(Parser *p);
750static asdl_seq *_loop0_91_rule(Parser *p);
751static asdl_seq *_loop0_92_rule(Parser *p);
752static asdl_seq *_loop1_93_rule(Parser *p);
753static asdl_seq *_loop0_94_rule(Parser *p);
754static asdl_seq *_loop1_95_rule(Parser *p);
755static asdl_seq *_loop1_96_rule(Parser *p);
756static asdl_seq *_loop1_97_rule(Parser *p);
757static asdl_seq *_loop0_98_rule(Parser *p);
758static asdl_seq *_loop1_99_rule(Parser *p);
759static asdl_seq *_loop0_100_rule(Parser *p);
760static asdl_seq *_loop1_101_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000761static asdl_seq *_loop0_102_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000762static asdl_seq *_loop1_103_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800763static asdl_seq *_loop1_104_rule(Parser *p);
764static asdl_seq *_loop1_105_rule(Parser *p);
765static asdl_seq *_loop1_106_rule(Parser *p);
766static void *_tmp_107_rule(Parser *p);
767static asdl_seq *_loop0_109_rule(Parser *p);
768static asdl_seq *_gather_108_rule(Parser *p);
769static void *_tmp_110_rule(Parser *p);
770static void *_tmp_111_rule(Parser *p);
771static void *_tmp_112_rule(Parser *p);
772static void *_tmp_113_rule(Parser *p);
773static asdl_seq *_loop1_114_rule(Parser *p);
774static void *_tmp_115_rule(Parser *p);
775static void *_tmp_116_rule(Parser *p);
776static asdl_seq *_loop0_118_rule(Parser *p);
777static asdl_seq *_gather_117_rule(Parser *p);
778static asdl_seq *_loop1_119_rule(Parser *p);
779static asdl_seq *_loop0_120_rule(Parser *p);
780static asdl_seq *_loop0_121_rule(Parser *p);
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +0200781static asdl_seq *_loop0_123_rule(Parser *p);
782static asdl_seq *_gather_122_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800783static void *_tmp_124_rule(Parser *p);
784static asdl_seq *_loop0_126_rule(Parser *p);
785static asdl_seq *_gather_125_rule(Parser *p);
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +0300786static asdl_seq *_loop0_128_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800787static asdl_seq *_gather_127_rule(Parser *p);
788static asdl_seq *_loop0_130_rule(Parser *p);
789static asdl_seq *_gather_129_rule(Parser *p);
790static asdl_seq *_loop0_132_rule(Parser *p);
791static asdl_seq *_gather_131_rule(Parser *p);
Pablo Galindo835f14f2021-01-31 22:52:56 +0000792static asdl_seq *_loop0_133_rule(Parser *p);
Pablo Galindo835f14f2021-01-31 22:52:56 +0000793static asdl_seq *_loop0_135_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800794static asdl_seq *_gather_134_rule(Parser *p);
Pablo Galindo835f14f2021-01-31 22:52:56 +0000795static asdl_seq *_loop1_136_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100796static void *_tmp_137_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800797static asdl_seq *_loop0_139_rule(Parser *p);
798static asdl_seq *_gather_138_rule(Parser *p);
Pablo Galindo58fb1562021-02-02 19:54:22 +0000799static asdl_seq *_loop0_141_rule(Parser *p);
800static asdl_seq *_gather_140_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800801static void *_tmp_142_rule(Parser *p);
Pablo Galindob86ed8e2021-04-12 16:59:30 +0100802static void *_tmp_143_rule(Parser *p);
803static void *_tmp_144_rule(Parser *p);
804static void *_tmp_145_rule(Parser *p);
805static asdl_seq *_loop0_146_rule(Parser *p);
806static asdl_seq *_loop0_147_rule(Parser *p);
807static asdl_seq *_loop0_148_rule(Parser *p);
808static void *_tmp_149_rule(Parser *p);
809static void *_tmp_150_rule(Parser *p);
810static void *_tmp_151_rule(Parser *p);
811static asdl_seq *_loop0_152_rule(Parser *p);
812static asdl_seq *_loop1_153_rule(Parser *p);
813static asdl_seq *_loop0_154_rule(Parser *p);
814static asdl_seq *_loop1_155_rule(Parser *p);
815static void *_tmp_156_rule(Parser *p);
816static void *_tmp_157_rule(Parser *p);
817static void *_tmp_158_rule(Parser *p);
818static asdl_seq *_loop0_160_rule(Parser *p);
819static asdl_seq *_gather_159_rule(Parser *p);
820static asdl_seq *_loop0_162_rule(Parser *p);
821static asdl_seq *_gather_161_rule(Parser *p);
Pablo Galindo58fb1562021-02-02 19:54:22 +0000822static void *_tmp_163_rule(Parser *p);
823static void *_tmp_164_rule(Parser *p);
Pablo Galindo206cbda2021-02-07 18:42:21 +0000824static void *_tmp_165_rule(Parser *p);
825static void *_tmp_166_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800826static void *_tmp_167_rule(Parser *p);
827static void *_tmp_168_rule(Parser *p);
828static void *_tmp_169_rule(Parser *p);
829static void *_tmp_170_rule(Parser *p);
830static void *_tmp_171_rule(Parser *p);
831static void *_tmp_172_rule(Parser *p);
832static void *_tmp_173_rule(Parser *p);
833static void *_tmp_174_rule(Parser *p);
834static void *_tmp_175_rule(Parser *p);
835static void *_tmp_176_rule(Parser *p);
836static void *_tmp_177_rule(Parser *p);
837static void *_tmp_178_rule(Parser *p);
838static void *_tmp_179_rule(Parser *p);
839static void *_tmp_180_rule(Parser *p);
840static void *_tmp_181_rule(Parser *p);
841static void *_tmp_182_rule(Parser *p);
Pablo Galindob86ed8e2021-04-12 16:59:30 +0100842static void *_tmp_183_rule(Parser *p);
843static void *_tmp_184_rule(Parser *p);
844static void *_tmp_185_rule(Parser *p);
Guido van Rossum85a5fbb1990-10-14 12:07:46 +0000845
846
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100847// file: statements? $
848static mod_ty
849file_rule(Parser *p)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +0000850{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100851 D(p->level++);
852 if (p->error_indicator) {
853 D(p->level--);
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000854 return NULL;
855 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100856 mod_ty _res = NULL;
857 int _mark = p->mark;
858 { // statements? $
859 if (p->error_indicator) {
860 D(p->level--);
861 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000862 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100863 D(fprintf(stderr, "%*c> file[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statements? $"));
864 void *a;
865 Token * endmarker_var;
866 if (
867 (a = statements_rule(p), 1) // statements?
868 &&
869 (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
870 )
871 {
872 D(fprintf(stderr, "%*c+ file[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "statements? $"));
873 _res = _PyPegen_make_module ( p , a );
874 if (_res == NULL && PyErr_Occurred()) {
875 p->error_indicator = 1;
876 D(p->level--);
877 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000878 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100879 goto done;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000880 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100881 p->mark = _mark;
882 D(fprintf(stderr, "%*c%s file[%d-%d]: %s failed!\n", p->level, ' ',
883 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statements? $"));
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000884 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100885 _res = NULL;
886 done:
887 D(p->level--);
888 return _res;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +0000889}
890
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100891// interactive: statement_newline
892static mod_ty
893interactive_rule(Parser *p)
Guido van Rossumb09f7ed2001-07-15 21:08:29 +0000894{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100895 D(p->level++);
896 if (p->error_indicator) {
897 D(p->level--);
898 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000899 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100900 mod_ty _res = NULL;
901 int _mark = p->mark;
902 { // statement_newline
903 if (p->error_indicator) {
904 D(p->level--);
905 return NULL;
906 }
907 D(fprintf(stderr, "%*c> interactive[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statement_newline"));
Pablo Galindoa5634c42020-09-16 19:42:00 +0100908 asdl_stmt_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100909 if (
910 (a = statement_newline_rule(p)) // statement_newline
911 )
912 {
913 D(fprintf(stderr, "%*c+ interactive[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "statement_newline"));
Victor Stinnerd27f8d22021-04-07 21:34:22 +0200914 _res = _PyAST_Interactive ( a , p -> arena );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100915 if (_res == NULL && PyErr_Occurred()) {
916 p->error_indicator = 1;
917 D(p->level--);
918 return NULL;
919 }
920 goto done;
921 }
922 p->mark = _mark;
923 D(fprintf(stderr, "%*c%s interactive[%d-%d]: %s failed!\n", p->level, ' ',
924 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statement_newline"));
925 }
926 _res = NULL;
927 done:
928 D(p->level--);
929 return _res;
Guido van Rossumb09f7ed2001-07-15 21:08:29 +0000930}
931
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100932// eval: expressions NEWLINE* $
933static mod_ty
934eval_rule(Parser *p)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +0000935{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100936 D(p->level++);
937 if (p->error_indicator) {
938 D(p->level--);
939 return NULL;
940 }
941 mod_ty _res = NULL;
942 int _mark = p->mark;
943 { // expressions NEWLINE* $
944 if (p->error_indicator) {
945 D(p->level--);
946 return NULL;
947 }
948 D(fprintf(stderr, "%*c> eval[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expressions NEWLINE* $"));
949 asdl_seq * _loop0_1_var;
950 expr_ty a;
951 Token * endmarker_var;
952 if (
953 (a = expressions_rule(p)) // expressions
954 &&
955 (_loop0_1_var = _loop0_1_rule(p)) // NEWLINE*
956 &&
957 (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
958 )
959 {
960 D(fprintf(stderr, "%*c+ eval[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expressions NEWLINE* $"));
Victor Stinnerd27f8d22021-04-07 21:34:22 +0200961 _res = _PyAST_Expression ( a , p -> arena );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100962 if (_res == NULL && PyErr_Occurred()) {
963 p->error_indicator = 1;
964 D(p->level--);
965 return NULL;
966 }
967 goto done;
968 }
969 p->mark = _mark;
970 D(fprintf(stderr, "%*c%s eval[%d-%d]: %s failed!\n", p->level, ' ',
971 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expressions NEWLINE* $"));
972 }
973 _res = NULL;
974 done:
975 D(p->level--);
976 return _res;
977}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000978
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100979// func_type: '(' type_expressions? ')' '->' expression NEWLINE* $
980static mod_ty
981func_type_rule(Parser *p)
982{
983 D(p->level++);
984 if (p->error_indicator) {
985 D(p->level--);
986 return NULL;
987 }
988 mod_ty _res = NULL;
989 int _mark = p->mark;
990 { // '(' type_expressions? ')' '->' expression NEWLINE* $
991 if (p->error_indicator) {
992 D(p->level--);
993 return NULL;
994 }
995 D(fprintf(stderr, "%*c> func_type[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' type_expressions? ')' '->' expression NEWLINE* $"));
996 Token * _literal;
997 Token * _literal_1;
998 Token * _literal_2;
999 asdl_seq * _loop0_2_var;
1000 void *a;
1001 expr_ty b;
1002 Token * endmarker_var;
1003 if (
1004 (_literal = _PyPegen_expect_token(p, 7)) // token='('
1005 &&
1006 (a = type_expressions_rule(p), 1) // type_expressions?
1007 &&
1008 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
1009 &&
1010 (_literal_2 = _PyPegen_expect_token(p, 51)) // token='->'
1011 &&
1012 (b = expression_rule(p)) // expression
1013 &&
1014 (_loop0_2_var = _loop0_2_rule(p)) // NEWLINE*
1015 &&
1016 (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
1017 )
1018 {
1019 D(fprintf(stderr, "%*c+ func_type[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' type_expressions? ')' '->' expression NEWLINE* $"));
Victor Stinnerd27f8d22021-04-07 21:34:22 +02001020 _res = _PyAST_FunctionType ( a , b , p -> arena );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001021 if (_res == NULL && PyErr_Occurred()) {
1022 p->error_indicator = 1;
1023 D(p->level--);
1024 return NULL;
1025 }
1026 goto done;
1027 }
1028 p->mark = _mark;
1029 D(fprintf(stderr, "%*c%s func_type[%d-%d]: %s failed!\n", p->level, ' ',
1030 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' type_expressions? ')' '->' expression NEWLINE* $"));
1031 }
1032 _res = NULL;
1033 done:
1034 D(p->level--);
1035 return _res;
1036}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +00001037
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001038// fstring: star_expressions
1039static expr_ty
1040fstring_rule(Parser *p)
1041{
1042 D(p->level++);
1043 if (p->error_indicator) {
1044 D(p->level--);
1045 return NULL;
1046 }
1047 expr_ty _res = NULL;
1048 int _mark = p->mark;
1049 { // star_expressions
1050 if (p->error_indicator) {
1051 D(p->level--);
1052 return NULL;
1053 }
1054 D(fprintf(stderr, "%*c> fstring[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
1055 expr_ty star_expressions_var;
1056 if (
1057 (star_expressions_var = star_expressions_rule(p)) // star_expressions
1058 )
1059 {
1060 D(fprintf(stderr, "%*c+ fstring[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
1061 _res = star_expressions_var;
1062 goto done;
1063 }
1064 p->mark = _mark;
1065 D(fprintf(stderr, "%*c%s fstring[%d-%d]: %s failed!\n", p->level, ' ',
1066 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
1067 }
1068 _res = NULL;
1069 done:
1070 D(p->level--);
1071 return _res;
1072}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +00001073
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001074// type_expressions:
1075// | ','.expression+ ',' '*' expression ',' '**' expression
1076// | ','.expression+ ',' '*' expression
1077// | ','.expression+ ',' '**' expression
1078// | '*' expression ',' '**' expression
1079// | '*' expression
1080// | '**' expression
1081// | ','.expression+
Pablo Galindoa5634c42020-09-16 19:42:00 +01001082static asdl_expr_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001083type_expressions_rule(Parser *p)
1084{
1085 D(p->level++);
1086 if (p->error_indicator) {
1087 D(p->level--);
1088 return NULL;
1089 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01001090 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001091 int _mark = p->mark;
1092 { // ','.expression+ ',' '*' expression ',' '**' expression
1093 if (p->error_indicator) {
1094 D(p->level--);
1095 return NULL;
1096 }
1097 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '*' expression ',' '**' expression"));
1098 Token * _literal;
1099 Token * _literal_1;
1100 Token * _literal_2;
1101 Token * _literal_3;
1102 asdl_seq * a;
1103 expr_ty b;
1104 expr_ty c;
1105 if (
1106 (a = _gather_3_rule(p)) // ','.expression+
1107 &&
1108 (_literal = _PyPegen_expect_token(p, 12)) // token=','
1109 &&
1110 (_literal_1 = _PyPegen_expect_token(p, 16)) // token='*'
1111 &&
1112 (b = expression_rule(p)) // expression
1113 &&
1114 (_literal_2 = _PyPegen_expect_token(p, 12)) // token=','
1115 &&
1116 (_literal_3 = _PyPegen_expect_token(p, 35)) // token='**'
1117 &&
1118 (c = expression_rule(p)) // expression
1119 )
1120 {
1121 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 +03001122 _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 +01001123 if (_res == NULL && PyErr_Occurred()) {
1124 p->error_indicator = 1;
1125 D(p->level--);
1126 return NULL;
1127 }
1128 goto done;
1129 }
1130 p->mark = _mark;
1131 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1132 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+ ',' '*' expression ',' '**' expression"));
1133 }
1134 { // ','.expression+ ',' '*' expression
1135 if (p->error_indicator) {
1136 D(p->level--);
1137 return NULL;
1138 }
1139 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '*' expression"));
1140 Token * _literal;
1141 Token * _literal_1;
1142 asdl_seq * a;
1143 expr_ty b;
1144 if (
1145 (a = _gather_5_rule(p)) // ','.expression+
1146 &&
1147 (_literal = _PyPegen_expect_token(p, 12)) // token=','
1148 &&
1149 (_literal_1 = _PyPegen_expect_token(p, 16)) // token='*'
1150 &&
1151 (b = expression_rule(p)) // expression
1152 )
1153 {
1154 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 +01001155 _res = ( asdl_expr_seq * ) _PyPegen_seq_append_to_end ( p , a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001156 if (_res == NULL && PyErr_Occurred()) {
1157 p->error_indicator = 1;
1158 D(p->level--);
1159 return NULL;
1160 }
1161 goto done;
1162 }
1163 p->mark = _mark;
1164 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1165 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+ ',' '*' expression"));
1166 }
1167 { // ','.expression+ ',' '**' expression
1168 if (p->error_indicator) {
1169 D(p->level--);
1170 return NULL;
1171 }
1172 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '**' expression"));
1173 Token * _literal;
1174 Token * _literal_1;
1175 asdl_seq * a;
1176 expr_ty b;
1177 if (
1178 (a = _gather_7_rule(p)) // ','.expression+
1179 &&
1180 (_literal = _PyPegen_expect_token(p, 12)) // token=','
1181 &&
1182 (_literal_1 = _PyPegen_expect_token(p, 35)) // token='**'
1183 &&
1184 (b = expression_rule(p)) // expression
1185 )
1186 {
1187 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 +01001188 _res = ( asdl_expr_seq * ) _PyPegen_seq_append_to_end ( p , a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001189 if (_res == NULL && PyErr_Occurred()) {
1190 p->error_indicator = 1;
1191 D(p->level--);
1192 return NULL;
1193 }
1194 goto done;
1195 }
1196 p->mark = _mark;
1197 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1198 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+ ',' '**' expression"));
1199 }
1200 { // '*' expression ',' '**' expression
1201 if (p->error_indicator) {
1202 D(p->level--);
1203 return NULL;
1204 }
1205 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' expression ',' '**' expression"));
1206 Token * _literal;
1207 Token * _literal_1;
1208 Token * _literal_2;
1209 expr_ty a;
1210 expr_ty b;
1211 if (
1212 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
1213 &&
1214 (a = expression_rule(p)) // expression
1215 &&
1216 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
1217 &&
1218 (_literal_2 = _PyPegen_expect_token(p, 35)) // token='**'
1219 &&
1220 (b = expression_rule(p)) // expression
1221 )
1222 {
1223 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 +03001224 _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 +01001225 if (_res == NULL && PyErr_Occurred()) {
1226 p->error_indicator = 1;
1227 D(p->level--);
1228 return NULL;
1229 }
1230 goto done;
1231 }
1232 p->mark = _mark;
1233 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1234 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' expression ',' '**' expression"));
1235 }
1236 { // '*' expression
1237 if (p->error_indicator) {
1238 D(p->level--);
1239 return NULL;
1240 }
1241 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' expression"));
1242 Token * _literal;
1243 expr_ty a;
1244 if (
1245 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
1246 &&
1247 (a = expression_rule(p)) // expression
1248 )
1249 {
1250 D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' expression"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001251 _res = ( asdl_expr_seq * ) _PyPegen_singleton_seq ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001252 if (_res == NULL && PyErr_Occurred()) {
1253 p->error_indicator = 1;
1254 D(p->level--);
1255 return NULL;
1256 }
1257 goto done;
1258 }
1259 p->mark = _mark;
1260 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1261 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' expression"));
1262 }
1263 { // '**' expression
1264 if (p->error_indicator) {
1265 D(p->level--);
1266 return NULL;
1267 }
1268 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' expression"));
1269 Token * _literal;
1270 expr_ty a;
1271 if (
1272 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
1273 &&
1274 (a = expression_rule(p)) // expression
1275 )
1276 {
1277 D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' expression"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001278 _res = ( asdl_expr_seq * ) _PyPegen_singleton_seq ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001279 if (_res == NULL && PyErr_Occurred()) {
1280 p->error_indicator = 1;
1281 D(p->level--);
1282 return NULL;
1283 }
1284 goto done;
1285 }
1286 p->mark = _mark;
1287 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1288 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' expression"));
1289 }
1290 { // ','.expression+
1291 if (p->error_indicator) {
1292 D(p->level--);
1293 return NULL;
1294 }
1295 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001296 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001297 if (
Pablo Galindoa5634c42020-09-16 19:42:00 +01001298 (a = (asdl_expr_seq*)_gather_9_rule(p)) // ','.expression+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001299 )
1300 {
1301 D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.expression+"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001302 _res = a;
1303 if (_res == NULL && PyErr_Occurred()) {
1304 p->error_indicator = 1;
1305 D(p->level--);
1306 return NULL;
1307 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001308 goto done;
1309 }
1310 p->mark = _mark;
1311 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1312 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+"));
1313 }
1314 _res = NULL;
1315 done:
1316 D(p->level--);
1317 return _res;
1318}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +00001319
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001320// statements: statement+
Pablo Galindoa5634c42020-09-16 19:42:00 +01001321static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001322statements_rule(Parser *p)
1323{
1324 D(p->level++);
1325 if (p->error_indicator) {
1326 D(p->level--);
1327 return NULL;
1328 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01001329 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001330 int _mark = p->mark;
1331 { // statement+
1332 if (p->error_indicator) {
1333 D(p->level--);
1334 return NULL;
1335 }
1336 D(fprintf(stderr, "%*c> statements[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statement+"));
1337 asdl_seq * a;
1338 if (
1339 (a = _loop1_11_rule(p)) // statement+
1340 )
1341 {
1342 D(fprintf(stderr, "%*c+ statements[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "statement+"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001343 _res = ( asdl_stmt_seq * ) _PyPegen_seq_flatten ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001344 if (_res == NULL && PyErr_Occurred()) {
1345 p->error_indicator = 1;
1346 D(p->level--);
1347 return NULL;
1348 }
1349 goto done;
1350 }
1351 p->mark = _mark;
1352 D(fprintf(stderr, "%*c%s statements[%d-%d]: %s failed!\n", p->level, ' ',
1353 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statement+"));
1354 }
1355 _res = NULL;
1356 done:
1357 D(p->level--);
1358 return _res;
1359}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +00001360
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001361// statement: compound_stmt | simple_stmts
Pablo Galindoa5634c42020-09-16 19:42:00 +01001362static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001363statement_rule(Parser *p)
1364{
1365 D(p->level++);
1366 if (p->error_indicator) {
1367 D(p->level--);
1368 return NULL;
1369 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01001370 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001371 int _mark = p->mark;
1372 { // compound_stmt
1373 if (p->error_indicator) {
1374 D(p->level--);
1375 return NULL;
1376 }
1377 D(fprintf(stderr, "%*c> statement[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "compound_stmt"));
1378 stmt_ty a;
1379 if (
1380 (a = compound_stmt_rule(p)) // compound_stmt
1381 )
1382 {
1383 D(fprintf(stderr, "%*c+ statement[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "compound_stmt"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001384 _res = ( asdl_stmt_seq * ) _PyPegen_singleton_seq ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001385 if (_res == NULL && PyErr_Occurred()) {
1386 p->error_indicator = 1;
1387 D(p->level--);
1388 return NULL;
1389 }
1390 goto done;
1391 }
1392 p->mark = _mark;
1393 D(fprintf(stderr, "%*c%s statement[%d-%d]: %s failed!\n", p->level, ' ',
1394 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "compound_stmt"));
1395 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001396 { // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001397 if (p->error_indicator) {
1398 D(p->level--);
1399 return NULL;
1400 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001401 D(fprintf(stderr, "%*c> statement[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001402 asdl_stmt_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001403 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001404 (a = (asdl_stmt_seq*)simple_stmts_rule(p)) // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001405 )
1406 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001407 D(fprintf(stderr, "%*c+ statement[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001408 _res = a;
1409 if (_res == NULL && PyErr_Occurred()) {
1410 p->error_indicator = 1;
1411 D(p->level--);
1412 return NULL;
1413 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001414 goto done;
1415 }
1416 p->mark = _mark;
1417 D(fprintf(stderr, "%*c%s statement[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001418 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmts"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001419 }
1420 _res = NULL;
1421 done:
1422 D(p->level--);
1423 return _res;
1424}
1425
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001426// statement_newline: compound_stmt NEWLINE | simple_stmts | NEWLINE | $
Pablo Galindoa5634c42020-09-16 19:42:00 +01001427static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001428statement_newline_rule(Parser *p)
1429{
1430 D(p->level++);
1431 if (p->error_indicator) {
1432 D(p->level--);
1433 return NULL;
1434 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01001435 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001436 int _mark = p->mark;
1437 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
1438 p->error_indicator = 1;
1439 D(p->level--);
1440 return NULL;
1441 }
1442 int _start_lineno = p->tokens[_mark]->lineno;
1443 UNUSED(_start_lineno); // Only used by EXTRA macro
1444 int _start_col_offset = p->tokens[_mark]->col_offset;
1445 UNUSED(_start_col_offset); // Only used by EXTRA macro
1446 { // compound_stmt NEWLINE
1447 if (p->error_indicator) {
1448 D(p->level--);
1449 return NULL;
1450 }
1451 D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "compound_stmt NEWLINE"));
1452 stmt_ty a;
1453 Token * newline_var;
1454 if (
1455 (a = compound_stmt_rule(p)) // compound_stmt
1456 &&
1457 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
1458 )
1459 {
1460 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 +01001461 _res = ( asdl_stmt_seq * ) _PyPegen_singleton_seq ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001462 if (_res == NULL && PyErr_Occurred()) {
1463 p->error_indicator = 1;
1464 D(p->level--);
1465 return NULL;
1466 }
1467 goto done;
1468 }
1469 p->mark = _mark;
1470 D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
1471 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "compound_stmt NEWLINE"));
1472 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001473 { // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001474 if (p->error_indicator) {
1475 D(p->level--);
1476 return NULL;
1477 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001478 D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
1479 asdl_stmt_seq* simple_stmts_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001480 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001481 (simple_stmts_var = simple_stmts_rule(p)) // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001482 )
1483 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001484 D(fprintf(stderr, "%*c+ statement_newline[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
1485 _res = simple_stmts_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001486 goto done;
1487 }
1488 p->mark = _mark;
1489 D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001490 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmts"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001491 }
1492 { // NEWLINE
1493 if (p->error_indicator) {
1494 D(p->level--);
1495 return NULL;
1496 }
1497 D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
1498 Token * newline_var;
1499 if (
1500 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
1501 )
1502 {
1503 D(fprintf(stderr, "%*c+ statement_newline[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
1504 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1505 if (_token == NULL) {
1506 D(p->level--);
1507 return NULL;
1508 }
1509 int _end_lineno = _token->end_lineno;
1510 UNUSED(_end_lineno); // Only used by EXTRA macro
1511 int _end_col_offset = _token->end_col_offset;
1512 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02001513 _res = ( asdl_stmt_seq * ) _PyPegen_singleton_seq ( p , CHECK ( stmt_ty , _PyAST_Pass ( EXTRA ) ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001514 if (_res == NULL && PyErr_Occurred()) {
1515 p->error_indicator = 1;
1516 D(p->level--);
1517 return NULL;
1518 }
1519 goto done;
1520 }
1521 p->mark = _mark;
1522 D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
1523 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
1524 }
1525 { // $
1526 if (p->error_indicator) {
1527 D(p->level--);
1528 return NULL;
1529 }
1530 D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "$"));
1531 Token * endmarker_var;
1532 if (
1533 (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
1534 )
1535 {
1536 D(fprintf(stderr, "%*c+ statement_newline[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "$"));
1537 _res = _PyPegen_interactive_exit ( p );
1538 if (_res == NULL && PyErr_Occurred()) {
1539 p->error_indicator = 1;
1540 D(p->level--);
1541 return NULL;
1542 }
1543 goto done;
1544 }
1545 p->mark = _mark;
1546 D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
1547 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "$"));
1548 }
1549 _res = NULL;
1550 done:
1551 D(p->level--);
1552 return _res;
1553}
1554
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001555// simple_stmts: simple_stmt !';' NEWLINE | ';'.simple_stmt+ ';'? NEWLINE
Pablo Galindoa5634c42020-09-16 19:42:00 +01001556static asdl_stmt_seq*
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001557simple_stmts_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001558{
1559 D(p->level++);
1560 if (p->error_indicator) {
1561 D(p->level--);
1562 return NULL;
1563 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01001564 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001565 int _mark = p->mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001566 { // simple_stmt !';' NEWLINE
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001567 if (p->error_indicator) {
1568 D(p->level--);
1569 return NULL;
1570 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001571 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 +01001572 stmt_ty a;
1573 Token * newline_var;
1574 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001575 (a = simple_stmt_rule(p)) // simple_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001576 &&
1577 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 13) // token=';'
1578 &&
1579 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
1580 )
1581 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001582 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 +01001583 _res = ( asdl_stmt_seq * ) _PyPegen_singleton_seq ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001584 if (_res == NULL && PyErr_Occurred()) {
1585 p->error_indicator = 1;
1586 D(p->level--);
1587 return NULL;
1588 }
1589 goto done;
1590 }
1591 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001592 D(fprintf(stderr, "%*c%s simple_stmts[%d-%d]: %s failed!\n", p->level, ' ',
1593 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmt !';' NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001594 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001595 { // ';'.simple_stmt+ ';'? NEWLINE
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001596 if (p->error_indicator) {
1597 D(p->level--);
1598 return NULL;
1599 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001600 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 +01001601 void *_opt_var;
1602 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +01001603 asdl_stmt_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001604 Token * newline_var;
1605 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001606 (a = (asdl_stmt_seq*)_gather_12_rule(p)) // ';'.simple_stmt+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001607 &&
1608 (_opt_var = _PyPegen_expect_token(p, 13), 1) // ';'?
1609 &&
1610 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
1611 )
1612 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001613 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 +01001614 _res = a;
1615 if (_res == NULL && PyErr_Occurred()) {
1616 p->error_indicator = 1;
1617 D(p->level--);
1618 return NULL;
1619 }
1620 goto done;
1621 }
1622 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001623 D(fprintf(stderr, "%*c%s simple_stmts[%d-%d]: %s failed!\n", p->level, ' ',
1624 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "';'.simple_stmt+ ';'? NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001625 }
1626 _res = NULL;
1627 done:
1628 D(p->level--);
1629 return _res;
1630}
1631
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001632// simple_stmt:
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001633// | assignment
1634// | star_expressions
1635// | &'return' return_stmt
1636// | &('import' | 'from') import_stmt
1637// | &'raise' raise_stmt
1638// | 'pass'
1639// | &'del' del_stmt
1640// | &'yield' yield_stmt
1641// | &'assert' assert_stmt
1642// | 'break'
1643// | 'continue'
1644// | &'global' global_stmt
1645// | &'nonlocal' nonlocal_stmt
1646static stmt_ty
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001647simple_stmt_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001648{
1649 D(p->level++);
1650 if (p->error_indicator) {
1651 D(p->level--);
1652 return NULL;
1653 }
1654 stmt_ty _res = NULL;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001655 if (_PyPegen_is_memoized(p, simple_stmt_type, &_res)) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001656 D(p->level--);
1657 return _res;
1658 }
1659 int _mark = p->mark;
1660 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
1661 p->error_indicator = 1;
1662 D(p->level--);
1663 return NULL;
1664 }
1665 int _start_lineno = p->tokens[_mark]->lineno;
1666 UNUSED(_start_lineno); // Only used by EXTRA macro
1667 int _start_col_offset = p->tokens[_mark]->col_offset;
1668 UNUSED(_start_col_offset); // Only used by EXTRA macro
1669 { // assignment
1670 if (p->error_indicator) {
1671 D(p->level--);
1672 return NULL;
1673 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001674 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "assignment"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001675 stmt_ty assignment_var;
1676 if (
1677 (assignment_var = assignment_rule(p)) // assignment
1678 )
1679 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001680 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "assignment"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001681 _res = assignment_var;
1682 goto done;
1683 }
1684 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001685 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001686 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "assignment"));
1687 }
1688 { // star_expressions
1689 if (p->error_indicator) {
1690 D(p->level--);
1691 return NULL;
1692 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001693 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001694 expr_ty e;
1695 if (
1696 (e = star_expressions_rule(p)) // star_expressions
1697 )
1698 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001699 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 +01001700 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1701 if (_token == NULL) {
1702 D(p->level--);
1703 return NULL;
1704 }
1705 int _end_lineno = _token->end_lineno;
1706 UNUSED(_end_lineno); // Only used by EXTRA macro
1707 int _end_col_offset = _token->end_col_offset;
1708 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02001709 _res = _PyAST_Expr ( e , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001710 if (_res == NULL && PyErr_Occurred()) {
1711 p->error_indicator = 1;
1712 D(p->level--);
1713 return NULL;
1714 }
1715 goto done;
1716 }
1717 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001718 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001719 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
1720 }
1721 { // &'return' return_stmt
1722 if (p->error_indicator) {
1723 D(p->level--);
1724 return NULL;
1725 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001726 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 +01001727 stmt_ty return_stmt_var;
1728 if (
1729 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 500) // token='return'
1730 &&
1731 (return_stmt_var = return_stmt_rule(p)) // return_stmt
1732 )
1733 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001734 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 +01001735 _res = return_stmt_var;
1736 goto done;
1737 }
1738 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001739 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001740 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'return' return_stmt"));
1741 }
1742 { // &('import' | 'from') import_stmt
1743 if (p->error_indicator) {
1744 D(p->level--);
1745 return NULL;
1746 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001747 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 +01001748 stmt_ty import_stmt_var;
1749 if (
1750 _PyPegen_lookahead(1, _tmp_14_rule, p)
1751 &&
1752 (import_stmt_var = import_stmt_rule(p)) // import_stmt
1753 )
1754 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001755 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 +01001756 _res = import_stmt_var;
1757 goto done;
1758 }
1759 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001760 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001761 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('import' | 'from') import_stmt"));
1762 }
1763 { // &'raise' raise_stmt
1764 if (p->error_indicator) {
1765 D(p->level--);
1766 return NULL;
1767 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001768 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 +01001769 stmt_ty raise_stmt_var;
1770 if (
1771 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 501) // token='raise'
1772 &&
1773 (raise_stmt_var = raise_stmt_rule(p)) // raise_stmt
1774 )
1775 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001776 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 +01001777 _res = raise_stmt_var;
1778 goto done;
1779 }
1780 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001781 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001782 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'raise' raise_stmt"));
1783 }
1784 { // 'pass'
1785 if (p->error_indicator) {
1786 D(p->level--);
1787 return NULL;
1788 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001789 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'pass'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001790 Token * _keyword;
1791 if (
1792 (_keyword = _PyPegen_expect_token(p, 502)) // token='pass'
1793 )
1794 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001795 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'pass'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001796 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1797 if (_token == NULL) {
1798 D(p->level--);
1799 return NULL;
1800 }
1801 int _end_lineno = _token->end_lineno;
1802 UNUSED(_end_lineno); // Only used by EXTRA macro
1803 int _end_col_offset = _token->end_col_offset;
1804 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02001805 _res = _PyAST_Pass ( EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001806 if (_res == NULL && PyErr_Occurred()) {
1807 p->error_indicator = 1;
1808 D(p->level--);
1809 return NULL;
1810 }
1811 goto done;
1812 }
1813 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001814 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001815 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'pass'"));
1816 }
1817 { // &'del' del_stmt
1818 if (p->error_indicator) {
1819 D(p->level--);
1820 return NULL;
1821 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001822 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 +01001823 stmt_ty del_stmt_var;
1824 if (
1825 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 503) // token='del'
1826 &&
1827 (del_stmt_var = del_stmt_rule(p)) // del_stmt
1828 )
1829 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001830 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 +01001831 _res = del_stmt_var;
1832 goto done;
1833 }
1834 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001835 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001836 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'del' del_stmt"));
1837 }
1838 { // &'yield' yield_stmt
1839 if (p->error_indicator) {
1840 D(p->level--);
1841 return NULL;
1842 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001843 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 +01001844 stmt_ty yield_stmt_var;
1845 if (
1846 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 504) // token='yield'
1847 &&
1848 (yield_stmt_var = yield_stmt_rule(p)) // yield_stmt
1849 )
1850 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001851 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 +01001852 _res = yield_stmt_var;
1853 goto done;
1854 }
1855 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001856 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001857 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'yield' yield_stmt"));
1858 }
1859 { // &'assert' assert_stmt
1860 if (p->error_indicator) {
1861 D(p->level--);
1862 return NULL;
1863 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001864 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 +01001865 stmt_ty assert_stmt_var;
1866 if (
1867 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 505) // token='assert'
1868 &&
1869 (assert_stmt_var = assert_stmt_rule(p)) // assert_stmt
1870 )
1871 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001872 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 +01001873 _res = assert_stmt_var;
1874 goto done;
1875 }
1876 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001877 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001878 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'assert' assert_stmt"));
1879 }
1880 { // 'break'
1881 if (p->error_indicator) {
1882 D(p->level--);
1883 return NULL;
1884 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001885 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'break'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001886 Token * _keyword;
1887 if (
1888 (_keyword = _PyPegen_expect_token(p, 506)) // token='break'
1889 )
1890 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001891 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'break'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001892 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1893 if (_token == NULL) {
1894 D(p->level--);
1895 return NULL;
1896 }
1897 int _end_lineno = _token->end_lineno;
1898 UNUSED(_end_lineno); // Only used by EXTRA macro
1899 int _end_col_offset = _token->end_col_offset;
1900 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02001901 _res = _PyAST_Break ( EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001902 if (_res == NULL && PyErr_Occurred()) {
1903 p->error_indicator = 1;
1904 D(p->level--);
1905 return NULL;
1906 }
1907 goto done;
1908 }
1909 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001910 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001911 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'break'"));
1912 }
1913 { // 'continue'
1914 if (p->error_indicator) {
1915 D(p->level--);
1916 return NULL;
1917 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001918 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'continue'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001919 Token * _keyword;
1920 if (
1921 (_keyword = _PyPegen_expect_token(p, 507)) // token='continue'
1922 )
1923 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001924 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'continue'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001925 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1926 if (_token == NULL) {
1927 D(p->level--);
1928 return NULL;
1929 }
1930 int _end_lineno = _token->end_lineno;
1931 UNUSED(_end_lineno); // Only used by EXTRA macro
1932 int _end_col_offset = _token->end_col_offset;
1933 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02001934 _res = _PyAST_Continue ( EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001935 if (_res == NULL && PyErr_Occurred()) {
1936 p->error_indicator = 1;
1937 D(p->level--);
1938 return NULL;
1939 }
1940 goto done;
1941 }
1942 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001943 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001944 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'continue'"));
1945 }
1946 { // &'global' global_stmt
1947 if (p->error_indicator) {
1948 D(p->level--);
1949 return NULL;
1950 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001951 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 +01001952 stmt_ty global_stmt_var;
1953 if (
1954 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 508) // token='global'
1955 &&
1956 (global_stmt_var = global_stmt_rule(p)) // global_stmt
1957 )
1958 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001959 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'global' global_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001960 _res = global_stmt_var;
1961 goto done;
1962 }
1963 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001964 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001965 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'global' global_stmt"));
1966 }
1967 { // &'nonlocal' nonlocal_stmt
1968 if (p->error_indicator) {
1969 D(p->level--);
1970 return NULL;
1971 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001972 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 +01001973 stmt_ty nonlocal_stmt_var;
1974 if (
1975 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 509) // token='nonlocal'
1976 &&
1977 (nonlocal_stmt_var = nonlocal_stmt_rule(p)) // nonlocal_stmt
1978 )
1979 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001980 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 +01001981 _res = nonlocal_stmt_var;
1982 goto done;
1983 }
1984 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001985 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001986 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'nonlocal' nonlocal_stmt"));
1987 }
1988 _res = NULL;
1989 done:
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001990 _PyPegen_insert_memo(p, _mark, simple_stmt_type, _res);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001991 D(p->level--);
1992 return _res;
1993}
1994
1995// compound_stmt:
1996// | &('def' | '@' | ASYNC) function_def
1997// | &'if' if_stmt
1998// | &('class' | '@') class_def
1999// | &('with' | ASYNC) with_stmt
2000// | &('for' | ASYNC) for_stmt
2001// | &'try' try_stmt
2002// | &'while' while_stmt
Brandt Bucher145bf262021-02-26 14:51:55 -08002003// | match_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002004static stmt_ty
2005compound_stmt_rule(Parser *p)
2006{
2007 D(p->level++);
2008 if (p->error_indicator) {
2009 D(p->level--);
2010 return NULL;
2011 }
2012 stmt_ty _res = NULL;
2013 int _mark = p->mark;
2014 { // &('def' | '@' | ASYNC) function_def
2015 if (p->error_indicator) {
2016 D(p->level--);
2017 return NULL;
2018 }
2019 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('def' | '@' | ASYNC) function_def"));
2020 stmt_ty function_def_var;
2021 if (
2022 _PyPegen_lookahead(1, _tmp_15_rule, p)
2023 &&
2024 (function_def_var = function_def_rule(p)) // function_def
2025 )
2026 {
2027 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('def' | '@' | ASYNC) function_def"));
2028 _res = function_def_var;
2029 goto done;
2030 }
2031 p->mark = _mark;
2032 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2033 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('def' | '@' | ASYNC) function_def"));
2034 }
2035 { // &'if' if_stmt
2036 if (p->error_indicator) {
2037 D(p->level--);
2038 return NULL;
2039 }
2040 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'if' if_stmt"));
2041 stmt_ty if_stmt_var;
2042 if (
2043 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 510) // token='if'
2044 &&
2045 (if_stmt_var = if_stmt_rule(p)) // if_stmt
2046 )
2047 {
2048 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'if' if_stmt"));
2049 _res = if_stmt_var;
2050 goto done;
2051 }
2052 p->mark = _mark;
2053 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2054 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'if' if_stmt"));
2055 }
2056 { // &('class' | '@') class_def
2057 if (p->error_indicator) {
2058 D(p->level--);
2059 return NULL;
2060 }
2061 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('class' | '@') class_def"));
2062 stmt_ty class_def_var;
2063 if (
2064 _PyPegen_lookahead(1, _tmp_16_rule, p)
2065 &&
2066 (class_def_var = class_def_rule(p)) // class_def
2067 )
2068 {
2069 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('class' | '@') class_def"));
2070 _res = class_def_var;
2071 goto done;
2072 }
2073 p->mark = _mark;
2074 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2075 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('class' | '@') class_def"));
2076 }
2077 { // &('with' | ASYNC) with_stmt
2078 if (p->error_indicator) {
2079 D(p->level--);
2080 return NULL;
2081 }
2082 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('with' | ASYNC) with_stmt"));
2083 stmt_ty with_stmt_var;
2084 if (
2085 _PyPegen_lookahead(1, _tmp_17_rule, p)
2086 &&
2087 (with_stmt_var = with_stmt_rule(p)) // with_stmt
2088 )
2089 {
2090 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('with' | ASYNC) with_stmt"));
2091 _res = with_stmt_var;
2092 goto done;
2093 }
2094 p->mark = _mark;
2095 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2096 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('with' | ASYNC) with_stmt"));
2097 }
2098 { // &('for' | ASYNC) for_stmt
2099 if (p->error_indicator) {
2100 D(p->level--);
2101 return NULL;
2102 }
2103 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('for' | ASYNC) for_stmt"));
2104 stmt_ty for_stmt_var;
2105 if (
2106 _PyPegen_lookahead(1, _tmp_18_rule, p)
2107 &&
2108 (for_stmt_var = for_stmt_rule(p)) // for_stmt
2109 )
2110 {
2111 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('for' | ASYNC) for_stmt"));
2112 _res = for_stmt_var;
2113 goto done;
2114 }
2115 p->mark = _mark;
2116 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2117 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('for' | ASYNC) for_stmt"));
2118 }
2119 { // &'try' try_stmt
2120 if (p->error_indicator) {
2121 D(p->level--);
2122 return NULL;
2123 }
2124 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'try' try_stmt"));
2125 stmt_ty try_stmt_var;
2126 if (
2127 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 511) // token='try'
2128 &&
2129 (try_stmt_var = try_stmt_rule(p)) // try_stmt
2130 )
2131 {
2132 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'try' try_stmt"));
2133 _res = try_stmt_var;
2134 goto done;
2135 }
2136 p->mark = _mark;
2137 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2138 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'try' try_stmt"));
2139 }
2140 { // &'while' while_stmt
2141 if (p->error_indicator) {
2142 D(p->level--);
2143 return NULL;
2144 }
2145 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'while' while_stmt"));
2146 stmt_ty while_stmt_var;
2147 if (
2148 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 512) // token='while'
2149 &&
2150 (while_stmt_var = while_stmt_rule(p)) // while_stmt
2151 )
2152 {
2153 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'while' while_stmt"));
2154 _res = while_stmt_var;
2155 goto done;
2156 }
2157 p->mark = _mark;
2158 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2159 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'while' while_stmt"));
2160 }
Brandt Bucher145bf262021-02-26 14:51:55 -08002161 { // match_stmt
2162 if (p->error_indicator) {
2163 D(p->level--);
2164 return NULL;
2165 }
2166 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "match_stmt"));
2167 stmt_ty match_stmt_var;
2168 if (
2169 (match_stmt_var = match_stmt_rule(p)) // match_stmt
2170 )
2171 {
2172 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "match_stmt"));
2173 _res = match_stmt_var;
2174 goto done;
2175 }
2176 p->mark = _mark;
2177 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2178 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "match_stmt"));
2179 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002180 _res = NULL;
2181 done:
2182 D(p->level--);
2183 return _res;
2184}
2185
2186// assignment:
2187// | NAME ':' expression ['=' annotated_rhs]
2188// | ('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]
2189// | ((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002190// | single_target augassign ~ (yield_expr | star_expressions)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002191// | invalid_assignment
2192static stmt_ty
2193assignment_rule(Parser *p)
2194{
2195 D(p->level++);
2196 if (p->error_indicator) {
2197 D(p->level--);
2198 return NULL;
2199 }
2200 stmt_ty _res = NULL;
2201 int _mark = p->mark;
2202 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2203 p->error_indicator = 1;
2204 D(p->level--);
2205 return NULL;
2206 }
2207 int _start_lineno = p->tokens[_mark]->lineno;
2208 UNUSED(_start_lineno); // Only used by EXTRA macro
2209 int _start_col_offset = p->tokens[_mark]->col_offset;
2210 UNUSED(_start_col_offset); // Only used by EXTRA macro
2211 { // NAME ':' expression ['=' annotated_rhs]
2212 if (p->error_indicator) {
2213 D(p->level--);
2214 return NULL;
2215 }
2216 D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME ':' expression ['=' annotated_rhs]"));
2217 Token * _literal;
2218 expr_ty a;
2219 expr_ty b;
2220 void *c;
2221 if (
2222 (a = _PyPegen_name_token(p)) // NAME
2223 &&
2224 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
2225 &&
2226 (b = expression_rule(p)) // expression
2227 &&
2228 (c = _tmp_19_rule(p), 1) // ['=' annotated_rhs]
2229 )
2230 {
2231 D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME ':' expression ['=' annotated_rhs]"));
2232 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2233 if (_token == NULL) {
2234 D(p->level--);
2235 return NULL;
2236 }
2237 int _end_lineno = _token->end_lineno;
2238 UNUSED(_end_lineno); // Only used by EXTRA macro
2239 int _end_col_offset = _token->end_col_offset;
2240 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002241 _res = CHECK_VERSION ( stmt_ty , 6 , "Variable annotation syntax is" , _PyAST_AnnAssign ( CHECK ( expr_ty , _PyPegen_set_expr_context ( p , a , Store ) ) , b , c , 1 , EXTRA ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002242 if (_res == NULL && PyErr_Occurred()) {
2243 p->error_indicator = 1;
2244 D(p->level--);
2245 return NULL;
2246 }
2247 goto done;
2248 }
2249 p->mark = _mark;
2250 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
2251 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME ':' expression ['=' annotated_rhs]"));
2252 }
2253 { // ('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]
2254 if (p->error_indicator) {
2255 D(p->level--);
2256 return NULL;
2257 }
2258 D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]"));
2259 Token * _literal;
2260 void *a;
2261 expr_ty b;
2262 void *c;
2263 if (
2264 (a = _tmp_20_rule(p)) // '(' single_target ')' | single_subscript_attribute_target
2265 &&
2266 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
2267 &&
2268 (b = expression_rule(p)) // expression
2269 &&
2270 (c = _tmp_21_rule(p), 1) // ['=' annotated_rhs]
2271 )
2272 {
2273 D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]"));
2274 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2275 if (_token == NULL) {
2276 D(p->level--);
2277 return NULL;
2278 }
2279 int _end_lineno = _token->end_lineno;
2280 UNUSED(_end_lineno); // Only used by EXTRA macro
2281 int _end_col_offset = _token->end_col_offset;
2282 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002283 _res = CHECK_VERSION ( stmt_ty , 6 , "Variable annotations syntax is" , _PyAST_AnnAssign ( a , b , c , 0 , EXTRA ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002284 if (_res == NULL && PyErr_Occurred()) {
2285 p->error_indicator = 1;
2286 D(p->level--);
2287 return NULL;
2288 }
2289 goto done;
2290 }
2291 p->mark = _mark;
2292 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
2293 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]"));
2294 }
2295 { // ((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?
2296 if (p->error_indicator) {
2297 D(p->level--);
2298 return NULL;
2299 }
2300 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 +01002301 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002302 void *b;
2303 void *tc;
2304 if (
Pablo Galindoa5634c42020-09-16 19:42:00 +01002305 (a = (asdl_expr_seq*)_loop1_22_rule(p)) // ((star_targets '='))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002306 &&
2307 (b = _tmp_23_rule(p)) // yield_expr | star_expressions
2308 &&
2309 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 22) // token='='
2310 &&
2311 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
2312 )
2313 {
2314 D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?"));
2315 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2316 if (_token == NULL) {
2317 D(p->level--);
2318 return NULL;
2319 }
2320 int _end_lineno = _token->end_lineno;
2321 UNUSED(_end_lineno); // Only used by EXTRA macro
2322 int _end_col_offset = _token->end_col_offset;
2323 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002324 _res = _PyAST_Assign ( a , b , NEW_TYPE_COMMENT ( p , tc ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002325 if (_res == NULL && PyErr_Occurred()) {
2326 p->error_indicator = 1;
2327 D(p->level--);
2328 return NULL;
2329 }
2330 goto done;
2331 }
2332 p->mark = _mark;
2333 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
2334 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?"));
2335 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002336 { // single_target augassign ~ (yield_expr | star_expressions)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002337 if (p->error_indicator) {
2338 D(p->level--);
2339 return NULL;
2340 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002341 D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "single_target augassign ~ (yield_expr | star_expressions)"));
2342 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002343 expr_ty a;
2344 AugOperator* b;
2345 void *c;
2346 if (
2347 (a = single_target_rule(p)) // single_target
2348 &&
2349 (b = augassign_rule(p)) // augassign
2350 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002351 (_cut_var = 1)
2352 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002353 (c = _tmp_24_rule(p)) // yield_expr | star_expressions
2354 )
2355 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002356 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 +01002357 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2358 if (_token == NULL) {
2359 D(p->level--);
2360 return NULL;
2361 }
2362 int _end_lineno = _token->end_lineno;
2363 UNUSED(_end_lineno); // Only used by EXTRA macro
2364 int _end_col_offset = _token->end_col_offset;
2365 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002366 _res = _PyAST_AugAssign ( a , b -> kind , c , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002367 if (_res == NULL && PyErr_Occurred()) {
2368 p->error_indicator = 1;
2369 D(p->level--);
2370 return NULL;
2371 }
2372 goto done;
2373 }
2374 p->mark = _mark;
2375 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002376 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "single_target augassign ~ (yield_expr | star_expressions)"));
2377 if (_cut_var) {
2378 D(p->level--);
2379 return NULL;
2380 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002381 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02002382 if (p->call_invalid_rules) { // invalid_assignment
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002383 if (p->error_indicator) {
2384 D(p->level--);
2385 return NULL;
2386 }
2387 D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_assignment"));
2388 void *invalid_assignment_var;
2389 if (
2390 (invalid_assignment_var = invalid_assignment_rule(p)) // invalid_assignment
2391 )
2392 {
2393 D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_assignment"));
2394 _res = invalid_assignment_var;
2395 goto done;
2396 }
2397 p->mark = _mark;
2398 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
2399 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_assignment"));
2400 }
2401 _res = NULL;
2402 done:
2403 D(p->level--);
2404 return _res;
2405}
2406
2407// augassign:
2408// | '+='
2409// | '-='
2410// | '*='
2411// | '@='
2412// | '/='
2413// | '%='
2414// | '&='
2415// | '|='
2416// | '^='
2417// | '<<='
2418// | '>>='
2419// | '**='
2420// | '//='
2421static AugOperator*
2422augassign_rule(Parser *p)
2423{
2424 D(p->level++);
2425 if (p->error_indicator) {
2426 D(p->level--);
2427 return NULL;
2428 }
2429 AugOperator* _res = NULL;
2430 int _mark = p->mark;
2431 { // '+='
2432 if (p->error_indicator) {
2433 D(p->level--);
2434 return NULL;
2435 }
2436 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'+='"));
2437 Token * _literal;
2438 if (
2439 (_literal = _PyPegen_expect_token(p, 36)) // token='+='
2440 )
2441 {
2442 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'+='"));
2443 _res = _PyPegen_augoperator ( p , Add );
2444 if (_res == NULL && PyErr_Occurred()) {
2445 p->error_indicator = 1;
2446 D(p->level--);
2447 return NULL;
2448 }
2449 goto done;
2450 }
2451 p->mark = _mark;
2452 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2453 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+='"));
2454 }
2455 { // '-='
2456 if (p->error_indicator) {
2457 D(p->level--);
2458 return NULL;
2459 }
2460 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-='"));
2461 Token * _literal;
2462 if (
2463 (_literal = _PyPegen_expect_token(p, 37)) // token='-='
2464 )
2465 {
2466 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-='"));
2467 _res = _PyPegen_augoperator ( p , Sub );
2468 if (_res == NULL && PyErr_Occurred()) {
2469 p->error_indicator = 1;
2470 D(p->level--);
2471 return NULL;
2472 }
2473 goto done;
2474 }
2475 p->mark = _mark;
2476 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2477 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-='"));
2478 }
2479 { // '*='
2480 if (p->error_indicator) {
2481 D(p->level--);
2482 return NULL;
2483 }
2484 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*='"));
2485 Token * _literal;
2486 if (
2487 (_literal = _PyPegen_expect_token(p, 38)) // token='*='
2488 )
2489 {
2490 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*='"));
2491 _res = _PyPegen_augoperator ( p , Mult );
2492 if (_res == NULL && PyErr_Occurred()) {
2493 p->error_indicator = 1;
2494 D(p->level--);
2495 return NULL;
2496 }
2497 goto done;
2498 }
2499 p->mark = _mark;
2500 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2501 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*='"));
2502 }
2503 { // '@='
2504 if (p->error_indicator) {
2505 D(p->level--);
2506 return NULL;
2507 }
2508 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@='"));
2509 Token * _literal;
2510 if (
2511 (_literal = _PyPegen_expect_token(p, 50)) // token='@='
2512 )
2513 {
2514 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@='"));
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03002515 _res = CHECK_VERSION ( AugOperator * , 5 , "The '@' operator is" , _PyPegen_augoperator ( p , MatMult ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002516 if (_res == NULL && PyErr_Occurred()) {
2517 p->error_indicator = 1;
2518 D(p->level--);
2519 return NULL;
2520 }
2521 goto done;
2522 }
2523 p->mark = _mark;
2524 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2525 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@='"));
2526 }
2527 { // '/='
2528 if (p->error_indicator) {
2529 D(p->level--);
2530 return NULL;
2531 }
2532 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'/='"));
2533 Token * _literal;
2534 if (
2535 (_literal = _PyPegen_expect_token(p, 39)) // token='/='
2536 )
2537 {
2538 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'/='"));
2539 _res = _PyPegen_augoperator ( p , Div );
2540 if (_res == NULL && PyErr_Occurred()) {
2541 p->error_indicator = 1;
2542 D(p->level--);
2543 return NULL;
2544 }
2545 goto done;
2546 }
2547 p->mark = _mark;
2548 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2549 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'/='"));
2550 }
2551 { // '%='
2552 if (p->error_indicator) {
2553 D(p->level--);
2554 return NULL;
2555 }
2556 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'%='"));
2557 Token * _literal;
2558 if (
2559 (_literal = _PyPegen_expect_token(p, 40)) // token='%='
2560 )
2561 {
2562 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'%='"));
2563 _res = _PyPegen_augoperator ( p , Mod );
2564 if (_res == NULL && PyErr_Occurred()) {
2565 p->error_indicator = 1;
2566 D(p->level--);
2567 return NULL;
2568 }
2569 goto done;
2570 }
2571 p->mark = _mark;
2572 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2573 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'%='"));
2574 }
2575 { // '&='
2576 if (p->error_indicator) {
2577 D(p->level--);
2578 return NULL;
2579 }
2580 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'&='"));
2581 Token * _literal;
2582 if (
2583 (_literal = _PyPegen_expect_token(p, 41)) // token='&='
2584 )
2585 {
2586 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'&='"));
2587 _res = _PyPegen_augoperator ( p , BitAnd );
2588 if (_res == NULL && PyErr_Occurred()) {
2589 p->error_indicator = 1;
2590 D(p->level--);
2591 return NULL;
2592 }
2593 goto done;
2594 }
2595 p->mark = _mark;
2596 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2597 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'&='"));
2598 }
2599 { // '|='
2600 if (p->error_indicator) {
2601 D(p->level--);
2602 return NULL;
2603 }
2604 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'|='"));
2605 Token * _literal;
2606 if (
2607 (_literal = _PyPegen_expect_token(p, 42)) // token='|='
2608 )
2609 {
2610 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'|='"));
2611 _res = _PyPegen_augoperator ( p , BitOr );
2612 if (_res == NULL && PyErr_Occurred()) {
2613 p->error_indicator = 1;
2614 D(p->level--);
2615 return NULL;
2616 }
2617 goto done;
2618 }
2619 p->mark = _mark;
2620 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2621 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'|='"));
2622 }
2623 { // '^='
2624 if (p->error_indicator) {
2625 D(p->level--);
2626 return NULL;
2627 }
2628 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'^='"));
2629 Token * _literal;
2630 if (
2631 (_literal = _PyPegen_expect_token(p, 43)) // token='^='
2632 )
2633 {
2634 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'^='"));
2635 _res = _PyPegen_augoperator ( p , BitXor );
2636 if (_res == NULL && PyErr_Occurred()) {
2637 p->error_indicator = 1;
2638 D(p->level--);
2639 return NULL;
2640 }
2641 goto done;
2642 }
2643 p->mark = _mark;
2644 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2645 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'^='"));
2646 }
2647 { // '<<='
2648 if (p->error_indicator) {
2649 D(p->level--);
2650 return NULL;
2651 }
2652 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'<<='"));
2653 Token * _literal;
2654 if (
2655 (_literal = _PyPegen_expect_token(p, 44)) // token='<<='
2656 )
2657 {
2658 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'<<='"));
2659 _res = _PyPegen_augoperator ( p , LShift );
2660 if (_res == NULL && PyErr_Occurred()) {
2661 p->error_indicator = 1;
2662 D(p->level--);
2663 return NULL;
2664 }
2665 goto done;
2666 }
2667 p->mark = _mark;
2668 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2669 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'<<='"));
2670 }
2671 { // '>>='
2672 if (p->error_indicator) {
2673 D(p->level--);
2674 return NULL;
2675 }
2676 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'>>='"));
2677 Token * _literal;
2678 if (
2679 (_literal = _PyPegen_expect_token(p, 45)) // token='>>='
2680 )
2681 {
2682 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'>>='"));
2683 _res = _PyPegen_augoperator ( p , RShift );
2684 if (_res == NULL && PyErr_Occurred()) {
2685 p->error_indicator = 1;
2686 D(p->level--);
2687 return NULL;
2688 }
2689 goto done;
2690 }
2691 p->mark = _mark;
2692 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2693 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'>>='"));
2694 }
2695 { // '**='
2696 if (p->error_indicator) {
2697 D(p->level--);
2698 return NULL;
2699 }
2700 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**='"));
2701 Token * _literal;
2702 if (
2703 (_literal = _PyPegen_expect_token(p, 46)) // token='**='
2704 )
2705 {
2706 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**='"));
2707 _res = _PyPegen_augoperator ( p , Pow );
2708 if (_res == NULL && PyErr_Occurred()) {
2709 p->error_indicator = 1;
2710 D(p->level--);
2711 return NULL;
2712 }
2713 goto done;
2714 }
2715 p->mark = _mark;
2716 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2717 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**='"));
2718 }
2719 { // '//='
2720 if (p->error_indicator) {
2721 D(p->level--);
2722 return NULL;
2723 }
2724 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'//='"));
2725 Token * _literal;
2726 if (
2727 (_literal = _PyPegen_expect_token(p, 48)) // token='//='
2728 )
2729 {
2730 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'//='"));
2731 _res = _PyPegen_augoperator ( p , FloorDiv );
2732 if (_res == NULL && PyErr_Occurred()) {
2733 p->error_indicator = 1;
2734 D(p->level--);
2735 return NULL;
2736 }
2737 goto done;
2738 }
2739 p->mark = _mark;
2740 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2741 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'//='"));
2742 }
2743 _res = NULL;
2744 done:
2745 D(p->level--);
2746 return _res;
2747}
2748
2749// global_stmt: 'global' ','.NAME+
2750static stmt_ty
2751global_stmt_rule(Parser *p)
2752{
2753 D(p->level++);
2754 if (p->error_indicator) {
2755 D(p->level--);
2756 return NULL;
2757 }
2758 stmt_ty _res = NULL;
2759 int _mark = p->mark;
2760 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2761 p->error_indicator = 1;
2762 D(p->level--);
2763 return NULL;
2764 }
2765 int _start_lineno = p->tokens[_mark]->lineno;
2766 UNUSED(_start_lineno); // Only used by EXTRA macro
2767 int _start_col_offset = p->tokens[_mark]->col_offset;
2768 UNUSED(_start_col_offset); // Only used by EXTRA macro
2769 { // 'global' ','.NAME+
2770 if (p->error_indicator) {
2771 D(p->level--);
2772 return NULL;
2773 }
2774 D(fprintf(stderr, "%*c> global_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'global' ','.NAME+"));
2775 Token * _keyword;
Pablo Galindoa5634c42020-09-16 19:42:00 +01002776 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002777 if (
2778 (_keyword = _PyPegen_expect_token(p, 508)) // token='global'
2779 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01002780 (a = (asdl_expr_seq*)_gather_25_rule(p)) // ','.NAME+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002781 )
2782 {
2783 D(fprintf(stderr, "%*c+ global_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'global' ','.NAME+"));
2784 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2785 if (_token == NULL) {
2786 D(p->level--);
2787 return NULL;
2788 }
2789 int _end_lineno = _token->end_lineno;
2790 UNUSED(_end_lineno); // Only used by EXTRA macro
2791 int _end_col_offset = _token->end_col_offset;
2792 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002793 _res = _PyAST_Global ( CHECK ( asdl_identifier_seq * , _PyPegen_map_names_to_ids ( p , a ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002794 if (_res == NULL && PyErr_Occurred()) {
2795 p->error_indicator = 1;
2796 D(p->level--);
2797 return NULL;
2798 }
2799 goto done;
2800 }
2801 p->mark = _mark;
2802 D(fprintf(stderr, "%*c%s global_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2803 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'global' ','.NAME+"));
2804 }
2805 _res = NULL;
2806 done:
2807 D(p->level--);
2808 return _res;
2809}
2810
2811// nonlocal_stmt: 'nonlocal' ','.NAME+
2812static stmt_ty
2813nonlocal_stmt_rule(Parser *p)
2814{
2815 D(p->level++);
2816 if (p->error_indicator) {
2817 D(p->level--);
2818 return NULL;
2819 }
2820 stmt_ty _res = NULL;
2821 int _mark = p->mark;
2822 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2823 p->error_indicator = 1;
2824 D(p->level--);
2825 return NULL;
2826 }
2827 int _start_lineno = p->tokens[_mark]->lineno;
2828 UNUSED(_start_lineno); // Only used by EXTRA macro
2829 int _start_col_offset = p->tokens[_mark]->col_offset;
2830 UNUSED(_start_col_offset); // Only used by EXTRA macro
2831 { // 'nonlocal' ','.NAME+
2832 if (p->error_indicator) {
2833 D(p->level--);
2834 return NULL;
2835 }
2836 D(fprintf(stderr, "%*c> nonlocal_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'nonlocal' ','.NAME+"));
2837 Token * _keyword;
Pablo Galindoa5634c42020-09-16 19:42:00 +01002838 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002839 if (
2840 (_keyword = _PyPegen_expect_token(p, 509)) // token='nonlocal'
2841 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01002842 (a = (asdl_expr_seq*)_gather_27_rule(p)) // ','.NAME+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002843 )
2844 {
2845 D(fprintf(stderr, "%*c+ nonlocal_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'nonlocal' ','.NAME+"));
2846 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2847 if (_token == NULL) {
2848 D(p->level--);
2849 return NULL;
2850 }
2851 int _end_lineno = _token->end_lineno;
2852 UNUSED(_end_lineno); // Only used by EXTRA macro
2853 int _end_col_offset = _token->end_col_offset;
2854 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002855 _res = _PyAST_Nonlocal ( CHECK ( asdl_identifier_seq * , _PyPegen_map_names_to_ids ( p , a ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002856 if (_res == NULL && PyErr_Occurred()) {
2857 p->error_indicator = 1;
2858 D(p->level--);
2859 return NULL;
2860 }
2861 goto done;
2862 }
2863 p->mark = _mark;
2864 D(fprintf(stderr, "%*c%s nonlocal_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2865 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'nonlocal' ','.NAME+"));
2866 }
2867 _res = NULL;
2868 done:
2869 D(p->level--);
2870 return _res;
2871}
2872
2873// yield_stmt: yield_expr
2874static stmt_ty
2875yield_stmt_rule(Parser *p)
2876{
2877 D(p->level++);
2878 if (p->error_indicator) {
2879 D(p->level--);
2880 return NULL;
2881 }
2882 stmt_ty _res = NULL;
2883 int _mark = p->mark;
2884 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2885 p->error_indicator = 1;
2886 D(p->level--);
2887 return NULL;
2888 }
2889 int _start_lineno = p->tokens[_mark]->lineno;
2890 UNUSED(_start_lineno); // Only used by EXTRA macro
2891 int _start_col_offset = p->tokens[_mark]->col_offset;
2892 UNUSED(_start_col_offset); // Only used by EXTRA macro
2893 { // yield_expr
2894 if (p->error_indicator) {
2895 D(p->level--);
2896 return NULL;
2897 }
2898 D(fprintf(stderr, "%*c> yield_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
2899 expr_ty y;
2900 if (
2901 (y = yield_expr_rule(p)) // yield_expr
2902 )
2903 {
2904 D(fprintf(stderr, "%*c+ yield_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
2905 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2906 if (_token == NULL) {
2907 D(p->level--);
2908 return NULL;
2909 }
2910 int _end_lineno = _token->end_lineno;
2911 UNUSED(_end_lineno); // Only used by EXTRA macro
2912 int _end_col_offset = _token->end_col_offset;
2913 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002914 _res = _PyAST_Expr ( y , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002915 if (_res == NULL && PyErr_Occurred()) {
2916 p->error_indicator = 1;
2917 D(p->level--);
2918 return NULL;
2919 }
2920 goto done;
2921 }
2922 p->mark = _mark;
2923 D(fprintf(stderr, "%*c%s yield_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2924 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
2925 }
2926 _res = NULL;
2927 done:
2928 D(p->level--);
2929 return _res;
2930}
2931
2932// assert_stmt: 'assert' expression [',' expression]
2933static stmt_ty
2934assert_stmt_rule(Parser *p)
2935{
2936 D(p->level++);
2937 if (p->error_indicator) {
2938 D(p->level--);
2939 return NULL;
2940 }
2941 stmt_ty _res = NULL;
2942 int _mark = p->mark;
2943 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2944 p->error_indicator = 1;
2945 D(p->level--);
2946 return NULL;
2947 }
2948 int _start_lineno = p->tokens[_mark]->lineno;
2949 UNUSED(_start_lineno); // Only used by EXTRA macro
2950 int _start_col_offset = p->tokens[_mark]->col_offset;
2951 UNUSED(_start_col_offset); // Only used by EXTRA macro
2952 { // 'assert' expression [',' expression]
2953 if (p->error_indicator) {
2954 D(p->level--);
2955 return NULL;
2956 }
2957 D(fprintf(stderr, "%*c> assert_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'assert' expression [',' expression]"));
2958 Token * _keyword;
2959 expr_ty a;
2960 void *b;
2961 if (
2962 (_keyword = _PyPegen_expect_token(p, 505)) // token='assert'
2963 &&
2964 (a = expression_rule(p)) // expression
2965 &&
2966 (b = _tmp_29_rule(p), 1) // [',' expression]
2967 )
2968 {
2969 D(fprintf(stderr, "%*c+ assert_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'assert' expression [',' expression]"));
2970 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2971 if (_token == NULL) {
2972 D(p->level--);
2973 return NULL;
2974 }
2975 int _end_lineno = _token->end_lineno;
2976 UNUSED(_end_lineno); // Only used by EXTRA macro
2977 int _end_col_offset = _token->end_col_offset;
2978 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002979 _res = _PyAST_Assert ( a , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002980 if (_res == NULL && PyErr_Occurred()) {
2981 p->error_indicator = 1;
2982 D(p->level--);
2983 return NULL;
2984 }
2985 goto done;
2986 }
2987 p->mark = _mark;
2988 D(fprintf(stderr, "%*c%s assert_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2989 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'assert' expression [',' expression]"));
2990 }
2991 _res = NULL;
2992 done:
2993 D(p->level--);
2994 return _res;
2995}
2996
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002997// del_stmt: 'del' del_targets &(';' | NEWLINE) | invalid_del_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002998static stmt_ty
2999del_stmt_rule(Parser *p)
3000{
3001 D(p->level++);
3002 if (p->error_indicator) {
3003 D(p->level--);
3004 return NULL;
3005 }
3006 stmt_ty _res = NULL;
3007 int _mark = p->mark;
3008 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3009 p->error_indicator = 1;
3010 D(p->level--);
3011 return NULL;
3012 }
3013 int _start_lineno = p->tokens[_mark]->lineno;
3014 UNUSED(_start_lineno); // Only used by EXTRA macro
3015 int _start_col_offset = p->tokens[_mark]->col_offset;
3016 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003017 { // 'del' del_targets &(';' | NEWLINE)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003018 if (p->error_indicator) {
3019 D(p->level--);
3020 return NULL;
3021 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003022 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 +01003023 Token * _keyword;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003024 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003025 if (
3026 (_keyword = _PyPegen_expect_token(p, 503)) // token='del'
3027 &&
3028 (a = del_targets_rule(p)) // del_targets
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003029 &&
3030 _PyPegen_lookahead(1, _tmp_30_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003031 )
3032 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003033 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 +01003034 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3035 if (_token == NULL) {
3036 D(p->level--);
3037 return NULL;
3038 }
3039 int _end_lineno = _token->end_lineno;
3040 UNUSED(_end_lineno); // Only used by EXTRA macro
3041 int _end_col_offset = _token->end_col_offset;
3042 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02003043 _res = _PyAST_Delete ( a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003044 if (_res == NULL && PyErr_Occurred()) {
3045 p->error_indicator = 1;
3046 D(p->level--);
3047 return NULL;
3048 }
3049 goto done;
3050 }
3051 p->mark = _mark;
3052 D(fprintf(stderr, "%*c%s del_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003053 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'del' del_targets &(';' | NEWLINE)"));
3054 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02003055 if (p->call_invalid_rules) { // invalid_del_stmt
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003056 if (p->error_indicator) {
3057 D(p->level--);
3058 return NULL;
3059 }
3060 D(fprintf(stderr, "%*c> del_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_del_stmt"));
3061 void *invalid_del_stmt_var;
3062 if (
3063 (invalid_del_stmt_var = invalid_del_stmt_rule(p)) // invalid_del_stmt
3064 )
3065 {
3066 D(fprintf(stderr, "%*c+ del_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_del_stmt"));
3067 _res = invalid_del_stmt_var;
3068 goto done;
3069 }
3070 p->mark = _mark;
3071 D(fprintf(stderr, "%*c%s del_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3072 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_del_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003073 }
3074 _res = NULL;
3075 done:
3076 D(p->level--);
3077 return _res;
3078}
3079
3080// import_stmt: import_name | import_from
3081static stmt_ty
3082import_stmt_rule(Parser *p)
3083{
3084 D(p->level++);
3085 if (p->error_indicator) {
3086 D(p->level--);
3087 return NULL;
3088 }
3089 stmt_ty _res = NULL;
3090 int _mark = p->mark;
3091 { // import_name
3092 if (p->error_indicator) {
3093 D(p->level--);
3094 return NULL;
3095 }
3096 D(fprintf(stderr, "%*c> import_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "import_name"));
3097 stmt_ty import_name_var;
3098 if (
3099 (import_name_var = import_name_rule(p)) // import_name
3100 )
3101 {
3102 D(fprintf(stderr, "%*c+ import_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_name"));
3103 _res = import_name_var;
3104 goto done;
3105 }
3106 p->mark = _mark;
3107 D(fprintf(stderr, "%*c%s import_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3108 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_name"));
3109 }
3110 { // import_from
3111 if (p->error_indicator) {
3112 D(p->level--);
3113 return NULL;
3114 }
3115 D(fprintf(stderr, "%*c> import_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "import_from"));
3116 stmt_ty import_from_var;
3117 if (
3118 (import_from_var = import_from_rule(p)) // import_from
3119 )
3120 {
3121 D(fprintf(stderr, "%*c+ import_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_from"));
3122 _res = import_from_var;
3123 goto done;
3124 }
3125 p->mark = _mark;
3126 D(fprintf(stderr, "%*c%s import_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3127 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from"));
3128 }
3129 _res = NULL;
3130 done:
3131 D(p->level--);
3132 return _res;
3133}
3134
3135// import_name: 'import' dotted_as_names
3136static stmt_ty
3137import_name_rule(Parser *p)
3138{
3139 D(p->level++);
3140 if (p->error_indicator) {
3141 D(p->level--);
3142 return NULL;
3143 }
3144 stmt_ty _res = NULL;
3145 int _mark = p->mark;
3146 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3147 p->error_indicator = 1;
3148 D(p->level--);
3149 return NULL;
3150 }
3151 int _start_lineno = p->tokens[_mark]->lineno;
3152 UNUSED(_start_lineno); // Only used by EXTRA macro
3153 int _start_col_offset = p->tokens[_mark]->col_offset;
3154 UNUSED(_start_col_offset); // Only used by EXTRA macro
3155 { // 'import' dotted_as_names
3156 if (p->error_indicator) {
3157 D(p->level--);
3158 return NULL;
3159 }
3160 D(fprintf(stderr, "%*c> import_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'import' dotted_as_names"));
3161 Token * _keyword;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003162 asdl_alias_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003163 if (
3164 (_keyword = _PyPegen_expect_token(p, 513)) // token='import'
3165 &&
3166 (a = dotted_as_names_rule(p)) // dotted_as_names
3167 )
3168 {
3169 D(fprintf(stderr, "%*c+ import_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'import' dotted_as_names"));
3170 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3171 if (_token == NULL) {
3172 D(p->level--);
3173 return NULL;
3174 }
3175 int _end_lineno = _token->end_lineno;
3176 UNUSED(_end_lineno); // Only used by EXTRA macro
3177 int _end_col_offset = _token->end_col_offset;
3178 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02003179 _res = _PyAST_Import ( a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003180 if (_res == NULL && PyErr_Occurred()) {
3181 p->error_indicator = 1;
3182 D(p->level--);
3183 return NULL;
3184 }
3185 goto done;
3186 }
3187 p->mark = _mark;
3188 D(fprintf(stderr, "%*c%s import_name[%d-%d]: %s failed!\n", p->level, ' ',
3189 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'import' dotted_as_names"));
3190 }
3191 _res = NULL;
3192 done:
3193 D(p->level--);
3194 return _res;
3195}
3196
3197// import_from:
3198// | 'from' (('.' | '...'))* dotted_name 'import' import_from_targets
3199// | 'from' (('.' | '...'))+ 'import' import_from_targets
3200static stmt_ty
3201import_from_rule(Parser *p)
3202{
3203 D(p->level++);
3204 if (p->error_indicator) {
3205 D(p->level--);
3206 return NULL;
3207 }
3208 stmt_ty _res = NULL;
3209 int _mark = p->mark;
3210 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3211 p->error_indicator = 1;
3212 D(p->level--);
3213 return NULL;
3214 }
3215 int _start_lineno = p->tokens[_mark]->lineno;
3216 UNUSED(_start_lineno); // Only used by EXTRA macro
3217 int _start_col_offset = p->tokens[_mark]->col_offset;
3218 UNUSED(_start_col_offset); // Only used by EXTRA macro
3219 { // 'from' (('.' | '...'))* dotted_name 'import' import_from_targets
3220 if (p->error_indicator) {
3221 D(p->level--);
3222 return NULL;
3223 }
3224 D(fprintf(stderr, "%*c> import_from[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from' (('.' | '...'))* dotted_name 'import' import_from_targets"));
3225 Token * _keyword;
3226 Token * _keyword_1;
3227 asdl_seq * a;
3228 expr_ty b;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003229 asdl_alias_seq* c;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003230 if (
3231 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
3232 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003233 (a = _loop0_31_rule(p)) // (('.' | '...'))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003234 &&
3235 (b = dotted_name_rule(p)) // dotted_name
3236 &&
3237 (_keyword_1 = _PyPegen_expect_token(p, 513)) // token='import'
3238 &&
3239 (c = import_from_targets_rule(p)) // import_from_targets
3240 )
3241 {
3242 D(fprintf(stderr, "%*c+ import_from[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'from' (('.' | '...'))* dotted_name 'import' import_from_targets"));
3243 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3244 if (_token == NULL) {
3245 D(p->level--);
3246 return NULL;
3247 }
3248 int _end_lineno = _token->end_lineno;
3249 UNUSED(_end_lineno); // Only used by EXTRA macro
3250 int _end_col_offset = _token->end_col_offset;
3251 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02003252 _res = _PyAST_ImportFrom ( b -> v . Name . id , c , _PyPegen_seq_count_dots ( a ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003253 if (_res == NULL && PyErr_Occurred()) {
3254 p->error_indicator = 1;
3255 D(p->level--);
3256 return NULL;
3257 }
3258 goto done;
3259 }
3260 p->mark = _mark;
3261 D(fprintf(stderr, "%*c%s import_from[%d-%d]: %s failed!\n", p->level, ' ',
3262 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from' (('.' | '...'))* dotted_name 'import' import_from_targets"));
3263 }
3264 { // 'from' (('.' | '...'))+ 'import' import_from_targets
3265 if (p->error_indicator) {
3266 D(p->level--);
3267 return NULL;
3268 }
3269 D(fprintf(stderr, "%*c> import_from[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from' (('.' | '...'))+ 'import' import_from_targets"));
3270 Token * _keyword;
3271 Token * _keyword_1;
3272 asdl_seq * a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003273 asdl_alias_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003274 if (
3275 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
3276 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003277 (a = _loop1_32_rule(p)) // (('.' | '...'))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003278 &&
3279 (_keyword_1 = _PyPegen_expect_token(p, 513)) // token='import'
3280 &&
3281 (b = import_from_targets_rule(p)) // import_from_targets
3282 )
3283 {
3284 D(fprintf(stderr, "%*c+ import_from[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'from' (('.' | '...'))+ 'import' import_from_targets"));
3285 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3286 if (_token == NULL) {
3287 D(p->level--);
3288 return NULL;
3289 }
3290 int _end_lineno = _token->end_lineno;
3291 UNUSED(_end_lineno); // Only used by EXTRA macro
3292 int _end_col_offset = _token->end_col_offset;
3293 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02003294 _res = _PyAST_ImportFrom ( NULL , b , _PyPegen_seq_count_dots ( a ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003295 if (_res == NULL && PyErr_Occurred()) {
3296 p->error_indicator = 1;
3297 D(p->level--);
3298 return NULL;
3299 }
3300 goto done;
3301 }
3302 p->mark = _mark;
3303 D(fprintf(stderr, "%*c%s import_from[%d-%d]: %s failed!\n", p->level, ' ',
3304 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from' (('.' | '...'))+ 'import' import_from_targets"));
3305 }
3306 _res = NULL;
3307 done:
3308 D(p->level--);
3309 return _res;
3310}
3311
3312// import_from_targets:
3313// | '(' import_from_as_names ','? ')'
3314// | import_from_as_names !','
3315// | '*'
3316// | invalid_import_from_targets
Pablo Galindoa5634c42020-09-16 19:42:00 +01003317static asdl_alias_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003318import_from_targets_rule(Parser *p)
3319{
3320 D(p->level++);
3321 if (p->error_indicator) {
3322 D(p->level--);
3323 return NULL;
3324 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01003325 asdl_alias_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003326 int _mark = p->mark;
Matthew Suozzo75a06f02021-04-10 16:56:28 -04003327 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3328 p->error_indicator = 1;
3329 D(p->level--);
3330 return NULL;
3331 }
3332 int _start_lineno = p->tokens[_mark]->lineno;
3333 UNUSED(_start_lineno); // Only used by EXTRA macro
3334 int _start_col_offset = p->tokens[_mark]->col_offset;
3335 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003336 { // '(' import_from_as_names ','? ')'
3337 if (p->error_indicator) {
3338 D(p->level--);
3339 return NULL;
3340 }
3341 D(fprintf(stderr, "%*c> import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' import_from_as_names ','? ')'"));
3342 Token * _literal;
3343 Token * _literal_1;
3344 void *_opt_var;
3345 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +01003346 asdl_alias_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003347 if (
3348 (_literal = _PyPegen_expect_token(p, 7)) // token='('
3349 &&
3350 (a = import_from_as_names_rule(p)) // import_from_as_names
3351 &&
3352 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
3353 &&
3354 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
3355 )
3356 {
3357 D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' import_from_as_names ','? ')'"));
3358 _res = a;
3359 if (_res == NULL && PyErr_Occurred()) {
3360 p->error_indicator = 1;
3361 D(p->level--);
3362 return NULL;
3363 }
3364 goto done;
3365 }
3366 p->mark = _mark;
3367 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3368 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' import_from_as_names ','? ')'"));
3369 }
3370 { // import_from_as_names !','
3371 if (p->error_indicator) {
3372 D(p->level--);
3373 return NULL;
3374 }
3375 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 +01003376 asdl_alias_seq* import_from_as_names_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003377 if (
3378 (import_from_as_names_var = import_from_as_names_rule(p)) // import_from_as_names
3379 &&
3380 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 12) // token=','
3381 )
3382 {
3383 D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_from_as_names !','"));
3384 _res = import_from_as_names_var;
3385 goto done;
3386 }
3387 p->mark = _mark;
3388 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3389 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from_as_names !','"));
3390 }
3391 { // '*'
3392 if (p->error_indicator) {
3393 D(p->level--);
3394 return NULL;
3395 }
3396 D(fprintf(stderr, "%*c> import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*'"));
3397 Token * _literal;
3398 if (
3399 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
3400 )
3401 {
3402 D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*'"));
Matthew Suozzo75a06f02021-04-10 16:56:28 -04003403 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3404 if (_token == NULL) {
3405 D(p->level--);
3406 return NULL;
3407 }
3408 int _end_lineno = _token->end_lineno;
3409 UNUSED(_end_lineno); // Only used by EXTRA macro
3410 int _end_col_offset = _token->end_col_offset;
3411 UNUSED(_end_col_offset); // Only used by EXTRA macro
3412 _res = ( asdl_alias_seq * ) _PyPegen_singleton_seq ( p , CHECK ( alias_ty , _PyPegen_alias_for_star ( p , EXTRA ) ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003413 if (_res == NULL && PyErr_Occurred()) {
3414 p->error_indicator = 1;
3415 D(p->level--);
3416 return NULL;
3417 }
3418 goto done;
3419 }
3420 p->mark = _mark;
3421 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3422 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*'"));
3423 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02003424 if (p->call_invalid_rules) { // invalid_import_from_targets
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003425 if (p->error_indicator) {
3426 D(p->level--);
3427 return NULL;
3428 }
3429 D(fprintf(stderr, "%*c> import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_import_from_targets"));
3430 void *invalid_import_from_targets_var;
3431 if (
3432 (invalid_import_from_targets_var = invalid_import_from_targets_rule(p)) // invalid_import_from_targets
3433 )
3434 {
3435 D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_import_from_targets"));
3436 _res = invalid_import_from_targets_var;
3437 goto done;
3438 }
3439 p->mark = _mark;
3440 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3441 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_import_from_targets"));
3442 }
3443 _res = NULL;
3444 done:
3445 D(p->level--);
3446 return _res;
3447}
3448
3449// import_from_as_names: ','.import_from_as_name+
Pablo Galindoa5634c42020-09-16 19:42:00 +01003450static asdl_alias_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003451import_from_as_names_rule(Parser *p)
3452{
3453 D(p->level++);
3454 if (p->error_indicator) {
3455 D(p->level--);
3456 return NULL;
3457 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01003458 asdl_alias_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003459 int _mark = p->mark;
3460 { // ','.import_from_as_name+
3461 if (p->error_indicator) {
3462 D(p->level--);
3463 return NULL;
3464 }
3465 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 +01003466 asdl_alias_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003467 if (
Pablo Galindoa5634c42020-09-16 19:42:00 +01003468 (a = (asdl_alias_seq*)_gather_33_rule(p)) // ','.import_from_as_name+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003469 )
3470 {
3471 D(fprintf(stderr, "%*c+ import_from_as_names[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.import_from_as_name+"));
3472 _res = a;
3473 if (_res == NULL && PyErr_Occurred()) {
3474 p->error_indicator = 1;
3475 D(p->level--);
3476 return NULL;
3477 }
3478 goto done;
3479 }
3480 p->mark = _mark;
3481 D(fprintf(stderr, "%*c%s import_from_as_names[%d-%d]: %s failed!\n", p->level, ' ',
3482 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.import_from_as_name+"));
3483 }
3484 _res = NULL;
3485 done:
3486 D(p->level--);
3487 return _res;
3488}
3489
3490// import_from_as_name: NAME ['as' NAME]
3491static alias_ty
3492import_from_as_name_rule(Parser *p)
3493{
3494 D(p->level++);
3495 if (p->error_indicator) {
3496 D(p->level--);
3497 return NULL;
3498 }
3499 alias_ty _res = NULL;
3500 int _mark = p->mark;
Matthew Suozzo75a06f02021-04-10 16:56:28 -04003501 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3502 p->error_indicator = 1;
3503 D(p->level--);
3504 return NULL;
3505 }
3506 int _start_lineno = p->tokens[_mark]->lineno;
3507 UNUSED(_start_lineno); // Only used by EXTRA macro
3508 int _start_col_offset = p->tokens[_mark]->col_offset;
3509 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003510 { // NAME ['as' NAME]
3511 if (p->error_indicator) {
3512 D(p->level--);
3513 return NULL;
3514 }
3515 D(fprintf(stderr, "%*c> import_from_as_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME ['as' NAME]"));
3516 expr_ty a;
3517 void *b;
3518 if (
3519 (a = _PyPegen_name_token(p)) // NAME
3520 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003521 (b = _tmp_35_rule(p), 1) // ['as' NAME]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003522 )
3523 {
3524 D(fprintf(stderr, "%*c+ import_from_as_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME ['as' NAME]"));
Matthew Suozzo75a06f02021-04-10 16:56:28 -04003525 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3526 if (_token == NULL) {
3527 D(p->level--);
3528 return NULL;
3529 }
3530 int _end_lineno = _token->end_lineno;
3531 UNUSED(_end_lineno); // Only used by EXTRA macro
3532 int _end_col_offset = _token->end_col_offset;
3533 UNUSED(_end_col_offset); // Only used by EXTRA macro
3534 _res = _PyAST_alias ( a -> v . Name . id , ( b ) ? ( ( expr_ty ) b ) -> v . Name . id : NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003535 if (_res == NULL && PyErr_Occurred()) {
3536 p->error_indicator = 1;
3537 D(p->level--);
3538 return NULL;
3539 }
3540 goto done;
3541 }
3542 p->mark = _mark;
3543 D(fprintf(stderr, "%*c%s import_from_as_name[%d-%d]: %s failed!\n", p->level, ' ',
3544 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME ['as' NAME]"));
3545 }
3546 _res = NULL;
3547 done:
3548 D(p->level--);
3549 return _res;
3550}
3551
3552// dotted_as_names: ','.dotted_as_name+
Pablo Galindoa5634c42020-09-16 19:42:00 +01003553static asdl_alias_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003554dotted_as_names_rule(Parser *p)
3555{
3556 D(p->level++);
3557 if (p->error_indicator) {
3558 D(p->level--);
3559 return NULL;
3560 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01003561 asdl_alias_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003562 int _mark = p->mark;
3563 { // ','.dotted_as_name+
3564 if (p->error_indicator) {
3565 D(p->level--);
3566 return NULL;
3567 }
3568 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 +01003569 asdl_alias_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003570 if (
Pablo Galindoa5634c42020-09-16 19:42:00 +01003571 (a = (asdl_alias_seq*)_gather_36_rule(p)) // ','.dotted_as_name+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003572 )
3573 {
3574 D(fprintf(stderr, "%*c+ dotted_as_names[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.dotted_as_name+"));
3575 _res = a;
3576 if (_res == NULL && PyErr_Occurred()) {
3577 p->error_indicator = 1;
3578 D(p->level--);
3579 return NULL;
3580 }
3581 goto done;
3582 }
3583 p->mark = _mark;
3584 D(fprintf(stderr, "%*c%s dotted_as_names[%d-%d]: %s failed!\n", p->level, ' ',
3585 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.dotted_as_name+"));
3586 }
3587 _res = NULL;
3588 done:
3589 D(p->level--);
3590 return _res;
3591}
3592
3593// dotted_as_name: dotted_name ['as' NAME]
3594static alias_ty
3595dotted_as_name_rule(Parser *p)
3596{
3597 D(p->level++);
3598 if (p->error_indicator) {
3599 D(p->level--);
3600 return NULL;
3601 }
3602 alias_ty _res = NULL;
3603 int _mark = p->mark;
Matthew Suozzo75a06f02021-04-10 16:56:28 -04003604 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3605 p->error_indicator = 1;
3606 D(p->level--);
3607 return NULL;
3608 }
3609 int _start_lineno = p->tokens[_mark]->lineno;
3610 UNUSED(_start_lineno); // Only used by EXTRA macro
3611 int _start_col_offset = p->tokens[_mark]->col_offset;
3612 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003613 { // dotted_name ['as' NAME]
3614 if (p->error_indicator) {
3615 D(p->level--);
3616 return NULL;
3617 }
3618 D(fprintf(stderr, "%*c> dotted_as_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dotted_name ['as' NAME]"));
3619 expr_ty a;
3620 void *b;
3621 if (
3622 (a = dotted_name_rule(p)) // dotted_name
3623 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003624 (b = _tmp_38_rule(p), 1) // ['as' NAME]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003625 )
3626 {
3627 D(fprintf(stderr, "%*c+ dotted_as_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dotted_name ['as' NAME]"));
Matthew Suozzo75a06f02021-04-10 16:56:28 -04003628 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3629 if (_token == NULL) {
3630 D(p->level--);
3631 return NULL;
3632 }
3633 int _end_lineno = _token->end_lineno;
3634 UNUSED(_end_lineno); // Only used by EXTRA macro
3635 int _end_col_offset = _token->end_col_offset;
3636 UNUSED(_end_col_offset); // Only used by EXTRA macro
3637 _res = _PyAST_alias ( a -> v . Name . id , ( b ) ? ( ( expr_ty ) b ) -> v . Name . id : NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003638 if (_res == NULL && PyErr_Occurred()) {
3639 p->error_indicator = 1;
3640 D(p->level--);
3641 return NULL;
3642 }
3643 goto done;
3644 }
3645 p->mark = _mark;
3646 D(fprintf(stderr, "%*c%s dotted_as_name[%d-%d]: %s failed!\n", p->level, ' ',
3647 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dotted_name ['as' NAME]"));
3648 }
3649 _res = NULL;
3650 done:
3651 D(p->level--);
3652 return _res;
3653}
3654
3655// Left-recursive
3656// dotted_name: dotted_name '.' NAME | NAME
3657static expr_ty dotted_name_raw(Parser *);
3658static expr_ty
3659dotted_name_rule(Parser *p)
3660{
3661 D(p->level++);
3662 expr_ty _res = NULL;
3663 if (_PyPegen_is_memoized(p, dotted_name_type, &_res)) {
3664 D(p->level--);
3665 return _res;
3666 }
3667 int _mark = p->mark;
3668 int _resmark = p->mark;
3669 while (1) {
3670 int tmpvar_0 = _PyPegen_update_memo(p, _mark, dotted_name_type, _res);
3671 if (tmpvar_0) {
3672 D(p->level--);
3673 return _res;
3674 }
3675 p->mark = _mark;
3676 void *_raw = dotted_name_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +02003677 if (p->error_indicator)
3678 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003679 if (_raw == NULL || p->mark <= _resmark)
3680 break;
3681 _resmark = p->mark;
3682 _res = _raw;
3683 }
3684 p->mark = _resmark;
3685 D(p->level--);
3686 return _res;
3687}
3688static expr_ty
3689dotted_name_raw(Parser *p)
3690{
3691 D(p->level++);
3692 if (p->error_indicator) {
3693 D(p->level--);
3694 return NULL;
3695 }
3696 expr_ty _res = NULL;
3697 int _mark = p->mark;
3698 { // dotted_name '.' NAME
3699 if (p->error_indicator) {
3700 D(p->level--);
3701 return NULL;
3702 }
3703 D(fprintf(stderr, "%*c> dotted_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dotted_name '.' NAME"));
3704 Token * _literal;
3705 expr_ty a;
3706 expr_ty b;
3707 if (
3708 (a = dotted_name_rule(p)) // dotted_name
3709 &&
3710 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
3711 &&
3712 (b = _PyPegen_name_token(p)) // NAME
3713 )
3714 {
3715 D(fprintf(stderr, "%*c+ dotted_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dotted_name '.' NAME"));
3716 _res = _PyPegen_join_names_with_dot ( p , a , b );
3717 if (_res == NULL && PyErr_Occurred()) {
3718 p->error_indicator = 1;
3719 D(p->level--);
3720 return NULL;
3721 }
3722 goto done;
3723 }
3724 p->mark = _mark;
3725 D(fprintf(stderr, "%*c%s dotted_name[%d-%d]: %s failed!\n", p->level, ' ',
3726 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dotted_name '.' NAME"));
3727 }
3728 { // NAME
3729 if (p->error_indicator) {
3730 D(p->level--);
3731 return NULL;
3732 }
3733 D(fprintf(stderr, "%*c> dotted_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
3734 expr_ty name_var;
3735 if (
3736 (name_var = _PyPegen_name_token(p)) // NAME
3737 )
3738 {
3739 D(fprintf(stderr, "%*c+ dotted_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
3740 _res = name_var;
3741 goto done;
3742 }
3743 p->mark = _mark;
3744 D(fprintf(stderr, "%*c%s dotted_name[%d-%d]: %s failed!\n", p->level, ' ',
3745 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
3746 }
3747 _res = NULL;
3748 done:
3749 D(p->level--);
3750 return _res;
3751}
3752
3753// if_stmt:
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003754// | 'if' named_expression ':' block elif_stmt
3755// | 'if' named_expression ':' block else_block?
3756// | invalid_if_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003757static stmt_ty
3758if_stmt_rule(Parser *p)
3759{
3760 D(p->level++);
3761 if (p->error_indicator) {
3762 D(p->level--);
3763 return NULL;
3764 }
3765 stmt_ty _res = NULL;
3766 int _mark = p->mark;
3767 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3768 p->error_indicator = 1;
3769 D(p->level--);
3770 return NULL;
3771 }
3772 int _start_lineno = p->tokens[_mark]->lineno;
3773 UNUSED(_start_lineno); // Only used by EXTRA macro
3774 int _start_col_offset = p->tokens[_mark]->col_offset;
3775 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003776 { // 'if' named_expression ':' block elif_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003777 if (p->error_indicator) {
3778 D(p->level--);
3779 return NULL;
3780 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003781 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 +01003782 Token * _keyword;
3783 Token * _literal;
3784 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003785 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003786 stmt_ty c;
3787 if (
3788 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
3789 &&
3790 (a = named_expression_rule(p)) // named_expression
3791 &&
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003792 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003793 &&
3794 (b = block_rule(p)) // block
3795 &&
3796 (c = elif_stmt_rule(p)) // elif_stmt
3797 )
3798 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003799 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 +01003800 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3801 if (_token == NULL) {
3802 D(p->level--);
3803 return NULL;
3804 }
3805 int _end_lineno = _token->end_lineno;
3806 UNUSED(_end_lineno); // Only used by EXTRA macro
3807 int _end_col_offset = _token->end_col_offset;
3808 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02003809 _res = _PyAST_If ( a , b , CHECK ( asdl_stmt_seq * , _PyPegen_singleton_seq ( p , c ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003810 if (_res == NULL && PyErr_Occurred()) {
3811 p->error_indicator = 1;
3812 D(p->level--);
3813 return NULL;
3814 }
3815 goto done;
3816 }
3817 p->mark = _mark;
3818 D(fprintf(stderr, "%*c%s if_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003819 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression ':' block elif_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003820 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003821 { // 'if' named_expression ':' block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003822 if (p->error_indicator) {
3823 D(p->level--);
3824 return NULL;
3825 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003826 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 +01003827 Token * _keyword;
3828 Token * _literal;
3829 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003830 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003831 void *c;
3832 if (
3833 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
3834 &&
3835 (a = named_expression_rule(p)) // named_expression
3836 &&
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003837 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003838 &&
3839 (b = block_rule(p)) // block
3840 &&
3841 (c = else_block_rule(p), 1) // else_block?
3842 )
3843 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003844 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 +01003845 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3846 if (_token == NULL) {
3847 D(p->level--);
3848 return NULL;
3849 }
3850 int _end_lineno = _token->end_lineno;
3851 UNUSED(_end_lineno); // Only used by EXTRA macro
3852 int _end_col_offset = _token->end_col_offset;
3853 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02003854 _res = _PyAST_If ( a , b , c , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003855 if (_res == NULL && PyErr_Occurred()) {
3856 p->error_indicator = 1;
3857 D(p->level--);
3858 return NULL;
3859 }
3860 goto done;
3861 }
3862 p->mark = _mark;
3863 D(fprintf(stderr, "%*c%s if_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003864 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression ':' block else_block?"));
3865 }
3866 if (p->call_invalid_rules) { // invalid_if_stmt
3867 if (p->error_indicator) {
3868 D(p->level--);
3869 return NULL;
3870 }
3871 D(fprintf(stderr, "%*c> if_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_if_stmt"));
3872 void *invalid_if_stmt_var;
3873 if (
3874 (invalid_if_stmt_var = invalid_if_stmt_rule(p)) // invalid_if_stmt
3875 )
3876 {
3877 D(fprintf(stderr, "%*c+ if_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_if_stmt"));
3878 _res = invalid_if_stmt_var;
3879 goto done;
3880 }
3881 p->mark = _mark;
3882 D(fprintf(stderr, "%*c%s if_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3883 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_if_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003884 }
3885 _res = NULL;
3886 done:
3887 D(p->level--);
3888 return _res;
3889}
3890
3891// elif_stmt:
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003892// | 'elif' named_expression ':' block elif_stmt
3893// | 'elif' named_expression ':' block else_block?
3894// | invalid_elif_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003895static stmt_ty
3896elif_stmt_rule(Parser *p)
3897{
3898 D(p->level++);
3899 if (p->error_indicator) {
3900 D(p->level--);
3901 return NULL;
3902 }
3903 stmt_ty _res = NULL;
3904 int _mark = p->mark;
3905 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3906 p->error_indicator = 1;
3907 D(p->level--);
3908 return NULL;
3909 }
3910 int _start_lineno = p->tokens[_mark]->lineno;
3911 UNUSED(_start_lineno); // Only used by EXTRA macro
3912 int _start_col_offset = p->tokens[_mark]->col_offset;
3913 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003914 { // 'elif' named_expression ':' block elif_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003915 if (p->error_indicator) {
3916 D(p->level--);
3917 return NULL;
3918 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003919 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 +01003920 Token * _keyword;
3921 Token * _literal;
3922 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003923 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003924 stmt_ty c;
3925 if (
3926 (_keyword = _PyPegen_expect_token(p, 515)) // token='elif'
3927 &&
3928 (a = named_expression_rule(p)) // named_expression
3929 &&
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003930 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003931 &&
3932 (b = block_rule(p)) // block
3933 &&
3934 (c = elif_stmt_rule(p)) // elif_stmt
3935 )
3936 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003937 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 +01003938 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3939 if (_token == NULL) {
3940 D(p->level--);
3941 return NULL;
3942 }
3943 int _end_lineno = _token->end_lineno;
3944 UNUSED(_end_lineno); // Only used by EXTRA macro
3945 int _end_col_offset = _token->end_col_offset;
3946 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02003947 _res = _PyAST_If ( a , b , CHECK ( asdl_stmt_seq * , _PyPegen_singleton_seq ( p , c ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003948 if (_res == NULL && PyErr_Occurred()) {
3949 p->error_indicator = 1;
3950 D(p->level--);
3951 return NULL;
3952 }
3953 goto done;
3954 }
3955 p->mark = _mark;
3956 D(fprintf(stderr, "%*c%s elif_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003957 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'elif' named_expression ':' block elif_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003958 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003959 { // 'elif' named_expression ':' block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003960 if (p->error_indicator) {
3961 D(p->level--);
3962 return NULL;
3963 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003964 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 +01003965 Token * _keyword;
3966 Token * _literal;
3967 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003968 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003969 void *c;
3970 if (
3971 (_keyword = _PyPegen_expect_token(p, 515)) // token='elif'
3972 &&
3973 (a = named_expression_rule(p)) // named_expression
3974 &&
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003975 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003976 &&
3977 (b = block_rule(p)) // block
3978 &&
3979 (c = else_block_rule(p), 1) // else_block?
3980 )
3981 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003982 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 +01003983 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3984 if (_token == NULL) {
3985 D(p->level--);
3986 return NULL;
3987 }
3988 int _end_lineno = _token->end_lineno;
3989 UNUSED(_end_lineno); // Only used by EXTRA macro
3990 int _end_col_offset = _token->end_col_offset;
3991 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02003992 _res = _PyAST_If ( a , b , c , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003993 if (_res == NULL && PyErr_Occurred()) {
3994 p->error_indicator = 1;
3995 D(p->level--);
3996 return NULL;
3997 }
3998 goto done;
3999 }
4000 p->mark = _mark;
4001 D(fprintf(stderr, "%*c%s elif_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004002 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'elif' named_expression ':' block else_block?"));
4003 }
4004 if (p->call_invalid_rules) { // invalid_elif_stmt
4005 if (p->error_indicator) {
4006 D(p->level--);
4007 return NULL;
4008 }
4009 D(fprintf(stderr, "%*c> elif_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_elif_stmt"));
4010 void *invalid_elif_stmt_var;
4011 if (
4012 (invalid_elif_stmt_var = invalid_elif_stmt_rule(p)) // invalid_elif_stmt
4013 )
4014 {
4015 D(fprintf(stderr, "%*c+ elif_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_elif_stmt"));
4016 _res = invalid_elif_stmt_var;
4017 goto done;
4018 }
4019 p->mark = _mark;
4020 D(fprintf(stderr, "%*c%s elif_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4021 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_elif_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004022 }
4023 _res = NULL;
4024 done:
4025 D(p->level--);
4026 return _res;
4027}
4028
Pablo Galindo58fb1562021-02-02 19:54:22 +00004029// else_block: 'else' &&':' block
Pablo Galindoa5634c42020-09-16 19:42:00 +01004030static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004031else_block_rule(Parser *p)
4032{
4033 D(p->level++);
4034 if (p->error_indicator) {
4035 D(p->level--);
4036 return NULL;
4037 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01004038 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004039 int _mark = p->mark;
Pablo Galindo58fb1562021-02-02 19:54:22 +00004040 { // 'else' &&':' block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004041 if (p->error_indicator) {
4042 D(p->level--);
4043 return NULL;
4044 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004045 D(fprintf(stderr, "%*c> else_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'else' &&':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004046 Token * _keyword;
4047 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004048 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004049 if (
4050 (_keyword = _PyPegen_expect_token(p, 516)) // token='else'
4051 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00004052 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004053 &&
4054 (b = block_rule(p)) // block
4055 )
4056 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00004057 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 +01004058 _res = b;
4059 if (_res == NULL && PyErr_Occurred()) {
4060 p->error_indicator = 1;
4061 D(p->level--);
4062 return NULL;
4063 }
4064 goto done;
4065 }
4066 p->mark = _mark;
4067 D(fprintf(stderr, "%*c%s else_block[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00004068 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'else' &&':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004069 }
4070 _res = NULL;
4071 done:
4072 D(p->level--);
4073 return _res;
4074}
4075
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004076// while_stmt: 'while' named_expression ':' block else_block? | invalid_while_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004077static stmt_ty
4078while_stmt_rule(Parser *p)
4079{
4080 D(p->level++);
4081 if (p->error_indicator) {
4082 D(p->level--);
4083 return NULL;
4084 }
4085 stmt_ty _res = NULL;
4086 int _mark = p->mark;
4087 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4088 p->error_indicator = 1;
4089 D(p->level--);
4090 return NULL;
4091 }
4092 int _start_lineno = p->tokens[_mark]->lineno;
4093 UNUSED(_start_lineno); // Only used by EXTRA macro
4094 int _start_col_offset = p->tokens[_mark]->col_offset;
4095 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004096 { // 'while' named_expression ':' block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004097 if (p->error_indicator) {
4098 D(p->level--);
4099 return NULL;
4100 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004101 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 +01004102 Token * _keyword;
4103 Token * _literal;
4104 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004105 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004106 void *c;
4107 if (
4108 (_keyword = _PyPegen_expect_token(p, 512)) // token='while'
4109 &&
4110 (a = named_expression_rule(p)) // named_expression
4111 &&
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004112 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004113 &&
4114 (b = block_rule(p)) // block
4115 &&
4116 (c = else_block_rule(p), 1) // else_block?
4117 )
4118 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004119 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 +01004120 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4121 if (_token == NULL) {
4122 D(p->level--);
4123 return NULL;
4124 }
4125 int _end_lineno = _token->end_lineno;
4126 UNUSED(_end_lineno); // Only used by EXTRA macro
4127 int _end_col_offset = _token->end_col_offset;
4128 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004129 _res = _PyAST_While ( a , b , c , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004130 if (_res == NULL && PyErr_Occurred()) {
4131 p->error_indicator = 1;
4132 D(p->level--);
4133 return NULL;
4134 }
4135 goto done;
4136 }
4137 p->mark = _mark;
4138 D(fprintf(stderr, "%*c%s while_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004139 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'while' named_expression ':' block else_block?"));
4140 }
4141 if (p->call_invalid_rules) { // invalid_while_stmt
4142 if (p->error_indicator) {
4143 D(p->level--);
4144 return NULL;
4145 }
4146 D(fprintf(stderr, "%*c> while_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_while_stmt"));
4147 void *invalid_while_stmt_var;
4148 if (
4149 (invalid_while_stmt_var = invalid_while_stmt_rule(p)) // invalid_while_stmt
4150 )
4151 {
4152 D(fprintf(stderr, "%*c+ while_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_while_stmt"));
4153 _res = invalid_while_stmt_var;
4154 goto done;
4155 }
4156 p->mark = _mark;
4157 D(fprintf(stderr, "%*c%s while_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4158 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_while_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004159 }
4160 _res = NULL;
4161 done:
4162 D(p->level--);
4163 return _res;
4164}
4165
4166// for_stmt:
Pablo Galindo58fb1562021-02-02 19:54:22 +00004167// | 'for' star_targets 'in' ~ star_expressions &&':' TYPE_COMMENT? block else_block?
4168// | ASYNC 'for' star_targets 'in' ~ star_expressions &&':' TYPE_COMMENT? block else_block?
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004169// | invalid_for_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004170static stmt_ty
4171for_stmt_rule(Parser *p)
4172{
4173 D(p->level++);
4174 if (p->error_indicator) {
4175 D(p->level--);
4176 return NULL;
4177 }
4178 stmt_ty _res = NULL;
4179 int _mark = p->mark;
4180 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4181 p->error_indicator = 1;
4182 D(p->level--);
4183 return NULL;
4184 }
4185 int _start_lineno = p->tokens[_mark]->lineno;
4186 UNUSED(_start_lineno); // Only used by EXTRA macro
4187 int _start_col_offset = p->tokens[_mark]->col_offset;
4188 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo58fb1562021-02-02 19:54:22 +00004189 { // 'for' star_targets 'in' ~ star_expressions &&':' TYPE_COMMENT? block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004190 if (p->error_indicator) {
4191 D(p->level--);
4192 return NULL;
4193 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004194 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 +03004195 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004196 Token * _keyword;
4197 Token * _keyword_1;
4198 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004199 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004200 void *el;
4201 expr_ty ex;
4202 expr_ty t;
4203 void *tc;
4204 if (
4205 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
4206 &&
4207 (t = star_targets_rule(p)) // star_targets
4208 &&
4209 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
4210 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004211 (_cut_var = 1)
4212 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004213 (ex = star_expressions_rule(p)) // star_expressions
4214 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00004215 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004216 &&
4217 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
4218 &&
4219 (b = block_rule(p)) // block
4220 &&
4221 (el = else_block_rule(p), 1) // else_block?
4222 )
4223 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00004224 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 +01004225 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4226 if (_token == NULL) {
4227 D(p->level--);
4228 return NULL;
4229 }
4230 int _end_lineno = _token->end_lineno;
4231 UNUSED(_end_lineno); // Only used by EXTRA macro
4232 int _end_col_offset = _token->end_col_offset;
4233 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004234 _res = _PyAST_For ( t , ex , b , el , NEW_TYPE_COMMENT ( p , tc ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004235 if (_res == NULL && PyErr_Occurred()) {
4236 p->error_indicator = 1;
4237 D(p->level--);
4238 return NULL;
4239 }
4240 goto done;
4241 }
4242 p->mark = _mark;
4243 D(fprintf(stderr, "%*c%s for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00004244 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 +03004245 if (_cut_var) {
4246 D(p->level--);
4247 return NULL;
4248 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004249 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004250 { // ASYNC 'for' star_targets 'in' ~ star_expressions &&':' TYPE_COMMENT? block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004251 if (p->error_indicator) {
4252 D(p->level--);
4253 return NULL;
4254 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004255 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 +03004256 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004257 Token * _keyword;
4258 Token * _keyword_1;
4259 Token * _literal;
4260 Token * async_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004261 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004262 void *el;
4263 expr_ty ex;
4264 expr_ty t;
4265 void *tc;
4266 if (
4267 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
4268 &&
4269 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
4270 &&
4271 (t = star_targets_rule(p)) // star_targets
4272 &&
4273 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
4274 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004275 (_cut_var = 1)
4276 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004277 (ex = star_expressions_rule(p)) // star_expressions
4278 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00004279 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004280 &&
4281 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
4282 &&
4283 (b = block_rule(p)) // block
4284 &&
4285 (el = else_block_rule(p), 1) // else_block?
4286 )
4287 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00004288 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 +01004289 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4290 if (_token == NULL) {
4291 D(p->level--);
4292 return NULL;
4293 }
4294 int _end_lineno = _token->end_lineno;
4295 UNUSED(_end_lineno); // Only used by EXTRA macro
4296 int _end_col_offset = _token->end_col_offset;
4297 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004298 _res = CHECK_VERSION ( stmt_ty , 5 , "Async for loops are" , _PyAST_AsyncFor ( t , ex , b , el , NEW_TYPE_COMMENT ( p , tc ) , EXTRA ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004299 if (_res == NULL && PyErr_Occurred()) {
4300 p->error_indicator = 1;
4301 D(p->level--);
4302 return NULL;
4303 }
4304 goto done;
4305 }
4306 p->mark = _mark;
4307 D(fprintf(stderr, "%*c%s for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00004308 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 +03004309 if (_cut_var) {
4310 D(p->level--);
4311 return NULL;
4312 }
4313 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02004314 if (p->call_invalid_rules) { // invalid_for_target
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004315 if (p->error_indicator) {
4316 D(p->level--);
4317 return NULL;
4318 }
4319 D(fprintf(stderr, "%*c> for_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
4320 void *invalid_for_target_var;
4321 if (
4322 (invalid_for_target_var = invalid_for_target_rule(p)) // invalid_for_target
4323 )
4324 {
4325 D(fprintf(stderr, "%*c+ for_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
4326 _res = invalid_for_target_var;
4327 goto done;
4328 }
4329 p->mark = _mark;
4330 D(fprintf(stderr, "%*c%s for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4331 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_for_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004332 }
4333 _res = NULL;
4334 done:
4335 D(p->level--);
4336 return _res;
4337}
4338
4339// with_stmt:
4340// | 'with' '(' ','.with_item+ ','? ')' ':' block
4341// | 'with' ','.with_item+ ':' TYPE_COMMENT? block
4342// | ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block
4343// | ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block
Pablo Galindo58fb1562021-02-02 19:54:22 +00004344// | invalid_with_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004345static stmt_ty
4346with_stmt_rule(Parser *p)
4347{
4348 D(p->level++);
4349 if (p->error_indicator) {
4350 D(p->level--);
4351 return NULL;
4352 }
4353 stmt_ty _res = NULL;
4354 int _mark = p->mark;
4355 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4356 p->error_indicator = 1;
4357 D(p->level--);
4358 return NULL;
4359 }
4360 int _start_lineno = p->tokens[_mark]->lineno;
4361 UNUSED(_start_lineno); // Only used by EXTRA macro
4362 int _start_col_offset = p->tokens[_mark]->col_offset;
4363 UNUSED(_start_col_offset); // Only used by EXTRA macro
4364 { // 'with' '(' ','.with_item+ ','? ')' ':' block
4365 if (p->error_indicator) {
4366 D(p->level--);
4367 return NULL;
4368 }
4369 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'with' '(' ','.with_item+ ','? ')' ':' block"));
4370 Token * _keyword;
4371 Token * _literal;
4372 Token * _literal_1;
4373 Token * _literal_2;
4374 void *_opt_var;
4375 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +01004376 asdl_withitem_seq* a;
4377 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004378 if (
4379 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
4380 &&
4381 (_literal = _PyPegen_expect_token(p, 7)) // token='('
4382 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01004383 (a = (asdl_withitem_seq*)_gather_39_rule(p)) // ','.with_item+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004384 &&
4385 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
4386 &&
4387 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
4388 &&
4389 (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':'
4390 &&
4391 (b = block_rule(p)) // block
4392 )
4393 {
4394 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'with' '(' ','.with_item+ ','? ')' ':' block"));
4395 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4396 if (_token == NULL) {
4397 D(p->level--);
4398 return NULL;
4399 }
4400 int _end_lineno = _token->end_lineno;
4401 UNUSED(_end_lineno); // Only used by EXTRA macro
4402 int _end_col_offset = _token->end_col_offset;
4403 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004404 _res = _PyAST_With ( a , b , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004405 if (_res == NULL && PyErr_Occurred()) {
4406 p->error_indicator = 1;
4407 D(p->level--);
4408 return NULL;
4409 }
4410 goto done;
4411 }
4412 p->mark = _mark;
4413 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4414 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'with' '(' ','.with_item+ ','? ')' ':' block"));
4415 }
4416 { // 'with' ','.with_item+ ':' TYPE_COMMENT? block
4417 if (p->error_indicator) {
4418 D(p->level--);
4419 return NULL;
4420 }
4421 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4422 Token * _keyword;
4423 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004424 asdl_withitem_seq* a;
4425 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004426 void *tc;
4427 if (
4428 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
4429 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01004430 (a = (asdl_withitem_seq*)_gather_41_rule(p)) // ','.with_item+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004431 &&
4432 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
4433 &&
4434 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
4435 &&
4436 (b = block_rule(p)) // block
4437 )
4438 {
4439 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4440 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4441 if (_token == NULL) {
4442 D(p->level--);
4443 return NULL;
4444 }
4445 int _end_lineno = _token->end_lineno;
4446 UNUSED(_end_lineno); // Only used by EXTRA macro
4447 int _end_col_offset = _token->end_col_offset;
4448 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004449 _res = _PyAST_With ( a , b , NEW_TYPE_COMMENT ( p , tc ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004450 if (_res == NULL && PyErr_Occurred()) {
4451 p->error_indicator = 1;
4452 D(p->level--);
4453 return NULL;
4454 }
4455 goto done;
4456 }
4457 p->mark = _mark;
4458 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4459 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4460 }
4461 { // ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block
4462 if (p->error_indicator) {
4463 D(p->level--);
4464 return NULL;
4465 }
4466 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block"));
4467 Token * _keyword;
4468 Token * _literal;
4469 Token * _literal_1;
4470 Token * _literal_2;
4471 void *_opt_var;
4472 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +01004473 asdl_withitem_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004474 Token * async_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004475 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004476 if (
4477 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
4478 &&
4479 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
4480 &&
4481 (_literal = _PyPegen_expect_token(p, 7)) // token='('
4482 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01004483 (a = (asdl_withitem_seq*)_gather_43_rule(p)) // ','.with_item+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004484 &&
4485 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
4486 &&
4487 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
4488 &&
4489 (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':'
4490 &&
4491 (b = block_rule(p)) // block
4492 )
4493 {
4494 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block"));
4495 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4496 if (_token == NULL) {
4497 D(p->level--);
4498 return NULL;
4499 }
4500 int _end_lineno = _token->end_lineno;
4501 UNUSED(_end_lineno); // Only used by EXTRA macro
4502 int _end_col_offset = _token->end_col_offset;
4503 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004504 _res = CHECK_VERSION ( stmt_ty , 5 , "Async with statements are" , _PyAST_AsyncWith ( a , b , NULL , EXTRA ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004505 if (_res == NULL && PyErr_Occurred()) {
4506 p->error_indicator = 1;
4507 D(p->level--);
4508 return NULL;
4509 }
4510 goto done;
4511 }
4512 p->mark = _mark;
4513 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4514 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block"));
4515 }
4516 { // ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block
4517 if (p->error_indicator) {
4518 D(p->level--);
4519 return NULL;
4520 }
4521 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4522 Token * _keyword;
4523 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004524 asdl_withitem_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004525 Token * async_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004526 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004527 void *tc;
4528 if (
4529 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
4530 &&
4531 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
4532 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01004533 (a = (asdl_withitem_seq*)_gather_45_rule(p)) // ','.with_item+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004534 &&
4535 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
4536 &&
4537 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
4538 &&
4539 (b = block_rule(p)) // block
4540 )
4541 {
4542 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4543 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4544 if (_token == NULL) {
4545 D(p->level--);
4546 return NULL;
4547 }
4548 int _end_lineno = _token->end_lineno;
4549 UNUSED(_end_lineno); // Only used by EXTRA macro
4550 int _end_col_offset = _token->end_col_offset;
4551 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004552 _res = CHECK_VERSION ( stmt_ty , 5 , "Async with statements are" , _PyAST_AsyncWith ( a , b , NEW_TYPE_COMMENT ( p , tc ) , EXTRA ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004553 if (_res == NULL && PyErr_Occurred()) {
4554 p->error_indicator = 1;
4555 D(p->level--);
4556 return NULL;
4557 }
4558 goto done;
4559 }
4560 p->mark = _mark;
4561 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4562 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4563 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004564 if (p->call_invalid_rules) { // invalid_with_stmt
4565 if (p->error_indicator) {
4566 D(p->level--);
4567 return NULL;
4568 }
4569 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_with_stmt"));
4570 void *invalid_with_stmt_var;
4571 if (
4572 (invalid_with_stmt_var = invalid_with_stmt_rule(p)) // invalid_with_stmt
4573 )
4574 {
4575 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_with_stmt"));
4576 _res = invalid_with_stmt_var;
4577 goto done;
4578 }
4579 p->mark = _mark;
4580 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4581 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_with_stmt"));
4582 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004583 _res = NULL;
4584 done:
4585 D(p->level--);
4586 return _res;
4587}
4588
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004589// with_item:
4590// | expression 'as' star_target &(',' | ')' | ':')
4591// | invalid_with_item
4592// | expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004593static withitem_ty
4594with_item_rule(Parser *p)
4595{
4596 D(p->level++);
4597 if (p->error_indicator) {
4598 D(p->level--);
4599 return NULL;
4600 }
4601 withitem_ty _res = NULL;
4602 int _mark = p->mark;
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004603 { // expression 'as' star_target &(',' | ')' | ':')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004604 if (p->error_indicator) {
4605 D(p->level--);
4606 return NULL;
4607 }
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004608 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 +03004609 Token * _keyword;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004610 expr_ty e;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004611 expr_ty t;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004612 if (
4613 (e = expression_rule(p)) // expression
4614 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004615 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
4616 &&
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004617 (t = star_target_rule(p)) // star_target
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004618 &&
4619 _PyPegen_lookahead(1, _tmp_47_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004620 )
4621 {
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004622 D(fprintf(stderr, "%*c+ with_item[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression 'as' star_target &(',' | ')' | ':')"));
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004623 _res = _PyAST_withitem ( e , t , p -> arena );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004624 if (_res == NULL && PyErr_Occurred()) {
4625 p->error_indicator = 1;
4626 D(p->level--);
4627 return NULL;
4628 }
4629 goto done;
4630 }
4631 p->mark = _mark;
4632 D(fprintf(stderr, "%*c%s with_item[%d-%d]: %s failed!\n", p->level, ' ',
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004633 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression 'as' star_target &(',' | ')' | ':')"));
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004634 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02004635 if (p->call_invalid_rules) { // invalid_with_item
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004636 if (p->error_indicator) {
4637 D(p->level--);
4638 return NULL;
4639 }
4640 D(fprintf(stderr, "%*c> with_item[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_with_item"));
4641 void *invalid_with_item_var;
4642 if (
4643 (invalid_with_item_var = invalid_with_item_rule(p)) // invalid_with_item
4644 )
4645 {
4646 D(fprintf(stderr, "%*c+ with_item[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_with_item"));
4647 _res = invalid_with_item_var;
4648 goto done;
4649 }
4650 p->mark = _mark;
4651 D(fprintf(stderr, "%*c%s with_item[%d-%d]: %s failed!\n", p->level, ' ',
4652 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_with_item"));
4653 }
4654 { // expression
4655 if (p->error_indicator) {
4656 D(p->level--);
4657 return NULL;
4658 }
4659 D(fprintf(stderr, "%*c> with_item[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression"));
4660 expr_ty e;
4661 if (
4662 (e = expression_rule(p)) // expression
4663 )
4664 {
4665 D(fprintf(stderr, "%*c+ with_item[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression"));
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004666 _res = _PyAST_withitem ( e , NULL , p -> arena );
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004667 if (_res == NULL && PyErr_Occurred()) {
4668 p->error_indicator = 1;
4669 D(p->level--);
4670 return NULL;
4671 }
4672 goto done;
4673 }
4674 p->mark = _mark;
4675 D(fprintf(stderr, "%*c%s with_item[%d-%d]: %s failed!\n", p->level, ' ',
4676 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004677 }
4678 _res = NULL;
4679 done:
4680 D(p->level--);
4681 return _res;
4682}
4683
4684// try_stmt:
Pablo Galindo58fb1562021-02-02 19:54:22 +00004685// | 'try' &&':' block finally_block
4686// | 'try' &&':' block except_block+ else_block? finally_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004687static stmt_ty
4688try_stmt_rule(Parser *p)
4689{
4690 D(p->level++);
4691 if (p->error_indicator) {
4692 D(p->level--);
4693 return NULL;
4694 }
4695 stmt_ty _res = NULL;
4696 int _mark = p->mark;
4697 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4698 p->error_indicator = 1;
4699 D(p->level--);
4700 return NULL;
4701 }
4702 int _start_lineno = p->tokens[_mark]->lineno;
4703 UNUSED(_start_lineno); // Only used by EXTRA macro
4704 int _start_col_offset = p->tokens[_mark]->col_offset;
4705 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo58fb1562021-02-02 19:54:22 +00004706 { // 'try' &&':' block finally_block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004707 if (p->error_indicator) {
4708 D(p->level--);
4709 return NULL;
4710 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004711 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 +01004712 Token * _keyword;
4713 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004714 asdl_stmt_seq* b;
4715 asdl_stmt_seq* f;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004716 if (
4717 (_keyword = _PyPegen_expect_token(p, 511)) // token='try'
4718 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00004719 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004720 &&
4721 (b = block_rule(p)) // block
4722 &&
4723 (f = finally_block_rule(p)) // finally_block
4724 )
4725 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00004726 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 +01004727 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4728 if (_token == NULL) {
4729 D(p->level--);
4730 return NULL;
4731 }
4732 int _end_lineno = _token->end_lineno;
4733 UNUSED(_end_lineno); // Only used by EXTRA macro
4734 int _end_col_offset = _token->end_col_offset;
4735 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004736 _res = _PyAST_Try ( b , NULL , NULL , f , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004737 if (_res == NULL && PyErr_Occurred()) {
4738 p->error_indicator = 1;
4739 D(p->level--);
4740 return NULL;
4741 }
4742 goto done;
4743 }
4744 p->mark = _mark;
4745 D(fprintf(stderr, "%*c%s try_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00004746 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'try' &&':' block finally_block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004747 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004748 { // 'try' &&':' block except_block+ else_block? finally_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004749 if (p->error_indicator) {
4750 D(p->level--);
4751 return NULL;
4752 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004753 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 +01004754 Token * _keyword;
4755 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004756 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004757 void *el;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004758 asdl_excepthandler_seq* ex;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004759 void *f;
4760 if (
4761 (_keyword = _PyPegen_expect_token(p, 511)) // token='try'
4762 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00004763 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004764 &&
4765 (b = block_rule(p)) // block
4766 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01004767 (ex = (asdl_excepthandler_seq*)_loop1_48_rule(p)) // except_block+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004768 &&
4769 (el = else_block_rule(p), 1) // else_block?
4770 &&
4771 (f = finally_block_rule(p), 1) // finally_block?
4772 )
4773 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00004774 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 +01004775 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4776 if (_token == NULL) {
4777 D(p->level--);
4778 return NULL;
4779 }
4780 int _end_lineno = _token->end_lineno;
4781 UNUSED(_end_lineno); // Only used by EXTRA macro
4782 int _end_col_offset = _token->end_col_offset;
4783 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004784 _res = _PyAST_Try ( b , ex , el , f , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004785 if (_res == NULL && PyErr_Occurred()) {
4786 p->error_indicator = 1;
4787 D(p->level--);
4788 return NULL;
4789 }
4790 goto done;
4791 }
4792 p->mark = _mark;
4793 D(fprintf(stderr, "%*c%s try_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00004794 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'try' &&':' block except_block+ else_block? finally_block?"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004795 }
4796 _res = NULL;
4797 done:
4798 D(p->level--);
4799 return _res;
4800}
4801
Pablo Galindo206cbda2021-02-07 18:42:21 +00004802// except_block:
4803// | 'except' expression ['as' NAME] ':' block
4804// | 'except' ':' block
4805// | invalid_except_block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004806static excepthandler_ty
4807except_block_rule(Parser *p)
4808{
4809 D(p->level++);
4810 if (p->error_indicator) {
4811 D(p->level--);
4812 return NULL;
4813 }
4814 excepthandler_ty _res = NULL;
4815 int _mark = p->mark;
4816 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4817 p->error_indicator = 1;
4818 D(p->level--);
4819 return NULL;
4820 }
4821 int _start_lineno = p->tokens[_mark]->lineno;
4822 UNUSED(_start_lineno); // Only used by EXTRA macro
4823 int _start_col_offset = p->tokens[_mark]->col_offset;
4824 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo206cbda2021-02-07 18:42:21 +00004825 { // 'except' expression ['as' NAME] ':' block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004826 if (p->error_indicator) {
4827 D(p->level--);
4828 return NULL;
4829 }
Pablo Galindo206cbda2021-02-07 18:42:21 +00004830 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 +01004831 Token * _keyword;
4832 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004833 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004834 expr_ty e;
4835 void *t;
4836 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004837 (_keyword = _PyPegen_expect_token(p, 521)) // token='except'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004838 &&
4839 (e = expression_rule(p)) // expression
4840 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004841 (t = _tmp_49_rule(p), 1) // ['as' NAME]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004842 &&
Pablo Galindo206cbda2021-02-07 18:42:21 +00004843 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004844 &&
4845 (b = block_rule(p)) // block
4846 )
4847 {
Pablo Galindo206cbda2021-02-07 18:42:21 +00004848 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 +01004849 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4850 if (_token == NULL) {
4851 D(p->level--);
4852 return NULL;
4853 }
4854 int _end_lineno = _token->end_lineno;
4855 UNUSED(_end_lineno); // Only used by EXTRA macro
4856 int _end_col_offset = _token->end_col_offset;
4857 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004858 _res = _PyAST_ExceptHandler ( e , ( t ) ? ( ( expr_ty ) t ) -> v . Name . id : NULL , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004859 if (_res == NULL && PyErr_Occurred()) {
4860 p->error_indicator = 1;
4861 D(p->level--);
4862 return NULL;
4863 }
4864 goto done;
4865 }
4866 p->mark = _mark;
4867 D(fprintf(stderr, "%*c%s except_block[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo206cbda2021-02-07 18:42:21 +00004868 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' expression ['as' NAME] ':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004869 }
Pablo Galindo206cbda2021-02-07 18:42:21 +00004870 { // 'except' ':' block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004871 if (p->error_indicator) {
4872 D(p->level--);
4873 return NULL;
4874 }
Pablo Galindo206cbda2021-02-07 18:42:21 +00004875 D(fprintf(stderr, "%*c> except_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' ':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004876 Token * _keyword;
4877 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004878 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004879 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004880 (_keyword = _PyPegen_expect_token(p, 521)) // token='except'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004881 &&
Pablo Galindo206cbda2021-02-07 18:42:21 +00004882 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004883 &&
4884 (b = block_rule(p)) // block
4885 )
4886 {
Pablo Galindo206cbda2021-02-07 18:42:21 +00004887 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 +01004888 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4889 if (_token == NULL) {
4890 D(p->level--);
4891 return NULL;
4892 }
4893 int _end_lineno = _token->end_lineno;
4894 UNUSED(_end_lineno); // Only used by EXTRA macro
4895 int _end_col_offset = _token->end_col_offset;
4896 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004897 _res = _PyAST_ExceptHandler ( NULL , NULL , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004898 if (_res == NULL && PyErr_Occurred()) {
4899 p->error_indicator = 1;
4900 D(p->level--);
4901 return NULL;
4902 }
4903 goto done;
4904 }
4905 p->mark = _mark;
4906 D(fprintf(stderr, "%*c%s except_block[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo206cbda2021-02-07 18:42:21 +00004907 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' ':' block"));
4908 }
4909 if (p->call_invalid_rules) { // invalid_except_block
4910 if (p->error_indicator) {
4911 D(p->level--);
4912 return NULL;
4913 }
4914 D(fprintf(stderr, "%*c> except_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_except_block"));
4915 void *invalid_except_block_var;
4916 if (
4917 (invalid_except_block_var = invalid_except_block_rule(p)) // invalid_except_block
4918 )
4919 {
4920 D(fprintf(stderr, "%*c+ except_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_except_block"));
4921 _res = invalid_except_block_var;
4922 goto done;
4923 }
4924 p->mark = _mark;
4925 D(fprintf(stderr, "%*c%s except_block[%d-%d]: %s failed!\n", p->level, ' ',
4926 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_except_block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004927 }
4928 _res = NULL;
4929 done:
4930 D(p->level--);
4931 return _res;
4932}
4933
4934// finally_block: 'finally' ':' block
Pablo Galindoa5634c42020-09-16 19:42:00 +01004935static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004936finally_block_rule(Parser *p)
4937{
4938 D(p->level++);
4939 if (p->error_indicator) {
4940 D(p->level--);
4941 return NULL;
4942 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01004943 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004944 int _mark = p->mark;
4945 { // 'finally' ':' block
4946 if (p->error_indicator) {
4947 D(p->level--);
4948 return NULL;
4949 }
4950 D(fprintf(stderr, "%*c> finally_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'finally' ':' block"));
4951 Token * _keyword;
4952 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004953 asdl_stmt_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004954 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004955 (_keyword = _PyPegen_expect_token(p, 522)) // token='finally'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004956 &&
4957 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
4958 &&
4959 (a = block_rule(p)) // block
4960 )
4961 {
4962 D(fprintf(stderr, "%*c+ finally_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'finally' ':' block"));
4963 _res = a;
4964 if (_res == NULL && PyErr_Occurred()) {
4965 p->error_indicator = 1;
4966 D(p->level--);
4967 return NULL;
4968 }
4969 goto done;
4970 }
4971 p->mark = _mark;
4972 D(fprintf(stderr, "%*c%s finally_block[%d-%d]: %s failed!\n", p->level, ' ',
4973 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'finally' ':' block"));
4974 }
4975 _res = NULL;
4976 done:
4977 D(p->level--);
4978 return _res;
4979}
4980
Pablo Galindo08fb8ac2021-03-18 01:03:11 +00004981// match_stmt:
4982// | "match" subject_expr ':' NEWLINE INDENT case_block+ DEDENT
4983// | invalid_match_stmt
Brandt Bucher145bf262021-02-26 14:51:55 -08004984static stmt_ty
4985match_stmt_rule(Parser *p)
4986{
4987 D(p->level++);
4988 if (p->error_indicator) {
4989 D(p->level--);
4990 return NULL;
4991 }
4992 stmt_ty _res = NULL;
4993 int _mark = p->mark;
4994 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4995 p->error_indicator = 1;
4996 D(p->level--);
4997 return NULL;
4998 }
4999 int _start_lineno = p->tokens[_mark]->lineno;
5000 UNUSED(_start_lineno); // Only used by EXTRA macro
5001 int _start_col_offset = p->tokens[_mark]->col_offset;
5002 UNUSED(_start_col_offset); // Only used by EXTRA macro
5003 { // "match" subject_expr ':' NEWLINE INDENT case_block+ DEDENT
5004 if (p->error_indicator) {
5005 D(p->level--);
5006 return NULL;
5007 }
5008 D(fprintf(stderr, "%*c> match_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"match\" subject_expr ':' NEWLINE INDENT case_block+ DEDENT"));
5009 expr_ty _keyword;
5010 Token * _literal;
5011 asdl_match_case_seq* cases;
5012 Token * dedent_var;
5013 Token * indent_var;
5014 Token * newline_var;
5015 expr_ty subject;
5016 if (
5017 (_keyword = _PyPegen_expect_soft_keyword(p, "match")) // soft_keyword='"match"'
5018 &&
5019 (subject = subject_expr_rule(p)) // subject_expr
5020 &&
5021 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
5022 &&
5023 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
5024 &&
5025 (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
5026 &&
5027 (cases = (asdl_match_case_seq*)_loop1_50_rule(p)) // case_block+
5028 &&
5029 (dedent_var = _PyPegen_expect_token(p, DEDENT)) // token='DEDENT'
5030 )
5031 {
5032 D(fprintf(stderr, "%*c+ match_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"match\" subject_expr ':' NEWLINE INDENT case_block+ DEDENT"));
5033 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5034 if (_token == NULL) {
5035 D(p->level--);
5036 return NULL;
5037 }
5038 int _end_lineno = _token->end_lineno;
5039 UNUSED(_end_lineno); // Only used by EXTRA macro
5040 int _end_col_offset = _token->end_col_offset;
5041 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02005042 _res = CHECK_VERSION ( stmt_ty , 10 , "Pattern matching is" , _PyAST_Match ( subject , cases , EXTRA ) );
Brandt Bucher145bf262021-02-26 14:51:55 -08005043 if (_res == NULL && PyErr_Occurred()) {
5044 p->error_indicator = 1;
5045 D(p->level--);
5046 return NULL;
5047 }
5048 goto done;
5049 }
5050 p->mark = _mark;
5051 D(fprintf(stderr, "%*c%s match_stmt[%d-%d]: %s failed!\n", p->level, ' ',
5052 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"match\" subject_expr ':' NEWLINE INDENT case_block+ DEDENT"));
5053 }
Pablo Galindo08fb8ac2021-03-18 01:03:11 +00005054 if (p->call_invalid_rules) { // invalid_match_stmt
5055 if (p->error_indicator) {
5056 D(p->level--);
5057 return NULL;
5058 }
5059 D(fprintf(stderr, "%*c> match_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_match_stmt"));
5060 void *invalid_match_stmt_var;
5061 if (
5062 (invalid_match_stmt_var = invalid_match_stmt_rule(p)) // invalid_match_stmt
5063 )
5064 {
5065 D(fprintf(stderr, "%*c+ match_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_match_stmt"));
5066 _res = invalid_match_stmt_var;
5067 goto done;
5068 }
5069 p->mark = _mark;
5070 D(fprintf(stderr, "%*c%s match_stmt[%d-%d]: %s failed!\n", p->level, ' ',
5071 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_match_stmt"));
5072 }
Brandt Bucher145bf262021-02-26 14:51:55 -08005073 _res = NULL;
5074 done:
5075 D(p->level--);
5076 return _res;
5077}
5078
5079// subject_expr: star_named_expression ',' star_named_expressions? | named_expression
5080static expr_ty
5081subject_expr_rule(Parser *p)
5082{
5083 D(p->level++);
5084 if (p->error_indicator) {
5085 D(p->level--);
5086 return NULL;
5087 }
5088 expr_ty _res = NULL;
5089 int _mark = p->mark;
5090 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
5091 p->error_indicator = 1;
5092 D(p->level--);
5093 return NULL;
5094 }
5095 int _start_lineno = p->tokens[_mark]->lineno;
5096 UNUSED(_start_lineno); // Only used by EXTRA macro
5097 int _start_col_offset = p->tokens[_mark]->col_offset;
5098 UNUSED(_start_col_offset); // Only used by EXTRA macro
5099 { // star_named_expression ',' star_named_expressions?
5100 if (p->error_indicator) {
5101 D(p->level--);
5102 return NULL;
5103 }
5104 D(fprintf(stderr, "%*c> subject_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_named_expression ',' star_named_expressions?"));
5105 Token * _literal;
5106 expr_ty value;
5107 void *values;
5108 if (
5109 (value = star_named_expression_rule(p)) // star_named_expression
5110 &&
5111 (_literal = _PyPegen_expect_token(p, 12)) // token=','
5112 &&
5113 (values = star_named_expressions_rule(p), 1) // star_named_expressions?
5114 )
5115 {
5116 D(fprintf(stderr, "%*c+ subject_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_named_expression ',' star_named_expressions?"));
5117 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5118 if (_token == NULL) {
5119 D(p->level--);
5120 return NULL;
5121 }
5122 int _end_lineno = _token->end_lineno;
5123 UNUSED(_end_lineno); // Only used by EXTRA macro
5124 int _end_col_offset = _token->end_col_offset;
5125 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02005126 _res = _PyAST_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , value , values ) ) , Load , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08005127 if (_res == NULL && PyErr_Occurred()) {
5128 p->error_indicator = 1;
5129 D(p->level--);
5130 return NULL;
5131 }
5132 goto done;
5133 }
5134 p->mark = _mark;
5135 D(fprintf(stderr, "%*c%s subject_expr[%d-%d]: %s failed!\n", p->level, ' ',
5136 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression ',' star_named_expressions?"));
5137 }
5138 { // named_expression
5139 if (p->error_indicator) {
5140 D(p->level--);
5141 return NULL;
5142 }
5143 D(fprintf(stderr, "%*c> subject_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression"));
5144 expr_ty named_expression_var;
5145 if (
5146 (named_expression_var = named_expression_rule(p)) // named_expression
5147 )
5148 {
5149 D(fprintf(stderr, "%*c+ subject_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "named_expression"));
5150 _res = named_expression_var;
5151 goto done;
5152 }
5153 p->mark = _mark;
5154 D(fprintf(stderr, "%*c%s subject_expr[%d-%d]: %s failed!\n", p->level, ' ',
5155 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression"));
5156 }
5157 _res = NULL;
5158 done:
5159 D(p->level--);
5160 return _res;
5161}
5162
Pablo Galindo08fb8ac2021-03-18 01:03:11 +00005163// case_block: "case" patterns guard? ':' block | invalid_case_block
Brandt Bucher145bf262021-02-26 14:51:55 -08005164static match_case_ty
5165case_block_rule(Parser *p)
5166{
5167 D(p->level++);
5168 if (p->error_indicator) {
5169 D(p->level--);
5170 return NULL;
5171 }
5172 match_case_ty _res = NULL;
5173 int _mark = p->mark;
5174 { // "case" patterns guard? ':' block
5175 if (p->error_indicator) {
5176 D(p->level--);
5177 return NULL;
5178 }
5179 D(fprintf(stderr, "%*c> case_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"case\" patterns guard? ':' block"));
5180 expr_ty _keyword;
5181 Token * _literal;
5182 asdl_stmt_seq* body;
5183 void *guard;
5184 expr_ty pattern;
5185 if (
5186 (_keyword = _PyPegen_expect_soft_keyword(p, "case")) // soft_keyword='"case"'
5187 &&
5188 (pattern = patterns_rule(p)) // patterns
5189 &&
5190 (guard = guard_rule(p), 1) // guard?
5191 &&
5192 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
5193 &&
5194 (body = block_rule(p)) // block
5195 )
5196 {
5197 D(fprintf(stderr, "%*c+ case_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"case\" patterns guard? ':' block"));
Victor Stinnerd27f8d22021-04-07 21:34:22 +02005198 _res = _PyAST_match_case ( pattern , guard , body , p -> arena );
Brandt Bucher145bf262021-02-26 14:51:55 -08005199 if (_res == NULL && PyErr_Occurred()) {
5200 p->error_indicator = 1;
5201 D(p->level--);
5202 return NULL;
5203 }
5204 goto done;
5205 }
5206 p->mark = _mark;
5207 D(fprintf(stderr, "%*c%s case_block[%d-%d]: %s failed!\n", p->level, ' ',
5208 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"case\" patterns guard? ':' block"));
5209 }
Pablo Galindo08fb8ac2021-03-18 01:03:11 +00005210 if (p->call_invalid_rules) { // invalid_case_block
5211 if (p->error_indicator) {
5212 D(p->level--);
5213 return NULL;
5214 }
5215 D(fprintf(stderr, "%*c> case_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_case_block"));
5216 void *invalid_case_block_var;
5217 if (
5218 (invalid_case_block_var = invalid_case_block_rule(p)) // invalid_case_block
5219 )
5220 {
5221 D(fprintf(stderr, "%*c+ case_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_case_block"));
5222 _res = invalid_case_block_var;
5223 goto done;
5224 }
5225 p->mark = _mark;
5226 D(fprintf(stderr, "%*c%s case_block[%d-%d]: %s failed!\n", p->level, ' ',
5227 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_case_block"));
5228 }
Brandt Bucher145bf262021-02-26 14:51:55 -08005229 _res = NULL;
5230 done:
5231 D(p->level--);
5232 return _res;
5233}
5234
5235// guard: 'if' named_expression
5236static expr_ty
5237guard_rule(Parser *p)
5238{
5239 D(p->level++);
5240 if (p->error_indicator) {
5241 D(p->level--);
5242 return NULL;
5243 }
5244 expr_ty _res = NULL;
5245 int _mark = p->mark;
5246 { // 'if' named_expression
5247 if (p->error_indicator) {
5248 D(p->level--);
5249 return NULL;
5250 }
5251 D(fprintf(stderr, "%*c> guard[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' named_expression"));
5252 Token * _keyword;
5253 expr_ty guard;
5254 if (
5255 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
5256 &&
5257 (guard = named_expression_rule(p)) // named_expression
5258 )
5259 {
5260 D(fprintf(stderr, "%*c+ guard[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' named_expression"));
5261 _res = guard;
5262 if (_res == NULL && PyErr_Occurred()) {
5263 p->error_indicator = 1;
5264 D(p->level--);
5265 return NULL;
5266 }
5267 goto done;
5268 }
5269 p->mark = _mark;
5270 D(fprintf(stderr, "%*c%s guard[%d-%d]: %s failed!\n", p->level, ' ',
5271 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression"));
5272 }
5273 _res = NULL;
5274 done:
5275 D(p->level--);
5276 return _res;
5277}
5278
5279// patterns: open_sequence_pattern | pattern
5280static expr_ty
5281patterns_rule(Parser *p)
5282{
5283 D(p->level++);
5284 if (p->error_indicator) {
5285 D(p->level--);
5286 return NULL;
5287 }
5288 expr_ty _res = NULL;
5289 int _mark = p->mark;
5290 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
5291 p->error_indicator = 1;
5292 D(p->level--);
5293 return NULL;
5294 }
5295 int _start_lineno = p->tokens[_mark]->lineno;
5296 UNUSED(_start_lineno); // Only used by EXTRA macro
5297 int _start_col_offset = p->tokens[_mark]->col_offset;
5298 UNUSED(_start_col_offset); // Only used by EXTRA macro
5299 { // open_sequence_pattern
5300 if (p->error_indicator) {
5301 D(p->level--);
5302 return NULL;
5303 }
5304 D(fprintf(stderr, "%*c> patterns[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "open_sequence_pattern"));
5305 asdl_expr_seq* values;
5306 if (
5307 (values = (asdl_expr_seq*)open_sequence_pattern_rule(p)) // open_sequence_pattern
5308 )
5309 {
5310 D(fprintf(stderr, "%*c+ patterns[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "open_sequence_pattern"));
5311 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5312 if (_token == NULL) {
5313 D(p->level--);
5314 return NULL;
5315 }
5316 int _end_lineno = _token->end_lineno;
5317 UNUSED(_end_lineno); // Only used by EXTRA macro
5318 int _end_col_offset = _token->end_col_offset;
5319 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02005320 _res = _PyAST_Tuple ( values , Load , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08005321 if (_res == NULL && PyErr_Occurred()) {
5322 p->error_indicator = 1;
5323 D(p->level--);
5324 return NULL;
5325 }
5326 goto done;
5327 }
5328 p->mark = _mark;
5329 D(fprintf(stderr, "%*c%s patterns[%d-%d]: %s failed!\n", p->level, ' ',
5330 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "open_sequence_pattern"));
5331 }
5332 { // pattern
5333 if (p->error_indicator) {
5334 D(p->level--);
5335 return NULL;
5336 }
5337 D(fprintf(stderr, "%*c> patterns[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "pattern"));
5338 expr_ty pattern_var;
5339 if (
5340 (pattern_var = pattern_rule(p)) // pattern
5341 )
5342 {
5343 D(fprintf(stderr, "%*c+ patterns[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "pattern"));
5344 _res = pattern_var;
5345 goto done;
5346 }
5347 p->mark = _mark;
5348 D(fprintf(stderr, "%*c%s patterns[%d-%d]: %s failed!\n", p->level, ' ',
5349 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "pattern"));
5350 }
5351 _res = NULL;
5352 done:
5353 D(p->level--);
5354 return _res;
5355}
5356
5357// pattern: as_pattern | or_pattern
5358static expr_ty
5359pattern_rule(Parser *p)
5360{
5361 D(p->level++);
5362 if (p->error_indicator) {
5363 D(p->level--);
5364 return NULL;
5365 }
5366 expr_ty _res = NULL;
5367 int _mark = p->mark;
5368 { // as_pattern
5369 if (p->error_indicator) {
5370 D(p->level--);
5371 return NULL;
5372 }
5373 D(fprintf(stderr, "%*c> pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "as_pattern"));
5374 expr_ty as_pattern_var;
5375 if (
5376 (as_pattern_var = as_pattern_rule(p)) // as_pattern
5377 )
5378 {
5379 D(fprintf(stderr, "%*c+ pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "as_pattern"));
5380 _res = as_pattern_var;
5381 goto done;
5382 }
5383 p->mark = _mark;
5384 D(fprintf(stderr, "%*c%s pattern[%d-%d]: %s failed!\n", p->level, ' ',
5385 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "as_pattern"));
5386 }
5387 { // or_pattern
5388 if (p->error_indicator) {
5389 D(p->level--);
5390 return NULL;
5391 }
5392 D(fprintf(stderr, "%*c> pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "or_pattern"));
5393 expr_ty or_pattern_var;
5394 if (
5395 (or_pattern_var = or_pattern_rule(p)) // or_pattern
5396 )
5397 {
5398 D(fprintf(stderr, "%*c+ pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "or_pattern"));
5399 _res = or_pattern_var;
5400 goto done;
5401 }
5402 p->mark = _mark;
5403 D(fprintf(stderr, "%*c%s pattern[%d-%d]: %s failed!\n", p->level, ' ',
5404 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "or_pattern"));
5405 }
5406 _res = NULL;
5407 done:
5408 D(p->level--);
5409 return _res;
5410}
5411
5412// as_pattern: or_pattern 'as' capture_pattern
5413static expr_ty
5414as_pattern_rule(Parser *p)
5415{
5416 D(p->level++);
5417 if (p->error_indicator) {
5418 D(p->level--);
5419 return NULL;
5420 }
5421 expr_ty _res = NULL;
5422 int _mark = p->mark;
5423 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
5424 p->error_indicator = 1;
5425 D(p->level--);
5426 return NULL;
5427 }
5428 int _start_lineno = p->tokens[_mark]->lineno;
5429 UNUSED(_start_lineno); // Only used by EXTRA macro
5430 int _start_col_offset = p->tokens[_mark]->col_offset;
5431 UNUSED(_start_col_offset); // Only used by EXTRA macro
5432 { // or_pattern 'as' capture_pattern
5433 if (p->error_indicator) {
5434 D(p->level--);
5435 return NULL;
5436 }
5437 D(fprintf(stderr, "%*c> as_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "or_pattern 'as' capture_pattern"));
5438 Token * _keyword;
5439 expr_ty pattern;
5440 expr_ty target;
5441 if (
5442 (pattern = or_pattern_rule(p)) // or_pattern
5443 &&
5444 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
5445 &&
5446 (target = capture_pattern_rule(p)) // capture_pattern
5447 )
5448 {
5449 D(fprintf(stderr, "%*c+ as_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "or_pattern 'as' capture_pattern"));
5450 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5451 if (_token == NULL) {
5452 D(p->level--);
5453 return NULL;
5454 }
5455 int _end_lineno = _token->end_lineno;
5456 UNUSED(_end_lineno); // Only used by EXTRA macro
5457 int _end_col_offset = _token->end_col_offset;
5458 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02005459 _res = _PyAST_MatchAs ( pattern , target -> v . Name . id , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08005460 if (_res == NULL && PyErr_Occurred()) {
5461 p->error_indicator = 1;
5462 D(p->level--);
5463 return NULL;
5464 }
5465 goto done;
5466 }
5467 p->mark = _mark;
5468 D(fprintf(stderr, "%*c%s as_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5469 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "or_pattern 'as' capture_pattern"));
5470 }
5471 _res = NULL;
5472 done:
5473 D(p->level--);
5474 return _res;
5475}
5476
5477// or_pattern: '|'.closed_pattern+
5478static expr_ty
5479or_pattern_rule(Parser *p)
5480{
5481 D(p->level++);
5482 if (p->error_indicator) {
5483 D(p->level--);
5484 return NULL;
5485 }
5486 expr_ty _res = NULL;
5487 int _mark = p->mark;
5488 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
5489 p->error_indicator = 1;
5490 D(p->level--);
5491 return NULL;
5492 }
5493 int _start_lineno = p->tokens[_mark]->lineno;
5494 UNUSED(_start_lineno); // Only used by EXTRA macro
5495 int _start_col_offset = p->tokens[_mark]->col_offset;
5496 UNUSED(_start_col_offset); // Only used by EXTRA macro
5497 { // '|'.closed_pattern+
5498 if (p->error_indicator) {
5499 D(p->level--);
5500 return NULL;
5501 }
5502 D(fprintf(stderr, "%*c> or_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'|'.closed_pattern+"));
5503 asdl_expr_seq* patterns;
5504 if (
5505 (patterns = (asdl_expr_seq*)_gather_51_rule(p)) // '|'.closed_pattern+
5506 )
5507 {
5508 D(fprintf(stderr, "%*c+ or_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'|'.closed_pattern+"));
5509 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5510 if (_token == NULL) {
5511 D(p->level--);
5512 return NULL;
5513 }
5514 int _end_lineno = _token->end_lineno;
5515 UNUSED(_end_lineno); // Only used by EXTRA macro
5516 int _end_col_offset = _token->end_col_offset;
5517 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02005518 _res = asdl_seq_LEN ( patterns ) == 1 ? asdl_seq_GET ( patterns , 0 ) : _PyAST_MatchOr ( patterns , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08005519 if (_res == NULL && PyErr_Occurred()) {
5520 p->error_indicator = 1;
5521 D(p->level--);
5522 return NULL;
5523 }
5524 goto done;
5525 }
5526 p->mark = _mark;
5527 D(fprintf(stderr, "%*c%s or_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5528 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'|'.closed_pattern+"));
5529 }
5530 _res = NULL;
5531 done:
5532 D(p->level--);
5533 return _res;
5534}
5535
5536// closed_pattern:
5537// | literal_pattern
5538// | capture_pattern
5539// | wildcard_pattern
5540// | value_pattern
5541// | group_pattern
5542// | sequence_pattern
5543// | mapping_pattern
5544// | class_pattern
5545static expr_ty
5546closed_pattern_rule(Parser *p)
5547{
5548 D(p->level++);
5549 if (p->error_indicator) {
5550 D(p->level--);
5551 return NULL;
5552 }
5553 expr_ty _res = NULL;
5554 int _mark = p->mark;
5555 { // literal_pattern
5556 if (p->error_indicator) {
5557 D(p->level--);
5558 return NULL;
5559 }
5560 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "literal_pattern"));
5561 expr_ty literal_pattern_var;
5562 if (
5563 (literal_pattern_var = literal_pattern_rule(p)) // literal_pattern
5564 )
5565 {
5566 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "literal_pattern"));
5567 _res = literal_pattern_var;
5568 goto done;
5569 }
5570 p->mark = _mark;
5571 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5572 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "literal_pattern"));
5573 }
5574 { // capture_pattern
5575 if (p->error_indicator) {
5576 D(p->level--);
5577 return NULL;
5578 }
5579 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "capture_pattern"));
5580 expr_ty capture_pattern_var;
5581 if (
5582 (capture_pattern_var = capture_pattern_rule(p)) // capture_pattern
5583 )
5584 {
5585 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "capture_pattern"));
5586 _res = capture_pattern_var;
5587 goto done;
5588 }
5589 p->mark = _mark;
5590 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5591 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "capture_pattern"));
5592 }
5593 { // wildcard_pattern
5594 if (p->error_indicator) {
5595 D(p->level--);
5596 return NULL;
5597 }
5598 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "wildcard_pattern"));
5599 expr_ty wildcard_pattern_var;
5600 if (
5601 (wildcard_pattern_var = wildcard_pattern_rule(p)) // wildcard_pattern
5602 )
5603 {
5604 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "wildcard_pattern"));
5605 _res = wildcard_pattern_var;
5606 goto done;
5607 }
5608 p->mark = _mark;
5609 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5610 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "wildcard_pattern"));
5611 }
5612 { // value_pattern
5613 if (p->error_indicator) {
5614 D(p->level--);
5615 return NULL;
5616 }
5617 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "value_pattern"));
5618 expr_ty value_pattern_var;
5619 if (
5620 (value_pattern_var = value_pattern_rule(p)) // value_pattern
5621 )
5622 {
5623 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "value_pattern"));
5624 _res = value_pattern_var;
5625 goto done;
5626 }
5627 p->mark = _mark;
5628 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5629 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "value_pattern"));
5630 }
5631 { // group_pattern
5632 if (p->error_indicator) {
5633 D(p->level--);
5634 return NULL;
5635 }
5636 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "group_pattern"));
5637 expr_ty group_pattern_var;
5638 if (
5639 (group_pattern_var = group_pattern_rule(p)) // group_pattern
5640 )
5641 {
5642 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "group_pattern"));
5643 _res = group_pattern_var;
5644 goto done;
5645 }
5646 p->mark = _mark;
5647 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5648 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "group_pattern"));
5649 }
5650 { // sequence_pattern
5651 if (p->error_indicator) {
5652 D(p->level--);
5653 return NULL;
5654 }
5655 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sequence_pattern"));
5656 expr_ty sequence_pattern_var;
5657 if (
5658 (sequence_pattern_var = sequence_pattern_rule(p)) // sequence_pattern
5659 )
5660 {
5661 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sequence_pattern"));
5662 _res = sequence_pattern_var;
5663 goto done;
5664 }
5665 p->mark = _mark;
5666 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5667 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sequence_pattern"));
5668 }
5669 { // mapping_pattern
5670 if (p->error_indicator) {
5671 D(p->level--);
5672 return NULL;
5673 }
5674 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "mapping_pattern"));
5675 expr_ty mapping_pattern_var;
5676 if (
5677 (mapping_pattern_var = mapping_pattern_rule(p)) // mapping_pattern
5678 )
5679 {
5680 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "mapping_pattern"));
5681 _res = mapping_pattern_var;
5682 goto done;
5683 }
5684 p->mark = _mark;
5685 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5686 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "mapping_pattern"));
5687 }
5688 { // class_pattern
5689 if (p->error_indicator) {
5690 D(p->level--);
5691 return NULL;
5692 }
5693 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "class_pattern"));
5694 expr_ty class_pattern_var;
5695 if (
5696 (class_pattern_var = class_pattern_rule(p)) // class_pattern
5697 )
5698 {
5699 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "class_pattern"));
5700 _res = class_pattern_var;
5701 goto done;
5702 }
5703 p->mark = _mark;
5704 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5705 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "class_pattern"));
5706 }
5707 _res = NULL;
5708 done:
5709 D(p->level--);
5710 return _res;
5711}
5712
5713// literal_pattern:
5714// | signed_number !('+' | '-')
5715// | signed_number '+' NUMBER
5716// | signed_number '-' NUMBER
5717// | strings
5718// | 'None'
5719// | 'True'
5720// | 'False'
5721static expr_ty
5722literal_pattern_rule(Parser *p)
5723{
5724 D(p->level++);
5725 if (p->error_indicator) {
5726 D(p->level--);
5727 return NULL;
5728 }
5729 expr_ty _res = NULL;
5730 int _mark = p->mark;
5731 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
5732 p->error_indicator = 1;
5733 D(p->level--);
5734 return NULL;
5735 }
5736 int _start_lineno = p->tokens[_mark]->lineno;
5737 UNUSED(_start_lineno); // Only used by EXTRA macro
5738 int _start_col_offset = p->tokens[_mark]->col_offset;
5739 UNUSED(_start_col_offset); // Only used by EXTRA macro
5740 { // signed_number !('+' | '-')
5741 if (p->error_indicator) {
5742 D(p->level--);
5743 return NULL;
5744 }
5745 D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "signed_number !('+' | '-')"));
5746 expr_ty signed_number_var;
5747 if (
5748 (signed_number_var = signed_number_rule(p)) // signed_number
5749 &&
5750 _PyPegen_lookahead(0, _tmp_53_rule, p)
5751 )
5752 {
5753 D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "signed_number !('+' | '-')"));
5754 _res = signed_number_var;
5755 goto done;
5756 }
5757 p->mark = _mark;
5758 D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5759 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "signed_number !('+' | '-')"));
5760 }
5761 { // signed_number '+' NUMBER
5762 if (p->error_indicator) {
5763 D(p->level--);
5764 return NULL;
5765 }
5766 D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "signed_number '+' NUMBER"));
5767 Token * _literal;
5768 expr_ty imag;
5769 expr_ty real;
5770 if (
5771 (real = signed_number_rule(p)) // signed_number
5772 &&
5773 (_literal = _PyPegen_expect_token(p, 14)) // token='+'
5774 &&
5775 (imag = _PyPegen_number_token(p)) // NUMBER
5776 )
5777 {
5778 D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "signed_number '+' NUMBER"));
5779 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5780 if (_token == NULL) {
5781 D(p->level--);
5782 return NULL;
5783 }
5784 int _end_lineno = _token->end_lineno;
5785 UNUSED(_end_lineno); // Only used by EXTRA macro
5786 int _end_col_offset = _token->end_col_offset;
5787 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02005788 _res = _PyAST_BinOp ( real , Add , imag , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08005789 if (_res == NULL && PyErr_Occurred()) {
5790 p->error_indicator = 1;
5791 D(p->level--);
5792 return NULL;
5793 }
5794 goto done;
5795 }
5796 p->mark = _mark;
5797 D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5798 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "signed_number '+' NUMBER"));
5799 }
5800 { // signed_number '-' NUMBER
5801 if (p->error_indicator) {
5802 D(p->level--);
5803 return NULL;
5804 }
5805 D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "signed_number '-' NUMBER"));
5806 Token * _literal;
5807 expr_ty imag;
5808 expr_ty real;
5809 if (
5810 (real = signed_number_rule(p)) // signed_number
5811 &&
5812 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
5813 &&
5814 (imag = _PyPegen_number_token(p)) // NUMBER
5815 )
5816 {
5817 D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "signed_number '-' NUMBER"));
5818 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5819 if (_token == NULL) {
5820 D(p->level--);
5821 return NULL;
5822 }
5823 int _end_lineno = _token->end_lineno;
5824 UNUSED(_end_lineno); // Only used by EXTRA macro
5825 int _end_col_offset = _token->end_col_offset;
5826 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02005827 _res = _PyAST_BinOp ( real , Sub , imag , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08005828 if (_res == NULL && PyErr_Occurred()) {
5829 p->error_indicator = 1;
5830 D(p->level--);
5831 return NULL;
5832 }
5833 goto done;
5834 }
5835 p->mark = _mark;
5836 D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5837 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "signed_number '-' NUMBER"));
5838 }
5839 { // strings
5840 if (p->error_indicator) {
5841 D(p->level--);
5842 return NULL;
5843 }
5844 D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "strings"));
5845 expr_ty strings_var;
5846 if (
5847 (strings_var = strings_rule(p)) // strings
5848 )
5849 {
5850 D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "strings"));
5851 _res = strings_var;
5852 goto done;
5853 }
5854 p->mark = _mark;
5855 D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5856 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "strings"));
5857 }
5858 { // 'None'
5859 if (p->error_indicator) {
5860 D(p->level--);
5861 return NULL;
5862 }
5863 D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'"));
5864 Token * _keyword;
5865 if (
5866 (_keyword = _PyPegen_expect_token(p, 523)) // token='None'
5867 )
5868 {
5869 D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'"));
5870 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5871 if (_token == NULL) {
5872 D(p->level--);
5873 return NULL;
5874 }
5875 int _end_lineno = _token->end_lineno;
5876 UNUSED(_end_lineno); // Only used by EXTRA macro
5877 int _end_col_offset = _token->end_col_offset;
5878 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02005879 _res = _PyAST_Constant ( Py_None , NULL , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08005880 if (_res == NULL && PyErr_Occurred()) {
5881 p->error_indicator = 1;
5882 D(p->level--);
5883 return NULL;
5884 }
5885 goto done;
5886 }
5887 p->mark = _mark;
5888 D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5889 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'None'"));
5890 }
5891 { // 'True'
5892 if (p->error_indicator) {
5893 D(p->level--);
5894 return NULL;
5895 }
5896 D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'"));
5897 Token * _keyword;
5898 if (
5899 (_keyword = _PyPegen_expect_token(p, 524)) // token='True'
5900 )
5901 {
5902 D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'"));
5903 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5904 if (_token == NULL) {
5905 D(p->level--);
5906 return NULL;
5907 }
5908 int _end_lineno = _token->end_lineno;
5909 UNUSED(_end_lineno); // Only used by EXTRA macro
5910 int _end_col_offset = _token->end_col_offset;
5911 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02005912 _res = _PyAST_Constant ( Py_True , NULL , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08005913 if (_res == NULL && PyErr_Occurred()) {
5914 p->error_indicator = 1;
5915 D(p->level--);
5916 return NULL;
5917 }
5918 goto done;
5919 }
5920 p->mark = _mark;
5921 D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5922 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'True'"));
5923 }
5924 { // 'False'
5925 if (p->error_indicator) {
5926 D(p->level--);
5927 return NULL;
5928 }
5929 D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'"));
5930 Token * _keyword;
5931 if (
5932 (_keyword = _PyPegen_expect_token(p, 525)) // token='False'
5933 )
5934 {
5935 D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'"));
5936 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5937 if (_token == NULL) {
5938 D(p->level--);
5939 return NULL;
5940 }
5941 int _end_lineno = _token->end_lineno;
5942 UNUSED(_end_lineno); // Only used by EXTRA macro
5943 int _end_col_offset = _token->end_col_offset;
5944 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02005945 _res = _PyAST_Constant ( Py_False , NULL , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08005946 if (_res == NULL && PyErr_Occurred()) {
5947 p->error_indicator = 1;
5948 D(p->level--);
5949 return NULL;
5950 }
5951 goto done;
5952 }
5953 p->mark = _mark;
5954 D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5955 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'False'"));
5956 }
5957 _res = NULL;
5958 done:
5959 D(p->level--);
5960 return _res;
5961}
5962
5963// signed_number: NUMBER | '-' NUMBER
5964static expr_ty
5965signed_number_rule(Parser *p)
5966{
5967 D(p->level++);
5968 if (p->error_indicator) {
5969 D(p->level--);
5970 return NULL;
5971 }
5972 expr_ty _res = NULL;
5973 int _mark = p->mark;
5974 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
5975 p->error_indicator = 1;
5976 D(p->level--);
5977 return NULL;
5978 }
5979 int _start_lineno = p->tokens[_mark]->lineno;
5980 UNUSED(_start_lineno); // Only used by EXTRA macro
5981 int _start_col_offset = p->tokens[_mark]->col_offset;
5982 UNUSED(_start_col_offset); // Only used by EXTRA macro
5983 { // NUMBER
5984 if (p->error_indicator) {
5985 D(p->level--);
5986 return NULL;
5987 }
5988 D(fprintf(stderr, "%*c> signed_number[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NUMBER"));
5989 expr_ty number_var;
5990 if (
5991 (number_var = _PyPegen_number_token(p)) // NUMBER
5992 )
5993 {
5994 D(fprintf(stderr, "%*c+ signed_number[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NUMBER"));
5995 _res = number_var;
5996 goto done;
5997 }
5998 p->mark = _mark;
5999 D(fprintf(stderr, "%*c%s signed_number[%d-%d]: %s failed!\n", p->level, ' ',
6000 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NUMBER"));
6001 }
6002 { // '-' NUMBER
6003 if (p->error_indicator) {
6004 D(p->level--);
6005 return NULL;
6006 }
6007 D(fprintf(stderr, "%*c> signed_number[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-' NUMBER"));
6008 Token * _literal;
6009 expr_ty number;
6010 if (
6011 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
6012 &&
6013 (number = _PyPegen_number_token(p)) // NUMBER
6014 )
6015 {
6016 D(fprintf(stderr, "%*c+ signed_number[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-' NUMBER"));
6017 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6018 if (_token == NULL) {
6019 D(p->level--);
6020 return NULL;
6021 }
6022 int _end_lineno = _token->end_lineno;
6023 UNUSED(_end_lineno); // Only used by EXTRA macro
6024 int _end_col_offset = _token->end_col_offset;
6025 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02006026 _res = _PyAST_UnaryOp ( USub , number , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08006027 if (_res == NULL && PyErr_Occurred()) {
6028 p->error_indicator = 1;
6029 D(p->level--);
6030 return NULL;
6031 }
6032 goto done;
6033 }
6034 p->mark = _mark;
6035 D(fprintf(stderr, "%*c%s signed_number[%d-%d]: %s failed!\n", p->level, ' ',
6036 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-' NUMBER"));
6037 }
6038 _res = NULL;
6039 done:
6040 D(p->level--);
6041 return _res;
6042}
6043
6044// capture_pattern: !"_" NAME !('.' | '(' | '=')
6045static expr_ty
6046capture_pattern_rule(Parser *p)
6047{
6048 D(p->level++);
6049 if (p->error_indicator) {
6050 D(p->level--);
6051 return NULL;
6052 }
6053 expr_ty _res = NULL;
6054 int _mark = p->mark;
6055 { // !"_" NAME !('.' | '(' | '=')
6056 if (p->error_indicator) {
6057 D(p->level--);
6058 return NULL;
6059 }
6060 D(fprintf(stderr, "%*c> capture_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "!\"_\" NAME !('.' | '(' | '=')"));
6061 expr_ty name;
6062 if (
6063 _PyPegen_lookahead_with_string(0, _PyPegen_expect_soft_keyword, p, "_")
6064 &&
6065 (name = _PyPegen_name_token(p)) // NAME
6066 &&
6067 _PyPegen_lookahead(0, _tmp_54_rule, p)
6068 )
6069 {
6070 D(fprintf(stderr, "%*c+ capture_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "!\"_\" NAME !('.' | '(' | '=')"));
6071 _res = _PyPegen_set_expr_context ( p , name , Store );
6072 if (_res == NULL && PyErr_Occurred()) {
6073 p->error_indicator = 1;
6074 D(p->level--);
6075 return NULL;
6076 }
6077 goto done;
6078 }
6079 p->mark = _mark;
6080 D(fprintf(stderr, "%*c%s capture_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6081 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "!\"_\" NAME !('.' | '(' | '=')"));
6082 }
6083 _res = NULL;
6084 done:
6085 D(p->level--);
6086 return _res;
6087}
6088
6089// wildcard_pattern: "_"
6090static expr_ty
6091wildcard_pattern_rule(Parser *p)
6092{
6093 D(p->level++);
6094 if (p->error_indicator) {
6095 D(p->level--);
6096 return NULL;
6097 }
6098 expr_ty _res = NULL;
6099 int _mark = p->mark;
6100 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6101 p->error_indicator = 1;
6102 D(p->level--);
6103 return NULL;
6104 }
6105 int _start_lineno = p->tokens[_mark]->lineno;
6106 UNUSED(_start_lineno); // Only used by EXTRA macro
6107 int _start_col_offset = p->tokens[_mark]->col_offset;
6108 UNUSED(_start_col_offset); // Only used by EXTRA macro
6109 { // "_"
6110 if (p->error_indicator) {
6111 D(p->level--);
6112 return NULL;
6113 }
6114 D(fprintf(stderr, "%*c> wildcard_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"_\""));
6115 expr_ty _keyword;
6116 if (
6117 (_keyword = _PyPegen_expect_soft_keyword(p, "_")) // soft_keyword='"_"'
6118 )
6119 {
6120 D(fprintf(stderr, "%*c+ wildcard_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"_\""));
6121 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6122 if (_token == NULL) {
6123 D(p->level--);
6124 return NULL;
6125 }
6126 int _end_lineno = _token->end_lineno;
6127 UNUSED(_end_lineno); // Only used by EXTRA macro
6128 int _end_col_offset = _token->end_col_offset;
6129 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02006130 _res = _PyAST_Name ( CHECK ( PyObject * , _PyPegen_new_identifier ( p , "_" ) ) , Store , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08006131 if (_res == NULL && PyErr_Occurred()) {
6132 p->error_indicator = 1;
6133 D(p->level--);
6134 return NULL;
6135 }
6136 goto done;
6137 }
6138 p->mark = _mark;
6139 D(fprintf(stderr, "%*c%s wildcard_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6140 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"_\""));
6141 }
6142 _res = NULL;
6143 done:
6144 D(p->level--);
6145 return _res;
6146}
6147
6148// value_pattern: attr !('.' | '(' | '=')
6149static expr_ty
6150value_pattern_rule(Parser *p)
6151{
6152 D(p->level++);
6153 if (p->error_indicator) {
6154 D(p->level--);
6155 return NULL;
6156 }
6157 expr_ty _res = NULL;
6158 int _mark = p->mark;
6159 { // attr !('.' | '(' | '=')
6160 if (p->error_indicator) {
6161 D(p->level--);
6162 return NULL;
6163 }
6164 D(fprintf(stderr, "%*c> value_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "attr !('.' | '(' | '=')"));
6165 expr_ty attr;
6166 if (
6167 (attr = attr_rule(p)) // attr
6168 &&
6169 _PyPegen_lookahead(0, _tmp_55_rule, p)
6170 )
6171 {
6172 D(fprintf(stderr, "%*c+ value_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "attr !('.' | '(' | '=')"));
6173 _res = attr;
6174 if (_res == NULL && PyErr_Occurred()) {
6175 p->error_indicator = 1;
6176 D(p->level--);
6177 return NULL;
6178 }
6179 goto done;
6180 }
6181 p->mark = _mark;
6182 D(fprintf(stderr, "%*c%s value_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6183 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "attr !('.' | '(' | '=')"));
6184 }
6185 _res = NULL;
6186 done:
6187 D(p->level--);
6188 return _res;
6189}
6190
6191// Left-recursive
6192// attr: name_or_attr '.' NAME
6193static expr_ty attr_raw(Parser *);
6194static expr_ty
6195attr_rule(Parser *p)
6196{
6197 D(p->level++);
6198 expr_ty _res = NULL;
6199 if (_PyPegen_is_memoized(p, attr_type, &_res)) {
6200 D(p->level--);
6201 return _res;
6202 }
6203 int _mark = p->mark;
6204 int _resmark = p->mark;
6205 while (1) {
6206 int tmpvar_1 = _PyPegen_update_memo(p, _mark, attr_type, _res);
6207 if (tmpvar_1) {
6208 D(p->level--);
6209 return _res;
6210 }
6211 p->mark = _mark;
6212 void *_raw = attr_raw(p);
6213 if (p->error_indicator)
6214 return NULL;
6215 if (_raw == NULL || p->mark <= _resmark)
6216 break;
6217 _resmark = p->mark;
6218 _res = _raw;
6219 }
6220 p->mark = _resmark;
6221 D(p->level--);
6222 return _res;
6223}
6224static expr_ty
6225attr_raw(Parser *p)
6226{
6227 D(p->level++);
6228 if (p->error_indicator) {
6229 D(p->level--);
6230 return NULL;
6231 }
6232 expr_ty _res = NULL;
6233 int _mark = p->mark;
6234 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6235 p->error_indicator = 1;
6236 D(p->level--);
6237 return NULL;
6238 }
6239 int _start_lineno = p->tokens[_mark]->lineno;
6240 UNUSED(_start_lineno); // Only used by EXTRA macro
6241 int _start_col_offset = p->tokens[_mark]->col_offset;
6242 UNUSED(_start_col_offset); // Only used by EXTRA macro
6243 { // name_or_attr '.' NAME
6244 if (p->error_indicator) {
6245 D(p->level--);
6246 return NULL;
6247 }
6248 D(fprintf(stderr, "%*c> attr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "name_or_attr '.' NAME"));
6249 Token * _literal;
6250 expr_ty attr;
6251 expr_ty value;
6252 if (
6253 (value = name_or_attr_rule(p)) // name_or_attr
6254 &&
6255 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
6256 &&
6257 (attr = _PyPegen_name_token(p)) // NAME
6258 )
6259 {
6260 D(fprintf(stderr, "%*c+ attr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "name_or_attr '.' NAME"));
6261 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6262 if (_token == NULL) {
6263 D(p->level--);
6264 return NULL;
6265 }
6266 int _end_lineno = _token->end_lineno;
6267 UNUSED(_end_lineno); // Only used by EXTRA macro
6268 int _end_col_offset = _token->end_col_offset;
6269 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02006270 _res = _PyAST_Attribute ( value , attr -> v . Name . id , Load , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08006271 if (_res == NULL && PyErr_Occurred()) {
6272 p->error_indicator = 1;
6273 D(p->level--);
6274 return NULL;
6275 }
6276 goto done;
6277 }
6278 p->mark = _mark;
6279 D(fprintf(stderr, "%*c%s attr[%d-%d]: %s failed!\n", p->level, ' ',
6280 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "name_or_attr '.' NAME"));
6281 }
6282 _res = NULL;
6283 done:
6284 D(p->level--);
6285 return _res;
6286}
6287
6288// Left-recursive
6289// name_or_attr: attr | NAME
6290static expr_ty
6291name_or_attr_rule(Parser *p)
6292{
6293 D(p->level++);
6294 if (p->error_indicator) {
6295 D(p->level--);
6296 return NULL;
6297 }
6298 expr_ty _res = NULL;
6299 int _mark = p->mark;
6300 { // attr
6301 if (p->error_indicator) {
6302 D(p->level--);
6303 return NULL;
6304 }
6305 D(fprintf(stderr, "%*c> name_or_attr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "attr"));
6306 expr_ty attr_var;
6307 if (
6308 (attr_var = attr_rule(p)) // attr
6309 )
6310 {
6311 D(fprintf(stderr, "%*c+ name_or_attr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "attr"));
6312 _res = attr_var;
6313 goto done;
6314 }
6315 p->mark = _mark;
6316 D(fprintf(stderr, "%*c%s name_or_attr[%d-%d]: %s failed!\n", p->level, ' ',
6317 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "attr"));
6318 }
6319 { // NAME
6320 if (p->error_indicator) {
6321 D(p->level--);
6322 return NULL;
6323 }
6324 D(fprintf(stderr, "%*c> name_or_attr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
6325 expr_ty name_var;
6326 if (
6327 (name_var = _PyPegen_name_token(p)) // NAME
6328 )
6329 {
6330 D(fprintf(stderr, "%*c+ name_or_attr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
6331 _res = name_var;
6332 goto done;
6333 }
6334 p->mark = _mark;
6335 D(fprintf(stderr, "%*c%s name_or_attr[%d-%d]: %s failed!\n", p->level, ' ',
6336 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
6337 }
6338 _res = NULL;
6339 done:
6340 D(p->level--);
6341 return _res;
6342}
6343
6344// group_pattern: '(' pattern ')'
6345static expr_ty
6346group_pattern_rule(Parser *p)
6347{
6348 D(p->level++);
6349 if (p->error_indicator) {
6350 D(p->level--);
6351 return NULL;
6352 }
6353 expr_ty _res = NULL;
6354 int _mark = p->mark;
6355 { // '(' pattern ')'
6356 if (p->error_indicator) {
6357 D(p->level--);
6358 return NULL;
6359 }
6360 D(fprintf(stderr, "%*c> group_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' pattern ')'"));
6361 Token * _literal;
6362 Token * _literal_1;
6363 expr_ty pattern;
6364 if (
6365 (_literal = _PyPegen_expect_token(p, 7)) // token='('
6366 &&
6367 (pattern = pattern_rule(p)) // pattern
6368 &&
6369 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
6370 )
6371 {
6372 D(fprintf(stderr, "%*c+ group_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' pattern ')'"));
6373 _res = pattern;
6374 if (_res == NULL && PyErr_Occurred()) {
6375 p->error_indicator = 1;
6376 D(p->level--);
6377 return NULL;
6378 }
6379 goto done;
6380 }
6381 p->mark = _mark;
6382 D(fprintf(stderr, "%*c%s group_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6383 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' pattern ')'"));
6384 }
6385 _res = NULL;
6386 done:
6387 D(p->level--);
6388 return _res;
6389}
6390
6391// sequence_pattern: '[' maybe_sequence_pattern? ']' | '(' open_sequence_pattern? ')'
6392static expr_ty
6393sequence_pattern_rule(Parser *p)
6394{
6395 D(p->level++);
6396 if (p->error_indicator) {
6397 D(p->level--);
6398 return NULL;
6399 }
6400 expr_ty _res = NULL;
6401 int _mark = p->mark;
6402 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6403 p->error_indicator = 1;
6404 D(p->level--);
6405 return NULL;
6406 }
6407 int _start_lineno = p->tokens[_mark]->lineno;
6408 UNUSED(_start_lineno); // Only used by EXTRA macro
6409 int _start_col_offset = p->tokens[_mark]->col_offset;
6410 UNUSED(_start_col_offset); // Only used by EXTRA macro
6411 { // '[' maybe_sequence_pattern? ']'
6412 if (p->error_indicator) {
6413 D(p->level--);
6414 return NULL;
6415 }
6416 D(fprintf(stderr, "%*c> sequence_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' maybe_sequence_pattern? ']'"));
6417 Token * _literal;
6418 Token * _literal_1;
6419 void *values;
6420 if (
6421 (_literal = _PyPegen_expect_token(p, 9)) // token='['
6422 &&
6423 (values = maybe_sequence_pattern_rule(p), 1) // maybe_sequence_pattern?
6424 &&
6425 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
6426 )
6427 {
6428 D(fprintf(stderr, "%*c+ sequence_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' maybe_sequence_pattern? ']'"));
6429 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6430 if (_token == NULL) {
6431 D(p->level--);
6432 return NULL;
6433 }
6434 int _end_lineno = _token->end_lineno;
6435 UNUSED(_end_lineno); // Only used by EXTRA macro
6436 int _end_col_offset = _token->end_col_offset;
6437 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02006438 _res = _PyAST_List ( values , Load , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08006439 if (_res == NULL && PyErr_Occurred()) {
6440 p->error_indicator = 1;
6441 D(p->level--);
6442 return NULL;
6443 }
6444 goto done;
6445 }
6446 p->mark = _mark;
6447 D(fprintf(stderr, "%*c%s sequence_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6448 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' maybe_sequence_pattern? ']'"));
6449 }
6450 { // '(' open_sequence_pattern? ')'
6451 if (p->error_indicator) {
6452 D(p->level--);
6453 return NULL;
6454 }
6455 D(fprintf(stderr, "%*c> sequence_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' open_sequence_pattern? ')'"));
6456 Token * _literal;
6457 Token * _literal_1;
6458 void *values;
6459 if (
6460 (_literal = _PyPegen_expect_token(p, 7)) // token='('
6461 &&
6462 (values = open_sequence_pattern_rule(p), 1) // open_sequence_pattern?
6463 &&
6464 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
6465 )
6466 {
6467 D(fprintf(stderr, "%*c+ sequence_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' open_sequence_pattern? ')'"));
6468 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6469 if (_token == NULL) {
6470 D(p->level--);
6471 return NULL;
6472 }
6473 int _end_lineno = _token->end_lineno;
6474 UNUSED(_end_lineno); // Only used by EXTRA macro
6475 int _end_col_offset = _token->end_col_offset;
6476 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02006477 _res = _PyAST_Tuple ( values , Load , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08006478 if (_res == NULL && PyErr_Occurred()) {
6479 p->error_indicator = 1;
6480 D(p->level--);
6481 return NULL;
6482 }
6483 goto done;
6484 }
6485 p->mark = _mark;
6486 D(fprintf(stderr, "%*c%s sequence_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6487 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' open_sequence_pattern? ')'"));
6488 }
6489 _res = NULL;
6490 done:
6491 D(p->level--);
6492 return _res;
6493}
6494
6495// open_sequence_pattern: maybe_star_pattern ',' maybe_sequence_pattern?
6496static asdl_seq*
6497open_sequence_pattern_rule(Parser *p)
6498{
6499 D(p->level++);
6500 if (p->error_indicator) {
6501 D(p->level--);
6502 return NULL;
6503 }
6504 asdl_seq* _res = NULL;
6505 int _mark = p->mark;
6506 { // maybe_star_pattern ',' maybe_sequence_pattern?
6507 if (p->error_indicator) {
6508 D(p->level--);
6509 return NULL;
6510 }
6511 D(fprintf(stderr, "%*c> open_sequence_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "maybe_star_pattern ',' maybe_sequence_pattern?"));
6512 Token * _literal;
6513 expr_ty value;
6514 void *values;
6515 if (
6516 (value = maybe_star_pattern_rule(p)) // maybe_star_pattern
6517 &&
6518 (_literal = _PyPegen_expect_token(p, 12)) // token=','
6519 &&
6520 (values = maybe_sequence_pattern_rule(p), 1) // maybe_sequence_pattern?
6521 )
6522 {
6523 D(fprintf(stderr, "%*c+ open_sequence_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "maybe_star_pattern ',' maybe_sequence_pattern?"));
6524 _res = _PyPegen_seq_insert_in_front ( p , value , values );
6525 if (_res == NULL && PyErr_Occurred()) {
6526 p->error_indicator = 1;
6527 D(p->level--);
6528 return NULL;
6529 }
6530 goto done;
6531 }
6532 p->mark = _mark;
6533 D(fprintf(stderr, "%*c%s open_sequence_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6534 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "maybe_star_pattern ',' maybe_sequence_pattern?"));
6535 }
6536 _res = NULL;
6537 done:
6538 D(p->level--);
6539 return _res;
6540}
6541
6542// maybe_sequence_pattern: ','.maybe_star_pattern+ ','?
6543static asdl_seq*
6544maybe_sequence_pattern_rule(Parser *p)
6545{
6546 D(p->level++);
6547 if (p->error_indicator) {
6548 D(p->level--);
6549 return NULL;
6550 }
6551 asdl_seq* _res = NULL;
6552 int _mark = p->mark;
6553 { // ','.maybe_star_pattern+ ','?
6554 if (p->error_indicator) {
6555 D(p->level--);
6556 return NULL;
6557 }
6558 D(fprintf(stderr, "%*c> maybe_sequence_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.maybe_star_pattern+ ','?"));
6559 void *_opt_var;
6560 UNUSED(_opt_var); // Silence compiler warnings
6561 asdl_seq * values;
6562 if (
6563 (values = _gather_56_rule(p)) // ','.maybe_star_pattern+
6564 &&
6565 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
6566 )
6567 {
6568 D(fprintf(stderr, "%*c+ maybe_sequence_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.maybe_star_pattern+ ','?"));
6569 _res = values;
6570 if (_res == NULL && PyErr_Occurred()) {
6571 p->error_indicator = 1;
6572 D(p->level--);
6573 return NULL;
6574 }
6575 goto done;
6576 }
6577 p->mark = _mark;
6578 D(fprintf(stderr, "%*c%s maybe_sequence_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6579 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.maybe_star_pattern+ ','?"));
6580 }
6581 _res = NULL;
6582 done:
6583 D(p->level--);
6584 return _res;
6585}
6586
6587// maybe_star_pattern: star_pattern | pattern
6588static expr_ty
6589maybe_star_pattern_rule(Parser *p)
6590{
6591 D(p->level++);
6592 if (p->error_indicator) {
6593 D(p->level--);
6594 return NULL;
6595 }
6596 expr_ty _res = NULL;
6597 int _mark = p->mark;
6598 { // star_pattern
6599 if (p->error_indicator) {
6600 D(p->level--);
6601 return NULL;
6602 }
6603 D(fprintf(stderr, "%*c> maybe_star_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_pattern"));
6604 expr_ty star_pattern_var;
6605 if (
6606 (star_pattern_var = star_pattern_rule(p)) // star_pattern
6607 )
6608 {
6609 D(fprintf(stderr, "%*c+ maybe_star_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_pattern"));
6610 _res = star_pattern_var;
6611 goto done;
6612 }
6613 p->mark = _mark;
6614 D(fprintf(stderr, "%*c%s maybe_star_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6615 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_pattern"));
6616 }
6617 { // pattern
6618 if (p->error_indicator) {
6619 D(p->level--);
6620 return NULL;
6621 }
6622 D(fprintf(stderr, "%*c> maybe_star_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "pattern"));
6623 expr_ty pattern_var;
6624 if (
6625 (pattern_var = pattern_rule(p)) // pattern
6626 )
6627 {
6628 D(fprintf(stderr, "%*c+ maybe_star_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "pattern"));
6629 _res = pattern_var;
6630 goto done;
6631 }
6632 p->mark = _mark;
6633 D(fprintf(stderr, "%*c%s maybe_star_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6634 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "pattern"));
6635 }
6636 _res = NULL;
6637 done:
6638 D(p->level--);
6639 return _res;
6640}
6641
6642// star_pattern: '*' (capture_pattern | wildcard_pattern)
6643static expr_ty
6644star_pattern_rule(Parser *p)
6645{
6646 D(p->level++);
6647 if (p->error_indicator) {
6648 D(p->level--);
6649 return NULL;
6650 }
6651 expr_ty _res = NULL;
6652 int _mark = p->mark;
6653 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6654 p->error_indicator = 1;
6655 D(p->level--);
6656 return NULL;
6657 }
6658 int _start_lineno = p->tokens[_mark]->lineno;
6659 UNUSED(_start_lineno); // Only used by EXTRA macro
6660 int _start_col_offset = p->tokens[_mark]->col_offset;
6661 UNUSED(_start_col_offset); // Only used by EXTRA macro
6662 { // '*' (capture_pattern | wildcard_pattern)
6663 if (p->error_indicator) {
6664 D(p->level--);
6665 return NULL;
6666 }
6667 D(fprintf(stderr, "%*c> star_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (capture_pattern | wildcard_pattern)"));
6668 Token * _literal;
6669 void *value;
6670 if (
6671 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
6672 &&
6673 (value = _tmp_58_rule(p)) // capture_pattern | wildcard_pattern
6674 )
6675 {
6676 D(fprintf(stderr, "%*c+ star_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (capture_pattern | wildcard_pattern)"));
6677 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6678 if (_token == NULL) {
6679 D(p->level--);
6680 return NULL;
6681 }
6682 int _end_lineno = _token->end_lineno;
6683 UNUSED(_end_lineno); // Only used by EXTRA macro
6684 int _end_col_offset = _token->end_col_offset;
6685 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02006686 _res = _PyAST_Starred ( value , Store , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08006687 if (_res == NULL && PyErr_Occurred()) {
6688 p->error_indicator = 1;
6689 D(p->level--);
6690 return NULL;
6691 }
6692 goto done;
6693 }
6694 p->mark = _mark;
6695 D(fprintf(stderr, "%*c%s star_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6696 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' (capture_pattern | wildcard_pattern)"));
6697 }
6698 _res = NULL;
6699 done:
6700 D(p->level--);
6701 return _res;
6702}
6703
6704// mapping_pattern: '{' items_pattern? '}'
6705static expr_ty
6706mapping_pattern_rule(Parser *p)
6707{
6708 D(p->level++);
6709 if (p->error_indicator) {
6710 D(p->level--);
6711 return NULL;
6712 }
6713 expr_ty _res = NULL;
6714 int _mark = p->mark;
6715 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6716 p->error_indicator = 1;
6717 D(p->level--);
6718 return NULL;
6719 }
6720 int _start_lineno = p->tokens[_mark]->lineno;
6721 UNUSED(_start_lineno); // Only used by EXTRA macro
6722 int _start_col_offset = p->tokens[_mark]->col_offset;
6723 UNUSED(_start_col_offset); // Only used by EXTRA macro
6724 { // '{' items_pattern? '}'
6725 if (p->error_indicator) {
6726 D(p->level--);
6727 return NULL;
6728 }
6729 D(fprintf(stderr, "%*c> mapping_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' items_pattern? '}'"));
6730 Token * _literal;
6731 Token * _literal_1;
6732 void *items;
6733 if (
6734 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
6735 &&
6736 (items = items_pattern_rule(p), 1) // items_pattern?
6737 &&
6738 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
6739 )
6740 {
6741 D(fprintf(stderr, "%*c+ mapping_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' items_pattern? '}'"));
6742 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6743 if (_token == NULL) {
6744 D(p->level--);
6745 return NULL;
6746 }
6747 int _end_lineno = _token->end_lineno;
6748 UNUSED(_end_lineno); // Only used by EXTRA macro
6749 int _end_col_offset = _token->end_col_offset;
6750 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02006751 _res = _PyAST_Dict ( CHECK ( asdl_expr_seq * , _PyPegen_get_keys ( p , items ) ) , CHECK ( asdl_expr_seq * , _PyPegen_get_values ( p , items ) ) , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08006752 if (_res == NULL && PyErr_Occurred()) {
6753 p->error_indicator = 1;
6754 D(p->level--);
6755 return NULL;
6756 }
6757 goto done;
6758 }
6759 p->mark = _mark;
6760 D(fprintf(stderr, "%*c%s mapping_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6761 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' items_pattern? '}'"));
6762 }
6763 _res = NULL;
6764 done:
6765 D(p->level--);
6766 return _res;
6767}
6768
6769// items_pattern: ','.key_value_pattern+ ','?
6770static asdl_seq*
6771items_pattern_rule(Parser *p)
6772{
6773 D(p->level++);
6774 if (p->error_indicator) {
6775 D(p->level--);
6776 return NULL;
6777 }
6778 asdl_seq* _res = NULL;
6779 int _mark = p->mark;
6780 { // ','.key_value_pattern+ ','?
6781 if (p->error_indicator) {
6782 D(p->level--);
6783 return NULL;
6784 }
6785 D(fprintf(stderr, "%*c> items_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.key_value_pattern+ ','?"));
6786 void *_opt_var;
6787 UNUSED(_opt_var); // Silence compiler warnings
6788 asdl_seq * items;
6789 if (
6790 (items = _gather_59_rule(p)) // ','.key_value_pattern+
6791 &&
6792 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
6793 )
6794 {
6795 D(fprintf(stderr, "%*c+ items_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.key_value_pattern+ ','?"));
6796 _res = items;
6797 if (_res == NULL && PyErr_Occurred()) {
6798 p->error_indicator = 1;
6799 D(p->level--);
6800 return NULL;
6801 }
6802 goto done;
6803 }
6804 p->mark = _mark;
6805 D(fprintf(stderr, "%*c%s items_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6806 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.key_value_pattern+ ','?"));
6807 }
6808 _res = NULL;
6809 done:
6810 D(p->level--);
6811 return _res;
6812}
6813
6814// key_value_pattern: (literal_pattern | value_pattern) ':' pattern | double_star_pattern
6815static KeyValuePair*
6816key_value_pattern_rule(Parser *p)
6817{
6818 D(p->level++);
6819 if (p->error_indicator) {
6820 D(p->level--);
6821 return NULL;
6822 }
6823 KeyValuePair* _res = NULL;
6824 int _mark = p->mark;
6825 { // (literal_pattern | value_pattern) ':' pattern
6826 if (p->error_indicator) {
6827 D(p->level--);
6828 return NULL;
6829 }
6830 D(fprintf(stderr, "%*c> key_value_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(literal_pattern | value_pattern) ':' pattern"));
6831 Token * _literal;
6832 void *key;
6833 expr_ty value;
6834 if (
6835 (key = _tmp_61_rule(p)) // literal_pattern | value_pattern
6836 &&
6837 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
6838 &&
6839 (value = pattern_rule(p)) // pattern
6840 )
6841 {
6842 D(fprintf(stderr, "%*c+ key_value_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(literal_pattern | value_pattern) ':' pattern"));
6843 _res = _PyPegen_key_value_pair ( p , key , value );
6844 if (_res == NULL && PyErr_Occurred()) {
6845 p->error_indicator = 1;
6846 D(p->level--);
6847 return NULL;
6848 }
6849 goto done;
6850 }
6851 p->mark = _mark;
6852 D(fprintf(stderr, "%*c%s key_value_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6853 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(literal_pattern | value_pattern) ':' pattern"));
6854 }
6855 { // double_star_pattern
6856 if (p->error_indicator) {
6857 D(p->level--);
6858 return NULL;
6859 }
6860 D(fprintf(stderr, "%*c> key_value_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "double_star_pattern"));
6861 KeyValuePair* double_star_pattern_var;
6862 if (
6863 (double_star_pattern_var = double_star_pattern_rule(p)) // double_star_pattern
6864 )
6865 {
6866 D(fprintf(stderr, "%*c+ key_value_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "double_star_pattern"));
6867 _res = double_star_pattern_var;
6868 goto done;
6869 }
6870 p->mark = _mark;
6871 D(fprintf(stderr, "%*c%s key_value_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6872 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "double_star_pattern"));
6873 }
6874 _res = NULL;
6875 done:
6876 D(p->level--);
6877 return _res;
6878}
6879
6880// double_star_pattern: '**' capture_pattern
6881static KeyValuePair*
6882double_star_pattern_rule(Parser *p)
6883{
6884 D(p->level++);
6885 if (p->error_indicator) {
6886 D(p->level--);
6887 return NULL;
6888 }
6889 KeyValuePair* _res = NULL;
6890 int _mark = p->mark;
6891 { // '**' capture_pattern
6892 if (p->error_indicator) {
6893 D(p->level--);
6894 return NULL;
6895 }
6896 D(fprintf(stderr, "%*c> double_star_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' capture_pattern"));
6897 Token * _literal;
6898 expr_ty value;
6899 if (
6900 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
6901 &&
6902 (value = capture_pattern_rule(p)) // capture_pattern
6903 )
6904 {
6905 D(fprintf(stderr, "%*c+ double_star_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' capture_pattern"));
6906 _res = _PyPegen_key_value_pair ( p , NULL , value );
6907 if (_res == NULL && PyErr_Occurred()) {
6908 p->error_indicator = 1;
6909 D(p->level--);
6910 return NULL;
6911 }
6912 goto done;
6913 }
6914 p->mark = _mark;
6915 D(fprintf(stderr, "%*c%s double_star_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6916 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' capture_pattern"));
6917 }
6918 _res = NULL;
6919 done:
6920 D(p->level--);
6921 return _res;
6922}
6923
6924// class_pattern:
6925// | name_or_attr '(' ')'
6926// | name_or_attr '(' positional_patterns ','? ')'
6927// | name_or_attr '(' keyword_patterns ','? ')'
6928// | name_or_attr '(' positional_patterns ',' keyword_patterns ','? ')'
6929static expr_ty
6930class_pattern_rule(Parser *p)
6931{
6932 D(p->level++);
6933 if (p->error_indicator) {
6934 D(p->level--);
6935 return NULL;
6936 }
6937 expr_ty _res = NULL;
6938 int _mark = p->mark;
6939 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6940 p->error_indicator = 1;
6941 D(p->level--);
6942 return NULL;
6943 }
6944 int _start_lineno = p->tokens[_mark]->lineno;
6945 UNUSED(_start_lineno); // Only used by EXTRA macro
6946 int _start_col_offset = p->tokens[_mark]->col_offset;
6947 UNUSED(_start_col_offset); // Only used by EXTRA macro
6948 { // name_or_attr '(' ')'
6949 if (p->error_indicator) {
6950 D(p->level--);
6951 return NULL;
6952 }
6953 D(fprintf(stderr, "%*c> class_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' ')'"));
6954 Token * _literal;
6955 Token * _literal_1;
6956 expr_ty func;
6957 if (
6958 (func = name_or_attr_rule(p)) // name_or_attr
6959 &&
6960 (_literal = _PyPegen_expect_token(p, 7)) // token='('
6961 &&
6962 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
6963 )
6964 {
6965 D(fprintf(stderr, "%*c+ class_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' ')'"));
6966 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6967 if (_token == NULL) {
6968 D(p->level--);
6969 return NULL;
6970 }
6971 int _end_lineno = _token->end_lineno;
6972 UNUSED(_end_lineno); // Only used by EXTRA macro
6973 int _end_col_offset = _token->end_col_offset;
6974 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02006975 _res = _PyAST_Call ( func , NULL , NULL , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08006976 if (_res == NULL && PyErr_Occurred()) {
6977 p->error_indicator = 1;
6978 D(p->level--);
6979 return NULL;
6980 }
6981 goto done;
6982 }
6983 p->mark = _mark;
6984 D(fprintf(stderr, "%*c%s class_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6985 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "name_or_attr '(' ')'"));
6986 }
6987 { // name_or_attr '(' positional_patterns ','? ')'
6988 if (p->error_indicator) {
6989 D(p->level--);
6990 return NULL;
6991 }
6992 D(fprintf(stderr, "%*c> class_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' positional_patterns ','? ')'"));
6993 Token * _literal;
6994 Token * _literal_1;
6995 void *_opt_var;
6996 UNUSED(_opt_var); // Silence compiler warnings
6997 asdl_expr_seq* args;
6998 expr_ty func;
6999 if (
7000 (func = name_or_attr_rule(p)) // name_or_attr
7001 &&
7002 (_literal = _PyPegen_expect_token(p, 7)) // token='('
7003 &&
7004 (args = positional_patterns_rule(p)) // positional_patterns
7005 &&
7006 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
7007 &&
7008 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
7009 )
7010 {
7011 D(fprintf(stderr, "%*c+ class_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' positional_patterns ','? ')'"));
7012 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7013 if (_token == NULL) {
7014 D(p->level--);
7015 return NULL;
7016 }
7017 int _end_lineno = _token->end_lineno;
7018 UNUSED(_end_lineno); // Only used by EXTRA macro
7019 int _end_col_offset = _token->end_col_offset;
7020 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02007021 _res = _PyAST_Call ( func , args , NULL , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08007022 if (_res == NULL && PyErr_Occurred()) {
7023 p->error_indicator = 1;
7024 D(p->level--);
7025 return NULL;
7026 }
7027 goto done;
7028 }
7029 p->mark = _mark;
7030 D(fprintf(stderr, "%*c%s class_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7031 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "name_or_attr '(' positional_patterns ','? ')'"));
7032 }
7033 { // name_or_attr '(' keyword_patterns ','? ')'
7034 if (p->error_indicator) {
7035 D(p->level--);
7036 return NULL;
7037 }
7038 D(fprintf(stderr, "%*c> class_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' keyword_patterns ','? ')'"));
7039 Token * _literal;
7040 Token * _literal_1;
7041 void *_opt_var;
7042 UNUSED(_opt_var); // Silence compiler warnings
7043 expr_ty func;
7044 asdl_keyword_seq* keywords;
7045 if (
7046 (func = name_or_attr_rule(p)) // name_or_attr
7047 &&
7048 (_literal = _PyPegen_expect_token(p, 7)) // token='('
7049 &&
7050 (keywords = keyword_patterns_rule(p)) // keyword_patterns
7051 &&
7052 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
7053 &&
7054 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
7055 )
7056 {
7057 D(fprintf(stderr, "%*c+ class_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' keyword_patterns ','? ')'"));
7058 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7059 if (_token == NULL) {
7060 D(p->level--);
7061 return NULL;
7062 }
7063 int _end_lineno = _token->end_lineno;
7064 UNUSED(_end_lineno); // Only used by EXTRA macro
7065 int _end_col_offset = _token->end_col_offset;
7066 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02007067 _res = _PyAST_Call ( func , NULL , keywords , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08007068 if (_res == NULL && PyErr_Occurred()) {
7069 p->error_indicator = 1;
7070 D(p->level--);
7071 return NULL;
7072 }
7073 goto done;
7074 }
7075 p->mark = _mark;
7076 D(fprintf(stderr, "%*c%s class_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7077 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "name_or_attr '(' keyword_patterns ','? ')'"));
7078 }
7079 { // name_or_attr '(' positional_patterns ',' keyword_patterns ','? ')'
7080 if (p->error_indicator) {
7081 D(p->level--);
7082 return NULL;
7083 }
7084 D(fprintf(stderr, "%*c> class_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' positional_patterns ',' keyword_patterns ','? ')'"));
7085 Token * _literal;
7086 Token * _literal_1;
7087 Token * _literal_2;
7088 void *_opt_var;
7089 UNUSED(_opt_var); // Silence compiler warnings
7090 asdl_expr_seq* args;
7091 expr_ty func;
7092 asdl_keyword_seq* keywords;
7093 if (
7094 (func = name_or_attr_rule(p)) // name_or_attr
7095 &&
7096 (_literal = _PyPegen_expect_token(p, 7)) // token='('
7097 &&
7098 (args = positional_patterns_rule(p)) // positional_patterns
7099 &&
7100 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
7101 &&
7102 (keywords = keyword_patterns_rule(p)) // keyword_patterns
7103 &&
7104 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
7105 &&
7106 (_literal_2 = _PyPegen_expect_token(p, 8)) // token=')'
7107 )
7108 {
7109 D(fprintf(stderr, "%*c+ class_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' positional_patterns ',' keyword_patterns ','? ')'"));
7110 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7111 if (_token == NULL) {
7112 D(p->level--);
7113 return NULL;
7114 }
7115 int _end_lineno = _token->end_lineno;
7116 UNUSED(_end_lineno); // Only used by EXTRA macro
7117 int _end_col_offset = _token->end_col_offset;
7118 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02007119 _res = _PyAST_Call ( func , args , keywords , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08007120 if (_res == NULL && PyErr_Occurred()) {
7121 p->error_indicator = 1;
7122 D(p->level--);
7123 return NULL;
7124 }
7125 goto done;
7126 }
7127 p->mark = _mark;
7128 D(fprintf(stderr, "%*c%s class_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7129 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "name_or_attr '(' positional_patterns ',' keyword_patterns ','? ')'"));
7130 }
7131 _res = NULL;
7132 done:
7133 D(p->level--);
7134 return _res;
7135}
7136
7137// positional_patterns: ','.pattern+
7138static asdl_expr_seq*
7139positional_patterns_rule(Parser *p)
7140{
7141 D(p->level++);
7142 if (p->error_indicator) {
7143 D(p->level--);
7144 return NULL;
7145 }
7146 asdl_expr_seq* _res = NULL;
7147 int _mark = p->mark;
7148 { // ','.pattern+
7149 if (p->error_indicator) {
7150 D(p->level--);
7151 return NULL;
7152 }
7153 D(fprintf(stderr, "%*c> positional_patterns[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.pattern+"));
7154 asdl_expr_seq* args;
7155 if (
7156 (args = (asdl_expr_seq*)_gather_62_rule(p)) // ','.pattern+
7157 )
7158 {
7159 D(fprintf(stderr, "%*c+ positional_patterns[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.pattern+"));
7160 _res = args;
7161 if (_res == NULL && PyErr_Occurred()) {
7162 p->error_indicator = 1;
7163 D(p->level--);
7164 return NULL;
7165 }
7166 goto done;
7167 }
7168 p->mark = _mark;
7169 D(fprintf(stderr, "%*c%s positional_patterns[%d-%d]: %s failed!\n", p->level, ' ',
7170 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.pattern+"));
7171 }
7172 _res = NULL;
7173 done:
7174 D(p->level--);
7175 return _res;
7176}
7177
7178// keyword_patterns: ','.keyword_pattern+
7179static asdl_keyword_seq*
7180keyword_patterns_rule(Parser *p)
7181{
7182 D(p->level++);
7183 if (p->error_indicator) {
7184 D(p->level--);
7185 return NULL;
7186 }
7187 asdl_keyword_seq* _res = NULL;
7188 int _mark = p->mark;
7189 { // ','.keyword_pattern+
7190 if (p->error_indicator) {
7191 D(p->level--);
7192 return NULL;
7193 }
7194 D(fprintf(stderr, "%*c> keyword_patterns[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.keyword_pattern+"));
7195 asdl_keyword_seq* keywords;
7196 if (
7197 (keywords = (asdl_keyword_seq*)_gather_64_rule(p)) // ','.keyword_pattern+
7198 )
7199 {
7200 D(fprintf(stderr, "%*c+ keyword_patterns[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.keyword_pattern+"));
7201 _res = keywords;
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 keyword_patterns[%d-%d]: %s failed!\n", p->level, ' ',
7211 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.keyword_pattern+"));
7212 }
7213 _res = NULL;
7214 done:
7215 D(p->level--);
7216 return _res;
7217}
7218
7219// keyword_pattern: NAME '=' pattern
7220static keyword_ty
7221keyword_pattern_rule(Parser *p)
7222{
7223 D(p->level++);
7224 if (p->error_indicator) {
7225 D(p->level--);
7226 return NULL;
7227 }
7228 keyword_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 { // NAME '=' pattern
7240 if (p->error_indicator) {
7241 D(p->level--);
7242 return NULL;
7243 }
7244 D(fprintf(stderr, "%*c> keyword_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '=' pattern"));
7245 Token * _literal;
7246 expr_ty arg;
7247 expr_ty value;
7248 if (
7249 (arg = _PyPegen_name_token(p)) // NAME
7250 &&
7251 (_literal = _PyPegen_expect_token(p, 22)) // token='='
7252 &&
7253 (value = pattern_rule(p)) // pattern
7254 )
7255 {
7256 D(fprintf(stderr, "%*c+ keyword_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '=' pattern"));
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
Victor Stinnerd27f8d22021-04-07 21:34:22 +02007266 _res = _PyAST_keyword ( arg -> v . Name . id , value , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08007267 if (_res == NULL && PyErr_Occurred()) {
7268 p->error_indicator = 1;
7269 D(p->level--);
7270 return NULL;
7271 }
7272 goto done;
7273 }
7274 p->mark = _mark;
7275 D(fprintf(stderr, "%*c%s keyword_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7276 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' pattern"));
7277 }
7278 _res = NULL;
7279 done:
7280 D(p->level--);
7281 return _res;
7282}
7283
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007284// return_stmt: 'return' star_expressions?
7285static stmt_ty
7286return_stmt_rule(Parser *p)
7287{
7288 D(p->level++);
7289 if (p->error_indicator) {
7290 D(p->level--);
7291 return NULL;
7292 }
7293 stmt_ty _res = NULL;
7294 int _mark = p->mark;
7295 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
7296 p->error_indicator = 1;
7297 D(p->level--);
7298 return NULL;
7299 }
7300 int _start_lineno = p->tokens[_mark]->lineno;
7301 UNUSED(_start_lineno); // Only used by EXTRA macro
7302 int _start_col_offset = p->tokens[_mark]->col_offset;
7303 UNUSED(_start_col_offset); // Only used by EXTRA macro
7304 { // 'return' star_expressions?
7305 if (p->error_indicator) {
7306 D(p->level--);
7307 return NULL;
7308 }
7309 D(fprintf(stderr, "%*c> return_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'return' star_expressions?"));
7310 Token * _keyword;
7311 void *a;
7312 if (
7313 (_keyword = _PyPegen_expect_token(p, 500)) // token='return'
7314 &&
7315 (a = star_expressions_rule(p), 1) // star_expressions?
7316 )
7317 {
7318 D(fprintf(stderr, "%*c+ return_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'return' star_expressions?"));
7319 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7320 if (_token == NULL) {
7321 D(p->level--);
7322 return NULL;
7323 }
7324 int _end_lineno = _token->end_lineno;
7325 UNUSED(_end_lineno); // Only used by EXTRA macro
7326 int _end_col_offset = _token->end_col_offset;
7327 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02007328 _res = _PyAST_Return ( a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007329 if (_res == NULL && PyErr_Occurred()) {
7330 p->error_indicator = 1;
7331 D(p->level--);
7332 return NULL;
7333 }
7334 goto done;
7335 }
7336 p->mark = _mark;
7337 D(fprintf(stderr, "%*c%s return_stmt[%d-%d]: %s failed!\n", p->level, ' ',
7338 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'return' star_expressions?"));
7339 }
7340 _res = NULL;
7341 done:
7342 D(p->level--);
7343 return _res;
7344}
7345
7346// raise_stmt: 'raise' expression ['from' expression] | 'raise'
7347static stmt_ty
7348raise_stmt_rule(Parser *p)
7349{
7350 D(p->level++);
7351 if (p->error_indicator) {
7352 D(p->level--);
7353 return NULL;
7354 }
7355 stmt_ty _res = NULL;
7356 int _mark = p->mark;
7357 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
7358 p->error_indicator = 1;
7359 D(p->level--);
7360 return NULL;
7361 }
7362 int _start_lineno = p->tokens[_mark]->lineno;
7363 UNUSED(_start_lineno); // Only used by EXTRA macro
7364 int _start_col_offset = p->tokens[_mark]->col_offset;
7365 UNUSED(_start_col_offset); // Only used by EXTRA macro
7366 { // 'raise' expression ['from' expression]
7367 if (p->error_indicator) {
7368 D(p->level--);
7369 return NULL;
7370 }
7371 D(fprintf(stderr, "%*c> raise_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'raise' expression ['from' expression]"));
7372 Token * _keyword;
7373 expr_ty a;
7374 void *b;
7375 if (
7376 (_keyword = _PyPegen_expect_token(p, 501)) // token='raise'
7377 &&
7378 (a = expression_rule(p)) // expression
7379 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08007380 (b = _tmp_66_rule(p), 1) // ['from' expression]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007381 )
7382 {
7383 D(fprintf(stderr, "%*c+ raise_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'raise' expression ['from' expression]"));
7384 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7385 if (_token == NULL) {
7386 D(p->level--);
7387 return NULL;
7388 }
7389 int _end_lineno = _token->end_lineno;
7390 UNUSED(_end_lineno); // Only used by EXTRA macro
7391 int _end_col_offset = _token->end_col_offset;
7392 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02007393 _res = _PyAST_Raise ( a , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007394 if (_res == NULL && PyErr_Occurred()) {
7395 p->error_indicator = 1;
7396 D(p->level--);
7397 return NULL;
7398 }
7399 goto done;
7400 }
7401 p->mark = _mark;
7402 D(fprintf(stderr, "%*c%s raise_stmt[%d-%d]: %s failed!\n", p->level, ' ',
7403 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'raise' expression ['from' expression]"));
7404 }
7405 { // 'raise'
7406 if (p->error_indicator) {
7407 D(p->level--);
7408 return NULL;
7409 }
7410 D(fprintf(stderr, "%*c> raise_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'raise'"));
7411 Token * _keyword;
7412 if (
7413 (_keyword = _PyPegen_expect_token(p, 501)) // token='raise'
7414 )
7415 {
7416 D(fprintf(stderr, "%*c+ raise_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'raise'"));
7417 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7418 if (_token == NULL) {
7419 D(p->level--);
7420 return NULL;
7421 }
7422 int _end_lineno = _token->end_lineno;
7423 UNUSED(_end_lineno); // Only used by EXTRA macro
7424 int _end_col_offset = _token->end_col_offset;
7425 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02007426 _res = _PyAST_Raise ( NULL , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007427 if (_res == NULL && PyErr_Occurred()) {
7428 p->error_indicator = 1;
7429 D(p->level--);
7430 return NULL;
7431 }
7432 goto done;
7433 }
7434 p->mark = _mark;
7435 D(fprintf(stderr, "%*c%s raise_stmt[%d-%d]: %s failed!\n", p->level, ' ',
7436 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'raise'"));
7437 }
7438 _res = NULL;
7439 done:
7440 D(p->level--);
7441 return _res;
7442}
7443
7444// function_def: decorators function_def_raw | function_def_raw
7445static stmt_ty
7446function_def_rule(Parser *p)
7447{
7448 D(p->level++);
7449 if (p->error_indicator) {
7450 D(p->level--);
7451 return NULL;
7452 }
7453 stmt_ty _res = NULL;
7454 int _mark = p->mark;
7455 { // decorators function_def_raw
7456 if (p->error_indicator) {
7457 D(p->level--);
7458 return NULL;
7459 }
7460 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 +01007461 asdl_expr_seq* d;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007462 stmt_ty f;
7463 if (
7464 (d = decorators_rule(p)) // decorators
7465 &&
7466 (f = function_def_raw_rule(p)) // function_def_raw
7467 )
7468 {
7469 D(fprintf(stderr, "%*c+ function_def[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "decorators function_def_raw"));
7470 _res = _PyPegen_function_def_decorators ( p , d , f );
7471 if (_res == NULL && PyErr_Occurred()) {
7472 p->error_indicator = 1;
7473 D(p->level--);
7474 return NULL;
7475 }
7476 goto done;
7477 }
7478 p->mark = _mark;
7479 D(fprintf(stderr, "%*c%s function_def[%d-%d]: %s failed!\n", p->level, ' ',
7480 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "decorators function_def_raw"));
7481 }
7482 { // function_def_raw
7483 if (p->error_indicator) {
7484 D(p->level--);
7485 return NULL;
7486 }
7487 D(fprintf(stderr, "%*c> function_def[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "function_def_raw"));
7488 stmt_ty function_def_raw_var;
7489 if (
7490 (function_def_raw_var = function_def_raw_rule(p)) // function_def_raw
7491 )
7492 {
7493 D(fprintf(stderr, "%*c+ function_def[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "function_def_raw"));
7494 _res = function_def_raw_var;
7495 goto done;
7496 }
7497 p->mark = _mark;
7498 D(fprintf(stderr, "%*c%s function_def[%d-%d]: %s failed!\n", p->level, ' ',
7499 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "function_def_raw"));
7500 }
7501 _res = NULL;
7502 done:
7503 D(p->level--);
7504 return _res;
7505}
7506
7507// function_def_raw:
Pablo Galindo58fb1562021-02-02 19:54:22 +00007508// | 'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block
7509// | ASYNC 'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007510static stmt_ty
7511function_def_raw_rule(Parser *p)
7512{
7513 D(p->level++);
7514 if (p->error_indicator) {
7515 D(p->level--);
7516 return NULL;
7517 }
7518 stmt_ty _res = NULL;
7519 int _mark = p->mark;
7520 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
7521 p->error_indicator = 1;
7522 D(p->level--);
7523 return NULL;
7524 }
7525 int _start_lineno = p->tokens[_mark]->lineno;
7526 UNUSED(_start_lineno); // Only used by EXTRA macro
7527 int _start_col_offset = p->tokens[_mark]->col_offset;
7528 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo58fb1562021-02-02 19:54:22 +00007529 { // 'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007530 if (p->error_indicator) {
7531 D(p->level--);
7532 return NULL;
7533 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00007534 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 +01007535 Token * _keyword;
7536 Token * _literal;
7537 Token * _literal_1;
7538 Token * _literal_2;
7539 void *a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01007540 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007541 expr_ty n;
7542 void *params;
7543 void *tc;
7544 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08007545 (_keyword = _PyPegen_expect_token(p, 526)) // token='def'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007546 &&
7547 (n = _PyPegen_name_token(p)) // NAME
7548 &&
7549 (_literal = _PyPegen_expect_token(p, 7)) // token='('
7550 &&
7551 (params = params_rule(p), 1) // params?
7552 &&
7553 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
7554 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08007555 (a = _tmp_67_rule(p), 1) // ['->' expression]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007556 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00007557 (_literal_2 = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007558 &&
7559 (tc = func_type_comment_rule(p), 1) // func_type_comment?
7560 &&
7561 (b = block_rule(p)) // block
7562 )
7563 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00007564 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 +01007565 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7566 if (_token == NULL) {
7567 D(p->level--);
7568 return NULL;
7569 }
7570 int _end_lineno = _token->end_lineno;
7571 UNUSED(_end_lineno); // Only used by EXTRA macro
7572 int _end_col_offset = _token->end_col_offset;
7573 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02007574 _res = _PyAST_FunctionDef ( n -> v . Name . id , ( params ) ? params : CHECK ( arguments_ty , _PyPegen_empty_arguments ( p ) ) , b , NULL , a , NEW_TYPE_COMMENT ( p , tc ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007575 if (_res == NULL && PyErr_Occurred()) {
7576 p->error_indicator = 1;
7577 D(p->level--);
7578 return NULL;
7579 }
7580 goto done;
7581 }
7582 p->mark = _mark;
7583 D(fprintf(stderr, "%*c%s function_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00007584 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007585 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00007586 { // ASYNC 'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007587 if (p->error_indicator) {
7588 D(p->level--);
7589 return NULL;
7590 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00007591 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 +01007592 Token * _keyword;
7593 Token * _literal;
7594 Token * _literal_1;
7595 Token * _literal_2;
7596 void *a;
7597 Token * async_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +01007598 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007599 expr_ty n;
7600 void *params;
7601 void *tc;
7602 if (
7603 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
7604 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08007605 (_keyword = _PyPegen_expect_token(p, 526)) // token='def'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007606 &&
7607 (n = _PyPegen_name_token(p)) // NAME
7608 &&
7609 (_literal = _PyPegen_expect_token(p, 7)) // token='('
7610 &&
7611 (params = params_rule(p), 1) // params?
7612 &&
7613 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
7614 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08007615 (a = _tmp_68_rule(p), 1) // ['->' expression]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007616 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00007617 (_literal_2 = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007618 &&
7619 (tc = func_type_comment_rule(p), 1) // func_type_comment?
7620 &&
7621 (b = block_rule(p)) // block
7622 )
7623 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00007624 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 +01007625 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7626 if (_token == NULL) {
7627 D(p->level--);
7628 return NULL;
7629 }
7630 int _end_lineno = _token->end_lineno;
7631 UNUSED(_end_lineno); // Only used by EXTRA macro
7632 int _end_col_offset = _token->end_col_offset;
7633 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02007634 _res = CHECK_VERSION ( stmt_ty , 5 , "Async functions are" , _PyAST_AsyncFunctionDef ( n -> v . Name . id , ( params ) ? params : CHECK ( arguments_ty , _PyPegen_empty_arguments ( p ) ) , b , NULL , a , NEW_TYPE_COMMENT ( p , tc ) , EXTRA ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007635 if (_res == NULL && PyErr_Occurred()) {
7636 p->error_indicator = 1;
7637 D(p->level--);
7638 return NULL;
7639 }
7640 goto done;
7641 }
7642 p->mark = _mark;
7643 D(fprintf(stderr, "%*c%s function_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00007644 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007645 }
7646 _res = NULL;
7647 done:
7648 D(p->level--);
7649 return _res;
7650}
7651
7652// func_type_comment:
7653// | NEWLINE TYPE_COMMENT &(NEWLINE INDENT)
7654// | invalid_double_type_comments
7655// | TYPE_COMMENT
7656static Token*
7657func_type_comment_rule(Parser *p)
7658{
7659 D(p->level++);
7660 if (p->error_indicator) {
7661 D(p->level--);
7662 return NULL;
7663 }
7664 Token* _res = NULL;
7665 int _mark = p->mark;
7666 { // NEWLINE TYPE_COMMENT &(NEWLINE INDENT)
7667 if (p->error_indicator) {
7668 D(p->level--);
7669 return NULL;
7670 }
7671 D(fprintf(stderr, "%*c> func_type_comment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE TYPE_COMMENT &(NEWLINE INDENT)"));
7672 Token * newline_var;
7673 Token * t;
7674 if (
7675 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
7676 &&
7677 (t = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
7678 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08007679 _PyPegen_lookahead(1, _tmp_69_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007680 )
7681 {
7682 D(fprintf(stderr, "%*c+ func_type_comment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE TYPE_COMMENT &(NEWLINE INDENT)"));
7683 _res = t;
7684 if (_res == NULL && PyErr_Occurred()) {
7685 p->error_indicator = 1;
7686 D(p->level--);
7687 return NULL;
7688 }
7689 goto done;
7690 }
7691 p->mark = _mark;
7692 D(fprintf(stderr, "%*c%s func_type_comment[%d-%d]: %s failed!\n", p->level, ' ',
7693 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE TYPE_COMMENT &(NEWLINE INDENT)"));
7694 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02007695 if (p->call_invalid_rules) { // invalid_double_type_comments
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007696 if (p->error_indicator) {
7697 D(p->level--);
7698 return NULL;
7699 }
7700 D(fprintf(stderr, "%*c> func_type_comment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_double_type_comments"));
7701 void *invalid_double_type_comments_var;
7702 if (
7703 (invalid_double_type_comments_var = invalid_double_type_comments_rule(p)) // invalid_double_type_comments
7704 )
7705 {
7706 D(fprintf(stderr, "%*c+ func_type_comment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_double_type_comments"));
7707 _res = invalid_double_type_comments_var;
7708 goto done;
7709 }
7710 p->mark = _mark;
7711 D(fprintf(stderr, "%*c%s func_type_comment[%d-%d]: %s failed!\n", p->level, ' ',
7712 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_double_type_comments"));
7713 }
7714 { // TYPE_COMMENT
7715 if (p->error_indicator) {
7716 D(p->level--);
7717 return NULL;
7718 }
7719 D(fprintf(stderr, "%*c> func_type_comment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "TYPE_COMMENT"));
7720 Token * type_comment_var;
7721 if (
7722 (type_comment_var = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
7723 )
7724 {
7725 D(fprintf(stderr, "%*c+ func_type_comment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "TYPE_COMMENT"));
7726 _res = type_comment_var;
7727 goto done;
7728 }
7729 p->mark = _mark;
7730 D(fprintf(stderr, "%*c%s func_type_comment[%d-%d]: %s failed!\n", p->level, ' ',
7731 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "TYPE_COMMENT"));
7732 }
7733 _res = NULL;
7734 done:
7735 D(p->level--);
7736 return _res;
7737}
7738
7739// params: invalid_parameters | parameters
7740static arguments_ty
7741params_rule(Parser *p)
7742{
7743 D(p->level++);
7744 if (p->error_indicator) {
7745 D(p->level--);
7746 return NULL;
7747 }
7748 arguments_ty _res = NULL;
7749 int _mark = p->mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02007750 if (p->call_invalid_rules) { // invalid_parameters
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007751 if (p->error_indicator) {
7752 D(p->level--);
7753 return NULL;
7754 }
7755 D(fprintf(stderr, "%*c> params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_parameters"));
7756 void *invalid_parameters_var;
7757 if (
7758 (invalid_parameters_var = invalid_parameters_rule(p)) // invalid_parameters
7759 )
7760 {
7761 D(fprintf(stderr, "%*c+ params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_parameters"));
7762 _res = invalid_parameters_var;
7763 goto done;
7764 }
7765 p->mark = _mark;
7766 D(fprintf(stderr, "%*c%s params[%d-%d]: %s failed!\n", p->level, ' ',
7767 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_parameters"));
7768 }
7769 { // parameters
7770 if (p->error_indicator) {
7771 D(p->level--);
7772 return NULL;
7773 }
7774 D(fprintf(stderr, "%*c> params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "parameters"));
7775 arguments_ty parameters_var;
7776 if (
7777 (parameters_var = parameters_rule(p)) // parameters
7778 )
7779 {
7780 D(fprintf(stderr, "%*c+ params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "parameters"));
7781 _res = parameters_var;
7782 goto done;
7783 }
7784 p->mark = _mark;
7785 D(fprintf(stderr, "%*c%s params[%d-%d]: %s failed!\n", p->level, ' ',
7786 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "parameters"));
7787 }
7788 _res = NULL;
7789 done:
7790 D(p->level--);
7791 return _res;
7792}
7793
7794// parameters:
7795// | slash_no_default param_no_default* param_with_default* star_etc?
7796// | slash_with_default param_with_default* star_etc?
7797// | param_no_default+ param_with_default* star_etc?
7798// | param_with_default+ star_etc?
7799// | star_etc
7800static arguments_ty
7801parameters_rule(Parser *p)
7802{
7803 D(p->level++);
7804 if (p->error_indicator) {
7805 D(p->level--);
7806 return NULL;
7807 }
7808 arguments_ty _res = NULL;
7809 int _mark = p->mark;
7810 { // slash_no_default param_no_default* param_with_default* star_etc?
7811 if (p->error_indicator) {
7812 D(p->level--);
7813 return NULL;
7814 }
7815 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 +01007816 asdl_arg_seq* a;
7817 asdl_arg_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007818 asdl_seq * c;
7819 void *d;
7820 if (
7821 (a = slash_no_default_rule(p)) // slash_no_default
7822 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08007823 (b = (asdl_arg_seq*)_loop0_70_rule(p)) // param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007824 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08007825 (c = _loop0_71_rule(p)) // param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007826 &&
7827 (d = star_etc_rule(p), 1) // star_etc?
7828 )
7829 {
7830 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?"));
7831 _res = _PyPegen_make_arguments ( p , a , NULL , b , c , d );
7832 if (_res == NULL && PyErr_Occurred()) {
7833 p->error_indicator = 1;
7834 D(p->level--);
7835 return NULL;
7836 }
7837 goto done;
7838 }
7839 p->mark = _mark;
7840 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
7841 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_no_default param_no_default* param_with_default* star_etc?"));
7842 }
7843 { // slash_with_default param_with_default* star_etc?
7844 if (p->error_indicator) {
7845 D(p->level--);
7846 return NULL;
7847 }
7848 D(fprintf(stderr, "%*c> parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slash_with_default param_with_default* star_etc?"));
7849 SlashWithDefault* a;
7850 asdl_seq * b;
7851 void *c;
7852 if (
7853 (a = slash_with_default_rule(p)) // slash_with_default
7854 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08007855 (b = _loop0_72_rule(p)) // param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007856 &&
7857 (c = star_etc_rule(p), 1) // star_etc?
7858 )
7859 {
7860 D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slash_with_default param_with_default* star_etc?"));
7861 _res = _PyPegen_make_arguments ( p , NULL , a , NULL , b , c );
7862 if (_res == NULL && PyErr_Occurred()) {
7863 p->error_indicator = 1;
7864 D(p->level--);
7865 return NULL;
7866 }
7867 goto done;
7868 }
7869 p->mark = _mark;
7870 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
7871 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_with_default param_with_default* star_etc?"));
7872 }
7873 { // param_no_default+ param_with_default* star_etc?
7874 if (p->error_indicator) {
7875 D(p->level--);
7876 return NULL;
7877 }
7878 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 +01007879 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007880 asdl_seq * b;
7881 void *c;
7882 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08007883 (a = (asdl_arg_seq*)_loop1_73_rule(p)) // param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007884 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08007885 (b = _loop0_74_rule(p)) // param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007886 &&
7887 (c = star_etc_rule(p), 1) // star_etc?
7888 )
7889 {
7890 D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default+ param_with_default* star_etc?"));
7891 _res = _PyPegen_make_arguments ( p , NULL , NULL , a , b , c );
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 parameters[%d-%d]: %s failed!\n", p->level, ' ',
7901 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default+ param_with_default* star_etc?"));
7902 }
7903 { // param_with_default+ star_etc?
7904 if (p->error_indicator) {
7905 D(p->level--);
7906 return NULL;
7907 }
7908 D(fprintf(stderr, "%*c> parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default+ star_etc?"));
7909 asdl_seq * a;
7910 void *b;
7911 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08007912 (a = _loop1_75_rule(p)) // param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007913 &&
7914 (b = star_etc_rule(p), 1) // star_etc?
7915 )
7916 {
7917 D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_with_default+ star_etc?"));
7918 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , a , b );
7919 if (_res == NULL && PyErr_Occurred()) {
7920 p->error_indicator = 1;
7921 D(p->level--);
7922 return NULL;
7923 }
7924 goto done;
7925 }
7926 p->mark = _mark;
7927 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
7928 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default+ star_etc?"));
7929 }
7930 { // star_etc
7931 if (p->error_indicator) {
7932 D(p->level--);
7933 return NULL;
7934 }
7935 D(fprintf(stderr, "%*c> parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_etc"));
7936 StarEtc* a;
7937 if (
7938 (a = star_etc_rule(p)) // star_etc
7939 )
7940 {
7941 D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_etc"));
7942 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , NULL , a );
7943 if (_res == NULL && PyErr_Occurred()) {
7944 p->error_indicator = 1;
7945 D(p->level--);
7946 return NULL;
7947 }
7948 goto done;
7949 }
7950 p->mark = _mark;
7951 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
7952 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_etc"));
7953 }
7954 _res = NULL;
7955 done:
7956 D(p->level--);
7957 return _res;
7958}
7959
7960// slash_no_default: param_no_default+ '/' ',' | param_no_default+ '/' &')'
Pablo Galindoa5634c42020-09-16 19:42:00 +01007961static asdl_arg_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007962slash_no_default_rule(Parser *p)
7963{
7964 D(p->level++);
7965 if (p->error_indicator) {
7966 D(p->level--);
7967 return NULL;
7968 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01007969 asdl_arg_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007970 int _mark = p->mark;
7971 { // param_no_default+ '/' ','
7972 if (p->error_indicator) {
7973 D(p->level--);
7974 return NULL;
7975 }
7976 D(fprintf(stderr, "%*c> slash_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default+ '/' ','"));
7977 Token * _literal;
7978 Token * _literal_1;
Pablo Galindoa5634c42020-09-16 19:42:00 +01007979 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007980 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08007981 (a = (asdl_arg_seq*)_loop1_76_rule(p)) // param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007982 &&
7983 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
7984 &&
7985 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
7986 )
7987 {
7988 D(fprintf(stderr, "%*c+ slash_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default+ '/' ','"));
7989 _res = a;
7990 if (_res == NULL && PyErr_Occurred()) {
7991 p->error_indicator = 1;
7992 D(p->level--);
7993 return NULL;
7994 }
7995 goto done;
7996 }
7997 p->mark = _mark;
7998 D(fprintf(stderr, "%*c%s slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
7999 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default+ '/' ','"));
8000 }
8001 { // param_no_default+ '/' &')'
8002 if (p->error_indicator) {
8003 D(p->level--);
8004 return NULL;
8005 }
8006 D(fprintf(stderr, "%*c> slash_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default+ '/' &')'"));
8007 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01008008 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008009 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08008010 (a = (asdl_arg_seq*)_loop1_77_rule(p)) // param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008011 &&
8012 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
8013 &&
8014 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
8015 )
8016 {
8017 D(fprintf(stderr, "%*c+ slash_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default+ '/' &')'"));
8018 _res = a;
8019 if (_res == NULL && PyErr_Occurred()) {
8020 p->error_indicator = 1;
8021 D(p->level--);
8022 return NULL;
8023 }
8024 goto done;
8025 }
8026 p->mark = _mark;
8027 D(fprintf(stderr, "%*c%s slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
8028 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default+ '/' &')'"));
8029 }
8030 _res = NULL;
8031 done:
8032 D(p->level--);
8033 return _res;
8034}
8035
8036// slash_with_default:
8037// | param_no_default* param_with_default+ '/' ','
8038// | param_no_default* param_with_default+ '/' &')'
8039static SlashWithDefault*
8040slash_with_default_rule(Parser *p)
8041{
8042 D(p->level++);
8043 if (p->error_indicator) {
8044 D(p->level--);
8045 return NULL;
8046 }
8047 SlashWithDefault* _res = NULL;
8048 int _mark = p->mark;
8049 { // param_no_default* param_with_default+ '/' ','
8050 if (p->error_indicator) {
8051 D(p->level--);
8052 return NULL;
8053 }
8054 D(fprintf(stderr, "%*c> slash_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default* param_with_default+ '/' ','"));
8055 Token * _literal;
8056 Token * _literal_1;
8057 asdl_seq * a;
8058 asdl_seq * b;
8059 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08008060 (a = _loop0_78_rule(p)) // param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008061 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008062 (b = _loop1_79_rule(p)) // param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008063 &&
8064 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
8065 &&
8066 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
8067 )
8068 {
8069 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 +01008070 _res = _PyPegen_slash_with_default ( p , ( asdl_arg_seq * ) a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008071 if (_res == NULL && PyErr_Occurred()) {
8072 p->error_indicator = 1;
8073 D(p->level--);
8074 return NULL;
8075 }
8076 goto done;
8077 }
8078 p->mark = _mark;
8079 D(fprintf(stderr, "%*c%s slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
8080 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default* param_with_default+ '/' ','"));
8081 }
8082 { // param_no_default* param_with_default+ '/' &')'
8083 if (p->error_indicator) {
8084 D(p->level--);
8085 return NULL;
8086 }
8087 D(fprintf(stderr, "%*c> slash_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default* param_with_default+ '/' &')'"));
8088 Token * _literal;
8089 asdl_seq * a;
8090 asdl_seq * b;
8091 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08008092 (a = _loop0_80_rule(p)) // param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008093 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008094 (b = _loop1_81_rule(p)) // param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008095 &&
8096 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
8097 &&
8098 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
8099 )
8100 {
8101 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 +01008102 _res = _PyPegen_slash_with_default ( p , ( asdl_arg_seq * ) a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008103 if (_res == NULL && PyErr_Occurred()) {
8104 p->error_indicator = 1;
8105 D(p->level--);
8106 return NULL;
8107 }
8108 goto done;
8109 }
8110 p->mark = _mark;
8111 D(fprintf(stderr, "%*c%s slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
8112 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default* param_with_default+ '/' &')'"));
8113 }
8114 _res = NULL;
8115 done:
8116 D(p->level--);
8117 return _res;
8118}
8119
8120// star_etc:
8121// | '*' param_no_default param_maybe_default* kwds?
8122// | '*' ',' param_maybe_default+ kwds?
8123// | kwds
8124// | invalid_star_etc
8125static StarEtc*
8126star_etc_rule(Parser *p)
8127{
8128 D(p->level++);
8129 if (p->error_indicator) {
8130 D(p->level--);
8131 return NULL;
8132 }
8133 StarEtc* _res = NULL;
8134 int _mark = p->mark;
8135 { // '*' param_no_default param_maybe_default* kwds?
8136 if (p->error_indicator) {
8137 D(p->level--);
8138 return NULL;
8139 }
8140 D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' param_no_default param_maybe_default* kwds?"));
8141 Token * _literal;
8142 arg_ty a;
8143 asdl_seq * b;
8144 void *c;
8145 if (
8146 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
8147 &&
8148 (a = param_no_default_rule(p)) // param_no_default
8149 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008150 (b = _loop0_82_rule(p)) // param_maybe_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008151 &&
8152 (c = kwds_rule(p), 1) // kwds?
8153 )
8154 {
8155 D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' param_no_default param_maybe_default* kwds?"));
8156 _res = _PyPegen_star_etc ( p , a , b , c );
8157 if (_res == NULL && PyErr_Occurred()) {
8158 p->error_indicator = 1;
8159 D(p->level--);
8160 return NULL;
8161 }
8162 goto done;
8163 }
8164 p->mark = _mark;
8165 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
8166 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' param_no_default param_maybe_default* kwds?"));
8167 }
8168 { // '*' ',' param_maybe_default+ kwds?
8169 if (p->error_indicator) {
8170 D(p->level--);
8171 return NULL;
8172 }
8173 D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' ',' param_maybe_default+ kwds?"));
8174 Token * _literal;
8175 Token * _literal_1;
8176 asdl_seq * b;
8177 void *c;
8178 if (
8179 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
8180 &&
8181 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
8182 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008183 (b = _loop1_83_rule(p)) // param_maybe_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008184 &&
8185 (c = kwds_rule(p), 1) // kwds?
8186 )
8187 {
8188 D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' ',' param_maybe_default+ kwds?"));
8189 _res = _PyPegen_star_etc ( p , NULL , b , c );
8190 if (_res == NULL && PyErr_Occurred()) {
8191 p->error_indicator = 1;
8192 D(p->level--);
8193 return NULL;
8194 }
8195 goto done;
8196 }
8197 p->mark = _mark;
8198 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
8199 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' ',' param_maybe_default+ kwds?"));
8200 }
8201 { // kwds
8202 if (p->error_indicator) {
8203 D(p->level--);
8204 return NULL;
8205 }
8206 D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwds"));
8207 arg_ty a;
8208 if (
8209 (a = kwds_rule(p)) // kwds
8210 )
8211 {
8212 D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwds"));
8213 _res = _PyPegen_star_etc ( p , NULL , NULL , a );
8214 if (_res == NULL && PyErr_Occurred()) {
8215 p->error_indicator = 1;
8216 D(p->level--);
8217 return NULL;
8218 }
8219 goto done;
8220 }
8221 p->mark = _mark;
8222 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
8223 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwds"));
8224 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02008225 if (p->call_invalid_rules) { // invalid_star_etc
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008226 if (p->error_indicator) {
8227 D(p->level--);
8228 return NULL;
8229 }
8230 D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_star_etc"));
8231 void *invalid_star_etc_var;
8232 if (
8233 (invalid_star_etc_var = invalid_star_etc_rule(p)) // invalid_star_etc
8234 )
8235 {
8236 D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_star_etc"));
8237 _res = invalid_star_etc_var;
8238 goto done;
8239 }
8240 p->mark = _mark;
8241 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
8242 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_star_etc"));
8243 }
8244 _res = NULL;
8245 done:
8246 D(p->level--);
8247 return _res;
8248}
8249
8250// kwds: '**' param_no_default
8251static arg_ty
8252kwds_rule(Parser *p)
8253{
8254 D(p->level++);
8255 if (p->error_indicator) {
8256 D(p->level--);
8257 return NULL;
8258 }
8259 arg_ty _res = NULL;
8260 int _mark = p->mark;
8261 { // '**' param_no_default
8262 if (p->error_indicator) {
8263 D(p->level--);
8264 return NULL;
8265 }
8266 D(fprintf(stderr, "%*c> kwds[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' param_no_default"));
8267 Token * _literal;
8268 arg_ty a;
8269 if (
8270 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
8271 &&
8272 (a = param_no_default_rule(p)) // param_no_default
8273 )
8274 {
8275 D(fprintf(stderr, "%*c+ kwds[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' param_no_default"));
8276 _res = a;
8277 if (_res == NULL && PyErr_Occurred()) {
8278 p->error_indicator = 1;
8279 D(p->level--);
8280 return NULL;
8281 }
8282 goto done;
8283 }
8284 p->mark = _mark;
8285 D(fprintf(stderr, "%*c%s kwds[%d-%d]: %s failed!\n", p->level, ' ',
8286 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' param_no_default"));
8287 }
8288 _res = NULL;
8289 done:
8290 D(p->level--);
8291 return _res;
8292}
8293
8294// param_no_default: param ',' TYPE_COMMENT? | param TYPE_COMMENT? &')'
8295static arg_ty
8296param_no_default_rule(Parser *p)
8297{
8298 D(p->level++);
8299 if (p->error_indicator) {
8300 D(p->level--);
8301 return NULL;
8302 }
8303 arg_ty _res = NULL;
8304 int _mark = p->mark;
8305 { // param ',' TYPE_COMMENT?
8306 if (p->error_indicator) {
8307 D(p->level--);
8308 return NULL;
8309 }
8310 D(fprintf(stderr, "%*c> param_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param ',' TYPE_COMMENT?"));
8311 Token * _literal;
8312 arg_ty a;
8313 void *tc;
8314 if (
8315 (a = param_rule(p)) // param
8316 &&
8317 (_literal = _PyPegen_expect_token(p, 12)) // token=','
8318 &&
8319 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
8320 )
8321 {
8322 D(fprintf(stderr, "%*c+ param_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param ',' TYPE_COMMENT?"));
8323 _res = _PyPegen_add_type_comment_to_arg ( p , a , tc );
8324 if (_res == NULL && PyErr_Occurred()) {
8325 p->error_indicator = 1;
8326 D(p->level--);
8327 return NULL;
8328 }
8329 goto done;
8330 }
8331 p->mark = _mark;
8332 D(fprintf(stderr, "%*c%s param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
8333 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param ',' TYPE_COMMENT?"));
8334 }
8335 { // param TYPE_COMMENT? &')'
8336 if (p->error_indicator) {
8337 D(p->level--);
8338 return NULL;
8339 }
8340 D(fprintf(stderr, "%*c> param_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param TYPE_COMMENT? &')'"));
8341 arg_ty a;
8342 void *tc;
8343 if (
8344 (a = param_rule(p)) // param
8345 &&
8346 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
8347 &&
8348 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
8349 )
8350 {
8351 D(fprintf(stderr, "%*c+ param_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param TYPE_COMMENT? &')'"));
8352 _res = _PyPegen_add_type_comment_to_arg ( p , a , tc );
8353 if (_res == NULL && PyErr_Occurred()) {
8354 p->error_indicator = 1;
8355 D(p->level--);
8356 return NULL;
8357 }
8358 goto done;
8359 }
8360 p->mark = _mark;
8361 D(fprintf(stderr, "%*c%s param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
8362 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param TYPE_COMMENT? &')'"));
8363 }
8364 _res = NULL;
8365 done:
8366 D(p->level--);
8367 return _res;
8368}
8369
8370// param_with_default: param default ',' TYPE_COMMENT? | param default TYPE_COMMENT? &')'
8371static NameDefaultPair*
8372param_with_default_rule(Parser *p)
8373{
8374 D(p->level++);
8375 if (p->error_indicator) {
8376 D(p->level--);
8377 return NULL;
8378 }
8379 NameDefaultPair* _res = NULL;
8380 int _mark = p->mark;
8381 { // param default ',' TYPE_COMMENT?
8382 if (p->error_indicator) {
8383 D(p->level--);
8384 return NULL;
8385 }
8386 D(fprintf(stderr, "%*c> param_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param default ',' TYPE_COMMENT?"));
8387 Token * _literal;
8388 arg_ty a;
8389 expr_ty c;
8390 void *tc;
8391 if (
8392 (a = param_rule(p)) // param
8393 &&
8394 (c = default_rule(p)) // default
8395 &&
8396 (_literal = _PyPegen_expect_token(p, 12)) // token=','
8397 &&
8398 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
8399 )
8400 {
8401 D(fprintf(stderr, "%*c+ param_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param default ',' TYPE_COMMENT?"));
8402 _res = _PyPegen_name_default_pair ( p , a , c , tc );
8403 if (_res == NULL && PyErr_Occurred()) {
8404 p->error_indicator = 1;
8405 D(p->level--);
8406 return NULL;
8407 }
8408 goto done;
8409 }
8410 p->mark = _mark;
8411 D(fprintf(stderr, "%*c%s param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
8412 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default ',' TYPE_COMMENT?"));
8413 }
8414 { // param default TYPE_COMMENT? &')'
8415 if (p->error_indicator) {
8416 D(p->level--);
8417 return NULL;
8418 }
8419 D(fprintf(stderr, "%*c> param_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param default TYPE_COMMENT? &')'"));
8420 arg_ty a;
8421 expr_ty c;
8422 void *tc;
8423 if (
8424 (a = param_rule(p)) // param
8425 &&
8426 (c = default_rule(p)) // default
8427 &&
8428 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
8429 &&
8430 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
8431 )
8432 {
8433 D(fprintf(stderr, "%*c+ param_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param default TYPE_COMMENT? &')'"));
8434 _res = _PyPegen_name_default_pair ( p , a , c , tc );
8435 if (_res == NULL && PyErr_Occurred()) {
8436 p->error_indicator = 1;
8437 D(p->level--);
8438 return NULL;
8439 }
8440 goto done;
8441 }
8442 p->mark = _mark;
8443 D(fprintf(stderr, "%*c%s param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
8444 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default TYPE_COMMENT? &')'"));
8445 }
8446 _res = NULL;
8447 done:
8448 D(p->level--);
8449 return _res;
8450}
8451
8452// param_maybe_default:
8453// | param default? ',' TYPE_COMMENT?
8454// | param default? TYPE_COMMENT? &')'
8455static NameDefaultPair*
8456param_maybe_default_rule(Parser *p)
8457{
8458 D(p->level++);
8459 if (p->error_indicator) {
8460 D(p->level--);
8461 return NULL;
8462 }
8463 NameDefaultPair* _res = NULL;
8464 int _mark = p->mark;
8465 { // param default? ',' TYPE_COMMENT?
8466 if (p->error_indicator) {
8467 D(p->level--);
8468 return NULL;
8469 }
8470 D(fprintf(stderr, "%*c> param_maybe_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param default? ',' TYPE_COMMENT?"));
8471 Token * _literal;
8472 arg_ty a;
8473 void *c;
8474 void *tc;
8475 if (
8476 (a = param_rule(p)) // param
8477 &&
8478 (c = default_rule(p), 1) // default?
8479 &&
8480 (_literal = _PyPegen_expect_token(p, 12)) // token=','
8481 &&
8482 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
8483 )
8484 {
8485 D(fprintf(stderr, "%*c+ param_maybe_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param default? ',' TYPE_COMMENT?"));
8486 _res = _PyPegen_name_default_pair ( p , a , c , tc );
8487 if (_res == NULL && PyErr_Occurred()) {
8488 p->error_indicator = 1;
8489 D(p->level--);
8490 return NULL;
8491 }
8492 goto done;
8493 }
8494 p->mark = _mark;
8495 D(fprintf(stderr, "%*c%s param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
8496 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default? ',' TYPE_COMMENT?"));
8497 }
8498 { // param default? TYPE_COMMENT? &')'
8499 if (p->error_indicator) {
8500 D(p->level--);
8501 return NULL;
8502 }
8503 D(fprintf(stderr, "%*c> param_maybe_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param default? TYPE_COMMENT? &')'"));
8504 arg_ty a;
8505 void *c;
8506 void *tc;
8507 if (
8508 (a = param_rule(p)) // param
8509 &&
8510 (c = default_rule(p), 1) // default?
8511 &&
8512 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
8513 &&
8514 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
8515 )
8516 {
8517 D(fprintf(stderr, "%*c+ param_maybe_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param default? TYPE_COMMENT? &')'"));
8518 _res = _PyPegen_name_default_pair ( p , a , c , tc );
8519 if (_res == NULL && PyErr_Occurred()) {
8520 p->error_indicator = 1;
8521 D(p->level--);
8522 return NULL;
8523 }
8524 goto done;
8525 }
8526 p->mark = _mark;
8527 D(fprintf(stderr, "%*c%s param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
8528 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default? TYPE_COMMENT? &')'"));
8529 }
8530 _res = NULL;
8531 done:
8532 D(p->level--);
8533 return _res;
8534}
8535
8536// param: NAME annotation?
8537static arg_ty
8538param_rule(Parser *p)
8539{
8540 D(p->level++);
8541 if (p->error_indicator) {
8542 D(p->level--);
8543 return NULL;
8544 }
8545 arg_ty _res = NULL;
8546 int _mark = p->mark;
8547 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
8548 p->error_indicator = 1;
8549 D(p->level--);
8550 return NULL;
8551 }
8552 int _start_lineno = p->tokens[_mark]->lineno;
8553 UNUSED(_start_lineno); // Only used by EXTRA macro
8554 int _start_col_offset = p->tokens[_mark]->col_offset;
8555 UNUSED(_start_col_offset); // Only used by EXTRA macro
8556 { // NAME annotation?
8557 if (p->error_indicator) {
8558 D(p->level--);
8559 return NULL;
8560 }
8561 D(fprintf(stderr, "%*c> param[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME annotation?"));
8562 expr_ty a;
8563 void *b;
8564 if (
8565 (a = _PyPegen_name_token(p)) // NAME
8566 &&
8567 (b = annotation_rule(p), 1) // annotation?
8568 )
8569 {
8570 D(fprintf(stderr, "%*c+ param[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME annotation?"));
8571 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8572 if (_token == NULL) {
8573 D(p->level--);
8574 return NULL;
8575 }
8576 int _end_lineno = _token->end_lineno;
8577 UNUSED(_end_lineno); // Only used by EXTRA macro
8578 int _end_col_offset = _token->end_col_offset;
8579 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02008580 _res = _PyAST_arg ( a -> v . Name . id , b , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008581 if (_res == NULL && PyErr_Occurred()) {
8582 p->error_indicator = 1;
8583 D(p->level--);
8584 return NULL;
8585 }
8586 goto done;
8587 }
8588 p->mark = _mark;
8589 D(fprintf(stderr, "%*c%s param[%d-%d]: %s failed!\n", p->level, ' ',
8590 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME annotation?"));
8591 }
8592 _res = NULL;
8593 done:
8594 D(p->level--);
8595 return _res;
8596}
8597
8598// annotation: ':' expression
8599static expr_ty
8600annotation_rule(Parser *p)
8601{
8602 D(p->level++);
8603 if (p->error_indicator) {
8604 D(p->level--);
8605 return NULL;
8606 }
8607 expr_ty _res = NULL;
8608 int _mark = p->mark;
8609 { // ':' expression
8610 if (p->error_indicator) {
8611 D(p->level--);
8612 return NULL;
8613 }
8614 D(fprintf(stderr, "%*c> annotation[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':' expression"));
8615 Token * _literal;
8616 expr_ty a;
8617 if (
8618 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
8619 &&
8620 (a = expression_rule(p)) // expression
8621 )
8622 {
8623 D(fprintf(stderr, "%*c+ annotation[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':' expression"));
8624 _res = a;
8625 if (_res == NULL && PyErr_Occurred()) {
8626 p->error_indicator = 1;
8627 D(p->level--);
8628 return NULL;
8629 }
8630 goto done;
8631 }
8632 p->mark = _mark;
8633 D(fprintf(stderr, "%*c%s annotation[%d-%d]: %s failed!\n", p->level, ' ',
8634 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':' expression"));
8635 }
8636 _res = NULL;
8637 done:
8638 D(p->level--);
8639 return _res;
8640}
8641
8642// default: '=' expression
8643static expr_ty
8644default_rule(Parser *p)
8645{
8646 D(p->level++);
8647 if (p->error_indicator) {
8648 D(p->level--);
8649 return NULL;
8650 }
8651 expr_ty _res = NULL;
8652 int _mark = p->mark;
8653 { // '=' expression
8654 if (p->error_indicator) {
8655 D(p->level--);
8656 return NULL;
8657 }
8658 D(fprintf(stderr, "%*c> default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'=' expression"));
8659 Token * _literal;
8660 expr_ty a;
8661 if (
8662 (_literal = _PyPegen_expect_token(p, 22)) // token='='
8663 &&
8664 (a = expression_rule(p)) // expression
8665 )
8666 {
8667 D(fprintf(stderr, "%*c+ default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'=' expression"));
8668 _res = a;
8669 if (_res == NULL && PyErr_Occurred()) {
8670 p->error_indicator = 1;
8671 D(p->level--);
8672 return NULL;
8673 }
8674 goto done;
8675 }
8676 p->mark = _mark;
8677 D(fprintf(stderr, "%*c%s default[%d-%d]: %s failed!\n", p->level, ' ',
8678 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'=' expression"));
8679 }
8680 _res = NULL;
8681 done:
8682 D(p->level--);
8683 return _res;
8684}
8685
8686// decorators: (('@' named_expression NEWLINE))+
Pablo Galindoa5634c42020-09-16 19:42:00 +01008687static asdl_expr_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008688decorators_rule(Parser *p)
8689{
8690 D(p->level++);
8691 if (p->error_indicator) {
8692 D(p->level--);
8693 return NULL;
8694 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01008695 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008696 int _mark = p->mark;
8697 { // (('@' named_expression NEWLINE))+
8698 if (p->error_indicator) {
8699 D(p->level--);
8700 return NULL;
8701 }
8702 D(fprintf(stderr, "%*c> decorators[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(('@' named_expression NEWLINE))+"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01008703 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008704 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08008705 (a = (asdl_expr_seq*)_loop1_84_rule(p)) // (('@' named_expression NEWLINE))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008706 )
8707 {
8708 D(fprintf(stderr, "%*c+ decorators[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(('@' named_expression NEWLINE))+"));
8709 _res = a;
8710 if (_res == NULL && PyErr_Occurred()) {
8711 p->error_indicator = 1;
8712 D(p->level--);
8713 return NULL;
8714 }
8715 goto done;
8716 }
8717 p->mark = _mark;
8718 D(fprintf(stderr, "%*c%s decorators[%d-%d]: %s failed!\n", p->level, ' ',
8719 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(('@' named_expression NEWLINE))+"));
8720 }
8721 _res = NULL;
8722 done:
8723 D(p->level--);
8724 return _res;
8725}
8726
8727// class_def: decorators class_def_raw | class_def_raw
8728static stmt_ty
8729class_def_rule(Parser *p)
8730{
8731 D(p->level++);
8732 if (p->error_indicator) {
8733 D(p->level--);
8734 return NULL;
8735 }
8736 stmt_ty _res = NULL;
8737 int _mark = p->mark;
8738 { // decorators class_def_raw
8739 if (p->error_indicator) {
8740 D(p->level--);
8741 return NULL;
8742 }
8743 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 +01008744 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008745 stmt_ty b;
8746 if (
8747 (a = decorators_rule(p)) // decorators
8748 &&
8749 (b = class_def_raw_rule(p)) // class_def_raw
8750 )
8751 {
8752 D(fprintf(stderr, "%*c+ class_def[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "decorators class_def_raw"));
8753 _res = _PyPegen_class_def_decorators ( p , a , b );
8754 if (_res == NULL && PyErr_Occurred()) {
8755 p->error_indicator = 1;
8756 D(p->level--);
8757 return NULL;
8758 }
8759 goto done;
8760 }
8761 p->mark = _mark;
8762 D(fprintf(stderr, "%*c%s class_def[%d-%d]: %s failed!\n", p->level, ' ',
8763 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "decorators class_def_raw"));
8764 }
8765 { // class_def_raw
8766 if (p->error_indicator) {
8767 D(p->level--);
8768 return NULL;
8769 }
8770 D(fprintf(stderr, "%*c> class_def[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "class_def_raw"));
8771 stmt_ty class_def_raw_var;
8772 if (
8773 (class_def_raw_var = class_def_raw_rule(p)) // class_def_raw
8774 )
8775 {
8776 D(fprintf(stderr, "%*c+ class_def[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "class_def_raw"));
8777 _res = class_def_raw_var;
8778 goto done;
8779 }
8780 p->mark = _mark;
8781 D(fprintf(stderr, "%*c%s class_def[%d-%d]: %s failed!\n", p->level, ' ',
8782 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "class_def_raw"));
8783 }
8784 _res = NULL;
8785 done:
8786 D(p->level--);
8787 return _res;
8788}
8789
Pablo Galindo58fb1562021-02-02 19:54:22 +00008790// class_def_raw: 'class' NAME ['(' arguments? ')'] &&':' block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008791static stmt_ty
8792class_def_raw_rule(Parser *p)
8793{
8794 D(p->level++);
8795 if (p->error_indicator) {
8796 D(p->level--);
8797 return NULL;
8798 }
8799 stmt_ty _res = NULL;
8800 int _mark = p->mark;
8801 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
8802 p->error_indicator = 1;
8803 D(p->level--);
8804 return NULL;
8805 }
8806 int _start_lineno = p->tokens[_mark]->lineno;
8807 UNUSED(_start_lineno); // Only used by EXTRA macro
8808 int _start_col_offset = p->tokens[_mark]->col_offset;
8809 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo58fb1562021-02-02 19:54:22 +00008810 { // 'class' NAME ['(' arguments? ')'] &&':' block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008811 if (p->error_indicator) {
8812 D(p->level--);
8813 return NULL;
8814 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00008815 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 +01008816 Token * _keyword;
8817 Token * _literal;
8818 expr_ty a;
8819 void *b;
Pablo Galindoa5634c42020-09-16 19:42:00 +01008820 asdl_stmt_seq* c;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008821 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08008822 (_keyword = _PyPegen_expect_token(p, 527)) // token='class'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008823 &&
8824 (a = _PyPegen_name_token(p)) // NAME
8825 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008826 (b = _tmp_85_rule(p), 1) // ['(' arguments? ')']
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008827 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00008828 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008829 &&
8830 (c = block_rule(p)) // block
8831 )
8832 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00008833 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 +01008834 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8835 if (_token == NULL) {
8836 D(p->level--);
8837 return NULL;
8838 }
8839 int _end_lineno = _token->end_lineno;
8840 UNUSED(_end_lineno); // Only used by EXTRA macro
8841 int _end_col_offset = _token->end_col_offset;
8842 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02008843 _res = _PyAST_ClassDef ( a -> v . Name . id , ( b ) ? ( ( expr_ty ) b ) -> v . Call . args : NULL , ( b ) ? ( ( expr_ty ) b ) -> v . Call . keywords : NULL , c , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008844 if (_res == NULL && PyErr_Occurred()) {
8845 p->error_indicator = 1;
8846 D(p->level--);
8847 return NULL;
8848 }
8849 goto done;
8850 }
8851 p->mark = _mark;
8852 D(fprintf(stderr, "%*c%s class_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00008853 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'class' NAME ['(' arguments? ')'] &&':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008854 }
8855 _res = NULL;
8856 done:
8857 D(p->level--);
8858 return _res;
8859}
8860
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00008861// block: NEWLINE INDENT statements DEDENT | simple_stmts | invalid_block
Pablo Galindoa5634c42020-09-16 19:42:00 +01008862static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008863block_rule(Parser *p)
8864{
8865 D(p->level++);
8866 if (p->error_indicator) {
8867 D(p->level--);
8868 return NULL;
8869 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01008870 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008871 if (_PyPegen_is_memoized(p, block_type, &_res)) {
8872 D(p->level--);
8873 return _res;
8874 }
8875 int _mark = p->mark;
8876 { // NEWLINE INDENT statements DEDENT
8877 if (p->error_indicator) {
8878 D(p->level--);
8879 return NULL;
8880 }
8881 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 +01008882 asdl_stmt_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008883 Token * dedent_var;
8884 Token * indent_var;
8885 Token * newline_var;
8886 if (
8887 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
8888 &&
8889 (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
8890 &&
8891 (a = statements_rule(p)) // statements
8892 &&
8893 (dedent_var = _PyPegen_expect_token(p, DEDENT)) // token='DEDENT'
8894 )
8895 {
8896 D(fprintf(stderr, "%*c+ block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE INDENT statements DEDENT"));
8897 _res = a;
8898 if (_res == NULL && PyErr_Occurred()) {
8899 p->error_indicator = 1;
8900 D(p->level--);
8901 return NULL;
8902 }
8903 goto done;
8904 }
8905 p->mark = _mark;
8906 D(fprintf(stderr, "%*c%s block[%d-%d]: %s failed!\n", p->level, ' ',
8907 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE INDENT statements DEDENT"));
8908 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00008909 { // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008910 if (p->error_indicator) {
8911 D(p->level--);
8912 return NULL;
8913 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00008914 D(fprintf(stderr, "%*c> block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
8915 asdl_stmt_seq* simple_stmts_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008916 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00008917 (simple_stmts_var = simple_stmts_rule(p)) // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008918 )
8919 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00008920 D(fprintf(stderr, "%*c+ block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
8921 _res = simple_stmts_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008922 goto done;
8923 }
8924 p->mark = _mark;
8925 D(fprintf(stderr, "%*c%s block[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00008926 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmts"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008927 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02008928 if (p->call_invalid_rules) { // invalid_block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008929 if (p->error_indicator) {
8930 D(p->level--);
8931 return NULL;
8932 }
8933 D(fprintf(stderr, "%*c> block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_block"));
8934 void *invalid_block_var;
8935 if (
8936 (invalid_block_var = invalid_block_rule(p)) // invalid_block
8937 )
8938 {
8939 D(fprintf(stderr, "%*c+ block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_block"));
8940 _res = invalid_block_var;
8941 goto done;
8942 }
8943 p->mark = _mark;
8944 D(fprintf(stderr, "%*c%s block[%d-%d]: %s failed!\n", p->level, ' ',
8945 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_block"));
8946 }
8947 _res = NULL;
8948 done:
8949 _PyPegen_insert_memo(p, _mark, block_type, _res);
8950 D(p->level--);
8951 return _res;
8952}
8953
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008954// star_expressions:
8955// | star_expression ((',' star_expression))+ ','?
8956// | star_expression ','
8957// | star_expression
8958static expr_ty
8959star_expressions_rule(Parser *p)
8960{
8961 D(p->level++);
8962 if (p->error_indicator) {
8963 D(p->level--);
8964 return NULL;
8965 }
8966 expr_ty _res = NULL;
8967 int _mark = p->mark;
8968 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
8969 p->error_indicator = 1;
8970 D(p->level--);
8971 return NULL;
8972 }
8973 int _start_lineno = p->tokens[_mark]->lineno;
8974 UNUSED(_start_lineno); // Only used by EXTRA macro
8975 int _start_col_offset = p->tokens[_mark]->col_offset;
8976 UNUSED(_start_col_offset); // Only used by EXTRA macro
8977 { // star_expression ((',' star_expression))+ ','?
8978 if (p->error_indicator) {
8979 D(p->level--);
8980 return NULL;
8981 }
8982 D(fprintf(stderr, "%*c> star_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expression ((',' star_expression))+ ','?"));
8983 void *_opt_var;
8984 UNUSED(_opt_var); // Silence compiler warnings
8985 expr_ty a;
8986 asdl_seq * b;
8987 if (
8988 (a = star_expression_rule(p)) // star_expression
8989 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008990 (b = _loop1_86_rule(p)) // ((',' star_expression))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008991 &&
8992 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
8993 )
8994 {
8995 D(fprintf(stderr, "%*c+ star_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expression ((',' star_expression))+ ','?"));
8996 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8997 if (_token == NULL) {
8998 D(p->level--);
8999 return NULL;
9000 }
9001 int _end_lineno = _token->end_lineno;
9002 UNUSED(_end_lineno); // Only used by EXTRA macro
9003 int _end_col_offset = _token->end_col_offset;
9004 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02009005 _res = _PyAST_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , a , b ) ) , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009006 if (_res == NULL && PyErr_Occurred()) {
9007 p->error_indicator = 1;
9008 D(p->level--);
9009 return NULL;
9010 }
9011 goto done;
9012 }
9013 p->mark = _mark;
9014 D(fprintf(stderr, "%*c%s star_expressions[%d-%d]: %s failed!\n", p->level, ' ',
9015 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expression ((',' star_expression))+ ','?"));
9016 }
9017 { // star_expression ','
9018 if (p->error_indicator) {
9019 D(p->level--);
9020 return NULL;
9021 }
9022 D(fprintf(stderr, "%*c> star_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expression ','"));
9023 Token * _literal;
9024 expr_ty a;
9025 if (
9026 (a = star_expression_rule(p)) // star_expression
9027 &&
9028 (_literal = _PyPegen_expect_token(p, 12)) // token=','
9029 )
9030 {
9031 D(fprintf(stderr, "%*c+ star_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expression ','"));
9032 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9033 if (_token == NULL) {
9034 D(p->level--);
9035 return NULL;
9036 }
9037 int _end_lineno = _token->end_lineno;
9038 UNUSED(_end_lineno); // Only used by EXTRA macro
9039 int _end_col_offset = _token->end_col_offset;
9040 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02009041 _res = _PyAST_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_singleton_seq ( p , a ) ) , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009042 if (_res == NULL && PyErr_Occurred()) {
9043 p->error_indicator = 1;
9044 D(p->level--);
9045 return NULL;
9046 }
9047 goto done;
9048 }
9049 p->mark = _mark;
9050 D(fprintf(stderr, "%*c%s star_expressions[%d-%d]: %s failed!\n", p->level, ' ',
9051 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expression ','"));
9052 }
9053 { // star_expression
9054 if (p->error_indicator) {
9055 D(p->level--);
9056 return NULL;
9057 }
9058 D(fprintf(stderr, "%*c> star_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expression"));
9059 expr_ty star_expression_var;
9060 if (
9061 (star_expression_var = star_expression_rule(p)) // star_expression
9062 )
9063 {
9064 D(fprintf(stderr, "%*c+ star_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expression"));
9065 _res = star_expression_var;
9066 goto done;
9067 }
9068 p->mark = _mark;
9069 D(fprintf(stderr, "%*c%s star_expressions[%d-%d]: %s failed!\n", p->level, ' ',
9070 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expression"));
9071 }
9072 _res = NULL;
9073 done:
9074 D(p->level--);
9075 return _res;
9076}
9077
9078// star_expression: '*' bitwise_or | expression
9079static expr_ty
9080star_expression_rule(Parser *p)
9081{
9082 D(p->level++);
9083 if (p->error_indicator) {
9084 D(p->level--);
9085 return NULL;
9086 }
9087 expr_ty _res = NULL;
9088 if (_PyPegen_is_memoized(p, star_expression_type, &_res)) {
9089 D(p->level--);
9090 return _res;
9091 }
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_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_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
Victor Stinnerd27f8d22021-04-07 21:34:22 +02009126 _res = _PyAST_Starred ( a , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009127 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_expression[%d-%d]: %s failed!\n", p->level, ' ',
9136 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' bitwise_or"));
9137 }
9138 { // expression
9139 if (p->error_indicator) {
9140 D(p->level--);
9141 return NULL;
9142 }
9143 D(fprintf(stderr, "%*c> star_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression"));
9144 expr_ty expression_var;
9145 if (
9146 (expression_var = expression_rule(p)) // expression
9147 )
9148 {
9149 D(fprintf(stderr, "%*c+ star_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression"));
9150 _res = expression_var;
9151 goto done;
9152 }
9153 p->mark = _mark;
9154 D(fprintf(stderr, "%*c%s star_expression[%d-%d]: %s failed!\n", p->level, ' ',
9155 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression"));
9156 }
9157 _res = NULL;
9158 done:
9159 _PyPegen_insert_memo(p, _mark, star_expression_type, _res);
9160 D(p->level--);
9161 return _res;
9162}
9163
9164// star_named_expressions: ','.star_named_expression+ ','?
Pablo Galindoa5634c42020-09-16 19:42:00 +01009165static asdl_expr_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009166star_named_expressions_rule(Parser *p)
9167{
9168 D(p->level++);
9169 if (p->error_indicator) {
9170 D(p->level--);
9171 return NULL;
9172 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01009173 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009174 int _mark = p->mark;
9175 { // ','.star_named_expression+ ','?
9176 if (p->error_indicator) {
9177 D(p->level--);
9178 return NULL;
9179 }
9180 D(fprintf(stderr, "%*c> star_named_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.star_named_expression+ ','?"));
9181 void *_opt_var;
9182 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +01009183 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009184 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08009185 (a = (asdl_expr_seq*)_gather_87_rule(p)) // ','.star_named_expression+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009186 &&
9187 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
9188 )
9189 {
9190 D(fprintf(stderr, "%*c+ star_named_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.star_named_expression+ ','?"));
9191 _res = a;
9192 if (_res == NULL && PyErr_Occurred()) {
9193 p->error_indicator = 1;
9194 D(p->level--);
9195 return NULL;
9196 }
9197 goto done;
9198 }
9199 p->mark = _mark;
9200 D(fprintf(stderr, "%*c%s star_named_expressions[%d-%d]: %s failed!\n", p->level, ' ',
9201 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.star_named_expression+ ','?"));
9202 }
9203 _res = NULL;
9204 done:
9205 D(p->level--);
9206 return _res;
9207}
9208
9209// star_named_expression: '*' bitwise_or | named_expression
9210static expr_ty
9211star_named_expression_rule(Parser *p)
9212{
9213 D(p->level++);
9214 if (p->error_indicator) {
9215 D(p->level--);
9216 return NULL;
9217 }
9218 expr_ty _res = NULL;
9219 int _mark = p->mark;
9220 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9221 p->error_indicator = 1;
9222 D(p->level--);
9223 return NULL;
9224 }
9225 int _start_lineno = p->tokens[_mark]->lineno;
9226 UNUSED(_start_lineno); // Only used by EXTRA macro
9227 int _start_col_offset = p->tokens[_mark]->col_offset;
9228 UNUSED(_start_col_offset); // Only used by EXTRA macro
9229 { // '*' bitwise_or
9230 if (p->error_indicator) {
9231 D(p->level--);
9232 return NULL;
9233 }
9234 D(fprintf(stderr, "%*c> star_named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or"));
9235 Token * _literal;
9236 expr_ty a;
9237 if (
9238 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
9239 &&
9240 (a = bitwise_or_rule(p)) // bitwise_or
9241 )
9242 {
9243 D(fprintf(stderr, "%*c+ star_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or"));
9244 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9245 if (_token == NULL) {
9246 D(p->level--);
9247 return NULL;
9248 }
9249 int _end_lineno = _token->end_lineno;
9250 UNUSED(_end_lineno); // Only used by EXTRA macro
9251 int _end_col_offset = _token->end_col_offset;
9252 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02009253 _res = _PyAST_Starred ( a , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009254 if (_res == NULL && PyErr_Occurred()) {
9255 p->error_indicator = 1;
9256 D(p->level--);
9257 return NULL;
9258 }
9259 goto done;
9260 }
9261 p->mark = _mark;
9262 D(fprintf(stderr, "%*c%s star_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
9263 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' bitwise_or"));
9264 }
9265 { // named_expression
9266 if (p->error_indicator) {
9267 D(p->level--);
9268 return NULL;
9269 }
9270 D(fprintf(stderr, "%*c> star_named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression"));
9271 expr_ty named_expression_var;
9272 if (
9273 (named_expression_var = named_expression_rule(p)) // named_expression
9274 )
9275 {
9276 D(fprintf(stderr, "%*c+ star_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "named_expression"));
9277 _res = named_expression_var;
9278 goto done;
9279 }
9280 p->mark = _mark;
9281 D(fprintf(stderr, "%*c%s star_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
9282 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression"));
9283 }
9284 _res = NULL;
9285 done:
9286 D(p->level--);
9287 return _res;
9288}
9289
Pablo Galindob86ed8e2021-04-12 16:59:30 +01009290// named_expression: NAME ':=' ~ expression | invalid_named_expression | expression !':='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009291static expr_ty
9292named_expression_rule(Parser *p)
9293{
9294 D(p->level++);
9295 if (p->error_indicator) {
9296 D(p->level--);
9297 return NULL;
9298 }
9299 expr_ty _res = NULL;
9300 int _mark = p->mark;
9301 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9302 p->error_indicator = 1;
9303 D(p->level--);
9304 return NULL;
9305 }
9306 int _start_lineno = p->tokens[_mark]->lineno;
9307 UNUSED(_start_lineno); // Only used by EXTRA macro
9308 int _start_col_offset = p->tokens[_mark]->col_offset;
9309 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03009310 { // NAME ':=' ~ expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009311 if (p->error_indicator) {
9312 D(p->level--);
9313 return NULL;
9314 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03009315 D(fprintf(stderr, "%*c> named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME ':=' ~ expression"));
9316 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009317 Token * _literal;
9318 expr_ty a;
9319 expr_ty b;
9320 if (
9321 (a = _PyPegen_name_token(p)) // NAME
9322 &&
9323 (_literal = _PyPegen_expect_token(p, 53)) // token=':='
9324 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03009325 (_cut_var = 1)
9326 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009327 (b = expression_rule(p)) // expression
9328 )
9329 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03009330 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 +01009331 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9332 if (_token == NULL) {
9333 D(p->level--);
9334 return NULL;
9335 }
9336 int _end_lineno = _token->end_lineno;
9337 UNUSED(_end_lineno); // Only used by EXTRA macro
9338 int _end_col_offset = _token->end_col_offset;
9339 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02009340 _res = _PyAST_NamedExpr ( CHECK ( expr_ty , _PyPegen_set_expr_context ( p , a , Store ) ) , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009341 if (_res == NULL && PyErr_Occurred()) {
9342 p->error_indicator = 1;
9343 D(p->level--);
9344 return NULL;
9345 }
9346 goto done;
9347 }
9348 p->mark = _mark;
9349 D(fprintf(stderr, "%*c%s named_expression[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03009350 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME ':=' ~ expression"));
9351 if (_cut_var) {
9352 D(p->level--);
9353 return NULL;
9354 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009355 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01009356 if (p->call_invalid_rules) { // invalid_named_expression
9357 if (p->error_indicator) {
9358 D(p->level--);
9359 return NULL;
9360 }
9361 D(fprintf(stderr, "%*c> named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_named_expression"));
9362 void *invalid_named_expression_var;
9363 if (
9364 (invalid_named_expression_var = invalid_named_expression_rule(p)) // invalid_named_expression
9365 )
9366 {
9367 D(fprintf(stderr, "%*c+ named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_named_expression"));
9368 _res = invalid_named_expression_var;
9369 goto done;
9370 }
9371 p->mark = _mark;
9372 D(fprintf(stderr, "%*c%s named_expression[%d-%d]: %s failed!\n", p->level, ' ',
9373 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_named_expression"));
9374 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009375 { // expression !':='
9376 if (p->error_indicator) {
9377 D(p->level--);
9378 return NULL;
9379 }
9380 D(fprintf(stderr, "%*c> named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression !':='"));
9381 expr_ty expression_var;
9382 if (
9383 (expression_var = expression_rule(p)) // expression
9384 &&
9385 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 53) // token=':='
9386 )
9387 {
9388 D(fprintf(stderr, "%*c+ named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression !':='"));
9389 _res = expression_var;
9390 goto done;
9391 }
9392 p->mark = _mark;
9393 D(fprintf(stderr, "%*c%s named_expression[%d-%d]: %s failed!\n", p->level, ' ',
9394 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression !':='"));
9395 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009396 _res = NULL;
9397 done:
9398 D(p->level--);
9399 return _res;
9400}
9401
Pablo Galindod9151cb2021-04-13 02:32:33 +01009402// direct_named_expression: NAME ':=' ~ expression | expression !':='
9403static expr_ty
9404direct_named_expression_rule(Parser *p)
9405{
9406 D(p->level++);
9407 if (p->error_indicator) {
9408 D(p->level--);
9409 return NULL;
9410 }
9411 expr_ty _res = NULL;
9412 int _mark = p->mark;
9413 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9414 p->error_indicator = 1;
9415 D(p->level--);
9416 return NULL;
9417 }
9418 int _start_lineno = p->tokens[_mark]->lineno;
9419 UNUSED(_start_lineno); // Only used by EXTRA macro
9420 int _start_col_offset = p->tokens[_mark]->col_offset;
9421 UNUSED(_start_col_offset); // Only used by EXTRA macro
9422 { // NAME ':=' ~ expression
9423 if (p->error_indicator) {
9424 D(p->level--);
9425 return NULL;
9426 }
9427 D(fprintf(stderr, "%*c> direct_named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME ':=' ~ expression"));
9428 int _cut_var = 0;
9429 Token * _literal;
9430 expr_ty a;
9431 expr_ty b;
9432 if (
9433 (a = _PyPegen_name_token(p)) // NAME
9434 &&
9435 (_literal = _PyPegen_expect_token(p, 53)) // token=':='
9436 &&
9437 (_cut_var = 1)
9438 &&
9439 (b = expression_rule(p)) // expression
9440 )
9441 {
9442 D(fprintf(stderr, "%*c+ direct_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME ':=' ~ expression"));
9443 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9444 if (_token == NULL) {
9445 D(p->level--);
9446 return NULL;
9447 }
9448 int _end_lineno = _token->end_lineno;
9449 UNUSED(_end_lineno); // Only used by EXTRA macro
9450 int _end_col_offset = _token->end_col_offset;
9451 UNUSED(_end_col_offset); // Only used by EXTRA macro
9452 _res = _PyAST_NamedExpr ( CHECK ( expr_ty , _PyPegen_set_expr_context ( p , a , Store ) ) , b , EXTRA );
9453 if (_res == NULL && PyErr_Occurred()) {
9454 p->error_indicator = 1;
9455 D(p->level--);
9456 return NULL;
9457 }
9458 goto done;
9459 }
9460 p->mark = _mark;
9461 D(fprintf(stderr, "%*c%s direct_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
9462 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME ':=' ~ expression"));
9463 if (_cut_var) {
9464 D(p->level--);
9465 return NULL;
9466 }
9467 }
9468 { // expression !':='
9469 if (p->error_indicator) {
9470 D(p->level--);
9471 return NULL;
9472 }
9473 D(fprintf(stderr, "%*c> direct_named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression !':='"));
9474 expr_ty expression_var;
9475 if (
9476 (expression_var = expression_rule(p)) // expression
9477 &&
9478 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 53) // token=':='
9479 )
9480 {
9481 D(fprintf(stderr, "%*c+ direct_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression !':='"));
9482 _res = expression_var;
9483 goto done;
9484 }
9485 p->mark = _mark;
9486 D(fprintf(stderr, "%*c%s direct_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
9487 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression !':='"));
9488 }
9489 _res = NULL;
9490 done:
9491 D(p->level--);
9492 return _res;
9493}
9494
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009495// annotated_rhs: yield_expr | star_expressions
9496static expr_ty
9497annotated_rhs_rule(Parser *p)
9498{
9499 D(p->level++);
9500 if (p->error_indicator) {
9501 D(p->level--);
9502 return NULL;
9503 }
9504 expr_ty _res = NULL;
9505 int _mark = p->mark;
9506 { // yield_expr
9507 if (p->error_indicator) {
9508 D(p->level--);
9509 return NULL;
9510 }
9511 D(fprintf(stderr, "%*c> annotated_rhs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
9512 expr_ty yield_expr_var;
9513 if (
9514 (yield_expr_var = yield_expr_rule(p)) // yield_expr
9515 )
9516 {
9517 D(fprintf(stderr, "%*c+ annotated_rhs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
9518 _res = yield_expr_var;
9519 goto done;
9520 }
9521 p->mark = _mark;
9522 D(fprintf(stderr, "%*c%s annotated_rhs[%d-%d]: %s failed!\n", p->level, ' ',
9523 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
9524 }
9525 { // star_expressions
9526 if (p->error_indicator) {
9527 D(p->level--);
9528 return NULL;
9529 }
9530 D(fprintf(stderr, "%*c> annotated_rhs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
9531 expr_ty star_expressions_var;
9532 if (
9533 (star_expressions_var = star_expressions_rule(p)) // star_expressions
9534 )
9535 {
9536 D(fprintf(stderr, "%*c+ annotated_rhs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
9537 _res = star_expressions_var;
9538 goto done;
9539 }
9540 p->mark = _mark;
9541 D(fprintf(stderr, "%*c%s annotated_rhs[%d-%d]: %s failed!\n", p->level, ' ',
9542 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
9543 }
9544 _res = NULL;
9545 done:
9546 D(p->level--);
9547 return _res;
9548}
9549
9550// expressions: expression ((',' expression))+ ','? | expression ',' | expression
9551static expr_ty
9552expressions_rule(Parser *p)
9553{
9554 D(p->level++);
9555 if (p->error_indicator) {
9556 D(p->level--);
9557 return NULL;
9558 }
9559 expr_ty _res = NULL;
9560 int _mark = p->mark;
9561 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9562 p->error_indicator = 1;
9563 D(p->level--);
9564 return NULL;
9565 }
9566 int _start_lineno = p->tokens[_mark]->lineno;
9567 UNUSED(_start_lineno); // Only used by EXTRA macro
9568 int _start_col_offset = p->tokens[_mark]->col_offset;
9569 UNUSED(_start_col_offset); // Only used by EXTRA macro
9570 { // expression ((',' expression))+ ','?
9571 if (p->error_indicator) {
9572 D(p->level--);
9573 return NULL;
9574 }
9575 D(fprintf(stderr, "%*c> expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ((',' expression))+ ','?"));
9576 void *_opt_var;
9577 UNUSED(_opt_var); // Silence compiler warnings
9578 expr_ty a;
9579 asdl_seq * b;
9580 if (
9581 (a = expression_rule(p)) // expression
9582 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08009583 (b = _loop1_89_rule(p)) // ((',' expression))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009584 &&
9585 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
9586 )
9587 {
9588 D(fprintf(stderr, "%*c+ expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ((',' expression))+ ','?"));
9589 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9590 if (_token == NULL) {
9591 D(p->level--);
9592 return NULL;
9593 }
9594 int _end_lineno = _token->end_lineno;
9595 UNUSED(_end_lineno); // Only used by EXTRA macro
9596 int _end_col_offset = _token->end_col_offset;
9597 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02009598 _res = _PyAST_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , a , b ) ) , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009599 if (_res == NULL && PyErr_Occurred()) {
9600 p->error_indicator = 1;
9601 D(p->level--);
9602 return NULL;
9603 }
9604 goto done;
9605 }
9606 p->mark = _mark;
9607 D(fprintf(stderr, "%*c%s expressions[%d-%d]: %s failed!\n", p->level, ' ',
9608 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ((',' expression))+ ','?"));
9609 }
9610 { // expression ','
9611 if (p->error_indicator) {
9612 D(p->level--);
9613 return NULL;
9614 }
9615 D(fprintf(stderr, "%*c> expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ','"));
9616 Token * _literal;
9617 expr_ty a;
9618 if (
9619 (a = expression_rule(p)) // expression
9620 &&
9621 (_literal = _PyPegen_expect_token(p, 12)) // token=','
9622 )
9623 {
9624 D(fprintf(stderr, "%*c+ expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ','"));
9625 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9626 if (_token == NULL) {
9627 D(p->level--);
9628 return NULL;
9629 }
9630 int _end_lineno = _token->end_lineno;
9631 UNUSED(_end_lineno); // Only used by EXTRA macro
9632 int _end_col_offset = _token->end_col_offset;
9633 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02009634 _res = _PyAST_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_singleton_seq ( p , a ) ) , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009635 if (_res == NULL && PyErr_Occurred()) {
9636 p->error_indicator = 1;
9637 D(p->level--);
9638 return NULL;
9639 }
9640 goto done;
9641 }
9642 p->mark = _mark;
9643 D(fprintf(stderr, "%*c%s expressions[%d-%d]: %s failed!\n", p->level, ' ',
9644 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ','"));
9645 }
9646 { // expression
9647 if (p->error_indicator) {
9648 D(p->level--);
9649 return NULL;
9650 }
9651 D(fprintf(stderr, "%*c> expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression"));
9652 expr_ty expression_var;
9653 if (
9654 (expression_var = expression_rule(p)) // expression
9655 )
9656 {
9657 D(fprintf(stderr, "%*c+ expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression"));
9658 _res = expression_var;
9659 goto done;
9660 }
9661 p->mark = _mark;
9662 D(fprintf(stderr, "%*c%s expressions[%d-%d]: %s failed!\n", p->level, ' ',
9663 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression"));
9664 }
9665 _res = NULL;
9666 done:
9667 D(p->level--);
9668 return _res;
9669}
9670
9671// expression: disjunction 'if' disjunction 'else' expression | disjunction | lambdef
9672static expr_ty
9673expression_rule(Parser *p)
9674{
9675 D(p->level++);
9676 if (p->error_indicator) {
9677 D(p->level--);
9678 return NULL;
9679 }
9680 expr_ty _res = NULL;
9681 if (_PyPegen_is_memoized(p, expression_type, &_res)) {
9682 D(p->level--);
9683 return _res;
9684 }
9685 int _mark = p->mark;
9686 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9687 p->error_indicator = 1;
9688 D(p->level--);
9689 return NULL;
9690 }
9691 int _start_lineno = p->tokens[_mark]->lineno;
9692 UNUSED(_start_lineno); // Only used by EXTRA macro
9693 int _start_col_offset = p->tokens[_mark]->col_offset;
9694 UNUSED(_start_col_offset); // Only used by EXTRA macro
9695 { // disjunction 'if' disjunction 'else' expression
9696 if (p->error_indicator) {
9697 D(p->level--);
9698 return NULL;
9699 }
9700 D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction 'else' expression"));
9701 Token * _keyword;
9702 Token * _keyword_1;
9703 expr_ty a;
9704 expr_ty b;
9705 expr_ty c;
9706 if (
9707 (a = disjunction_rule(p)) // disjunction
9708 &&
9709 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
9710 &&
9711 (b = disjunction_rule(p)) // disjunction
9712 &&
9713 (_keyword_1 = _PyPegen_expect_token(p, 516)) // token='else'
9714 &&
9715 (c = expression_rule(p)) // expression
9716 )
9717 {
9718 D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction 'else' expression"));
9719 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9720 if (_token == NULL) {
9721 D(p->level--);
9722 return NULL;
9723 }
9724 int _end_lineno = _token->end_lineno;
9725 UNUSED(_end_lineno); // Only used by EXTRA macro
9726 int _end_col_offset = _token->end_col_offset;
9727 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02009728 _res = _PyAST_IfExp ( b , a , c , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009729 if (_res == NULL && PyErr_Occurred()) {
9730 p->error_indicator = 1;
9731 D(p->level--);
9732 return NULL;
9733 }
9734 goto done;
9735 }
9736 p->mark = _mark;
9737 D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
9738 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction 'if' disjunction 'else' expression"));
9739 }
9740 { // disjunction
9741 if (p->error_indicator) {
9742 D(p->level--);
9743 return NULL;
9744 }
9745 D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "disjunction"));
9746 expr_ty disjunction_var;
9747 if (
9748 (disjunction_var = disjunction_rule(p)) // disjunction
9749 )
9750 {
9751 D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "disjunction"));
9752 _res = disjunction_var;
9753 goto done;
9754 }
9755 p->mark = _mark;
9756 D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
9757 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction"));
9758 }
9759 { // lambdef
9760 if (p->error_indicator) {
9761 D(p->level--);
9762 return NULL;
9763 }
9764 D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambdef"));
9765 expr_ty lambdef_var;
9766 if (
9767 (lambdef_var = lambdef_rule(p)) // lambdef
9768 )
9769 {
9770 D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambdef"));
9771 _res = lambdef_var;
9772 goto done;
9773 }
9774 p->mark = _mark;
9775 D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
9776 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambdef"));
9777 }
9778 _res = NULL;
9779 done:
9780 _PyPegen_insert_memo(p, _mark, expression_type, _res);
9781 D(p->level--);
9782 return _res;
9783}
9784
9785// lambdef: 'lambda' lambda_params? ':' expression
9786static expr_ty
9787lambdef_rule(Parser *p)
9788{
9789 D(p->level++);
9790 if (p->error_indicator) {
9791 D(p->level--);
9792 return NULL;
9793 }
9794 expr_ty _res = NULL;
9795 int _mark = p->mark;
9796 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9797 p->error_indicator = 1;
9798 D(p->level--);
9799 return NULL;
9800 }
9801 int _start_lineno = p->tokens[_mark]->lineno;
9802 UNUSED(_start_lineno); // Only used by EXTRA macro
9803 int _start_col_offset = p->tokens[_mark]->col_offset;
9804 UNUSED(_start_col_offset); // Only used by EXTRA macro
9805 { // 'lambda' lambda_params? ':' expression
9806 if (p->error_indicator) {
9807 D(p->level--);
9808 return NULL;
9809 }
9810 D(fprintf(stderr, "%*c> lambdef[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'lambda' lambda_params? ':' expression"));
9811 Token * _keyword;
9812 Token * _literal;
9813 void *a;
9814 expr_ty b;
9815 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08009816 (_keyword = _PyPegen_expect_token(p, 528)) // token='lambda'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009817 &&
9818 (a = lambda_params_rule(p), 1) // lambda_params?
9819 &&
9820 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
9821 &&
9822 (b = expression_rule(p)) // expression
9823 )
9824 {
9825 D(fprintf(stderr, "%*c+ lambdef[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'lambda' lambda_params? ':' expression"));
9826 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9827 if (_token == NULL) {
9828 D(p->level--);
9829 return NULL;
9830 }
9831 int _end_lineno = _token->end_lineno;
9832 UNUSED(_end_lineno); // Only used by EXTRA macro
9833 int _end_col_offset = _token->end_col_offset;
9834 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02009835 _res = _PyAST_Lambda ( ( a ) ? a : CHECK ( arguments_ty , _PyPegen_empty_arguments ( p ) ) , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009836 if (_res == NULL && PyErr_Occurred()) {
9837 p->error_indicator = 1;
9838 D(p->level--);
9839 return NULL;
9840 }
9841 goto done;
9842 }
9843 p->mark = _mark;
9844 D(fprintf(stderr, "%*c%s lambdef[%d-%d]: %s failed!\n", p->level, ' ',
9845 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'lambda' lambda_params? ':' expression"));
9846 }
9847 _res = NULL;
9848 done:
9849 D(p->level--);
9850 return _res;
9851}
9852
9853// lambda_params: invalid_lambda_parameters | lambda_parameters
9854static arguments_ty
9855lambda_params_rule(Parser *p)
9856{
9857 D(p->level++);
9858 if (p->error_indicator) {
9859 D(p->level--);
9860 return NULL;
9861 }
9862 arguments_ty _res = NULL;
9863 int _mark = p->mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02009864 if (p->call_invalid_rules) { // invalid_lambda_parameters
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009865 if (p->error_indicator) {
9866 D(p->level--);
9867 return NULL;
9868 }
9869 D(fprintf(stderr, "%*c> lambda_params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_lambda_parameters"));
9870 void *invalid_lambda_parameters_var;
9871 if (
9872 (invalid_lambda_parameters_var = invalid_lambda_parameters_rule(p)) // invalid_lambda_parameters
9873 )
9874 {
9875 D(fprintf(stderr, "%*c+ lambda_params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_lambda_parameters"));
9876 _res = invalid_lambda_parameters_var;
9877 goto done;
9878 }
9879 p->mark = _mark;
9880 D(fprintf(stderr, "%*c%s lambda_params[%d-%d]: %s failed!\n", p->level, ' ',
9881 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_lambda_parameters"));
9882 }
9883 { // lambda_parameters
9884 if (p->error_indicator) {
9885 D(p->level--);
9886 return NULL;
9887 }
9888 D(fprintf(stderr, "%*c> lambda_params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_parameters"));
9889 arguments_ty lambda_parameters_var;
9890 if (
9891 (lambda_parameters_var = lambda_parameters_rule(p)) // lambda_parameters
9892 )
9893 {
9894 D(fprintf(stderr, "%*c+ lambda_params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_parameters"));
9895 _res = lambda_parameters_var;
9896 goto done;
9897 }
9898 p->mark = _mark;
9899 D(fprintf(stderr, "%*c%s lambda_params[%d-%d]: %s failed!\n", p->level, ' ',
9900 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_parameters"));
9901 }
9902 _res = NULL;
9903 done:
9904 D(p->level--);
9905 return _res;
9906}
9907
9908// lambda_parameters:
9909// | lambda_slash_no_default lambda_param_no_default* lambda_param_with_default* lambda_star_etc?
9910// | lambda_slash_with_default lambda_param_with_default* lambda_star_etc?
9911// | lambda_param_no_default+ lambda_param_with_default* lambda_star_etc?
9912// | lambda_param_with_default+ lambda_star_etc?
9913// | lambda_star_etc
9914static arguments_ty
9915lambda_parameters_rule(Parser *p)
9916{
9917 D(p->level++);
9918 if (p->error_indicator) {
9919 D(p->level--);
9920 return NULL;
9921 }
9922 arguments_ty _res = NULL;
9923 int _mark = p->mark;
9924 { // lambda_slash_no_default lambda_param_no_default* lambda_param_with_default* lambda_star_etc?
9925 if (p->error_indicator) {
9926 D(p->level--);
9927 return NULL;
9928 }
9929 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 +01009930 asdl_arg_seq* a;
9931 asdl_arg_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009932 asdl_seq * c;
9933 void *d;
9934 if (
9935 (a = lambda_slash_no_default_rule(p)) // lambda_slash_no_default
9936 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08009937 (b = (asdl_arg_seq*)_loop0_90_rule(p)) // lambda_param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009938 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08009939 (c = _loop0_91_rule(p)) // lambda_param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009940 &&
9941 (d = lambda_star_etc_rule(p), 1) // lambda_star_etc?
9942 )
9943 {
9944 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?"));
9945 _res = _PyPegen_make_arguments ( p , a , NULL , b , c , d );
9946 if (_res == NULL && PyErr_Occurred()) {
9947 p->error_indicator = 1;
9948 D(p->level--);
9949 return NULL;
9950 }
9951 goto done;
9952 }
9953 p->mark = _mark;
9954 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
9955 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_slash_no_default lambda_param_no_default* lambda_param_with_default* lambda_star_etc?"));
9956 }
9957 { // lambda_slash_with_default lambda_param_with_default* lambda_star_etc?
9958 if (p->error_indicator) {
9959 D(p->level--);
9960 return NULL;
9961 }
9962 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?"));
9963 SlashWithDefault* a;
9964 asdl_seq * b;
9965 void *c;
9966 if (
9967 (a = lambda_slash_with_default_rule(p)) // lambda_slash_with_default
9968 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08009969 (b = _loop0_92_rule(p)) // lambda_param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009970 &&
9971 (c = lambda_star_etc_rule(p), 1) // lambda_star_etc?
9972 )
9973 {
9974 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?"));
9975 _res = _PyPegen_make_arguments ( p , NULL , a , NULL , b , c );
9976 if (_res == NULL && PyErr_Occurred()) {
9977 p->error_indicator = 1;
9978 D(p->level--);
9979 return NULL;
9980 }
9981 goto done;
9982 }
9983 p->mark = _mark;
9984 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
9985 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_slash_with_default lambda_param_with_default* lambda_star_etc?"));
9986 }
9987 { // lambda_param_no_default+ lambda_param_with_default* lambda_star_etc?
9988 if (p->error_indicator) {
9989 D(p->level--);
9990 return NULL;
9991 }
9992 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 +01009993 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009994 asdl_seq * b;
9995 void *c;
9996 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08009997 (a = (asdl_arg_seq*)_loop1_93_rule(p)) // lambda_param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009998 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08009999 (b = _loop0_94_rule(p)) // lambda_param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010000 &&
10001 (c = lambda_star_etc_rule(p), 1) // lambda_star_etc?
10002 )
10003 {
10004 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?"));
10005 _res = _PyPegen_make_arguments ( p , NULL , NULL , a , b , c );
10006 if (_res == NULL && PyErr_Occurred()) {
10007 p->error_indicator = 1;
10008 D(p->level--);
10009 return NULL;
10010 }
10011 goto done;
10012 }
10013 p->mark = _mark;
10014 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
10015 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default+ lambda_param_with_default* lambda_star_etc?"));
10016 }
10017 { // lambda_param_with_default+ lambda_star_etc?
10018 if (p->error_indicator) {
10019 D(p->level--);
10020 return NULL;
10021 }
10022 D(fprintf(stderr, "%*c> lambda_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+ lambda_star_etc?"));
10023 asdl_seq * a;
10024 void *b;
10025 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080010026 (a = _loop1_95_rule(p)) // lambda_param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010027 &&
10028 (b = lambda_star_etc_rule(p), 1) // lambda_star_etc?
10029 )
10030 {
10031 D(fprintf(stderr, "%*c+ lambda_parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+ lambda_star_etc?"));
10032 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , a , b );
10033 if (_res == NULL && PyErr_Occurred()) {
10034 p->error_indicator = 1;
10035 D(p->level--);
10036 return NULL;
10037 }
10038 goto done;
10039 }
10040 p->mark = _mark;
10041 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
10042 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default+ lambda_star_etc?"));
10043 }
10044 { // lambda_star_etc
10045 if (p->error_indicator) {
10046 D(p->level--);
10047 return NULL;
10048 }
10049 D(fprintf(stderr, "%*c> lambda_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_star_etc"));
10050 StarEtc* a;
10051 if (
10052 (a = lambda_star_etc_rule(p)) // lambda_star_etc
10053 )
10054 {
10055 D(fprintf(stderr, "%*c+ lambda_parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_star_etc"));
10056 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , NULL , a );
10057 if (_res == NULL && PyErr_Occurred()) {
10058 p->error_indicator = 1;
10059 D(p->level--);
10060 return NULL;
10061 }
10062 goto done;
10063 }
10064 p->mark = _mark;
10065 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
10066 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_star_etc"));
10067 }
10068 _res = NULL;
10069 done:
10070 D(p->level--);
10071 return _res;
10072}
10073
10074// lambda_slash_no_default:
10075// | lambda_param_no_default+ '/' ','
10076// | lambda_param_no_default+ '/' &':'
Pablo Galindoa5634c42020-09-16 19:42:00 +010010077static asdl_arg_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010078lambda_slash_no_default_rule(Parser *p)
10079{
10080 D(p->level++);
10081 if (p->error_indicator) {
10082 D(p->level--);
10083 return NULL;
10084 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010010085 asdl_arg_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010086 int _mark = p->mark;
10087 { // lambda_param_no_default+ '/' ','
10088 if (p->error_indicator) {
10089 D(p->level--);
10090 return NULL;
10091 }
10092 D(fprintf(stderr, "%*c> lambda_slash_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ '/' ','"));
10093 Token * _literal;
10094 Token * _literal_1;
Pablo Galindoa5634c42020-09-16 19:42:00 +010010095 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010096 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080010097 (a = (asdl_arg_seq*)_loop1_96_rule(p)) // lambda_param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010098 &&
10099 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
10100 &&
10101 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
10102 )
10103 {
10104 D(fprintf(stderr, "%*c+ lambda_slash_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ '/' ','"));
10105 _res = a;
10106 if (_res == NULL && PyErr_Occurred()) {
10107 p->error_indicator = 1;
10108 D(p->level--);
10109 return NULL;
10110 }
10111 goto done;
10112 }
10113 p->mark = _mark;
10114 D(fprintf(stderr, "%*c%s lambda_slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
10115 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default+ '/' ','"));
10116 }
10117 { // lambda_param_no_default+ '/' &':'
10118 if (p->error_indicator) {
10119 D(p->level--);
10120 return NULL;
10121 }
10122 D(fprintf(stderr, "%*c> lambda_slash_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ '/' &':'"));
10123 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +010010124 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010125 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080010126 (a = (asdl_arg_seq*)_loop1_97_rule(p)) // lambda_param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010127 &&
10128 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
10129 &&
10130 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
10131 )
10132 {
10133 D(fprintf(stderr, "%*c+ lambda_slash_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ '/' &':'"));
10134 _res = a;
10135 if (_res == NULL && PyErr_Occurred()) {
10136 p->error_indicator = 1;
10137 D(p->level--);
10138 return NULL;
10139 }
10140 goto done;
10141 }
10142 p->mark = _mark;
10143 D(fprintf(stderr, "%*c%s lambda_slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
10144 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default+ '/' &':'"));
10145 }
10146 _res = NULL;
10147 done:
10148 D(p->level--);
10149 return _res;
10150}
10151
10152// lambda_slash_with_default:
10153// | lambda_param_no_default* lambda_param_with_default+ '/' ','
10154// | lambda_param_no_default* lambda_param_with_default+ '/' &':'
10155static SlashWithDefault*
10156lambda_slash_with_default_rule(Parser *p)
10157{
10158 D(p->level++);
10159 if (p->error_indicator) {
10160 D(p->level--);
10161 return NULL;
10162 }
10163 SlashWithDefault* _res = NULL;
10164 int _mark = p->mark;
10165 { // lambda_param_no_default* lambda_param_with_default+ '/' ','
10166 if (p->error_indicator) {
10167 D(p->level--);
10168 return NULL;
10169 }
10170 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+ '/' ','"));
10171 Token * _literal;
10172 Token * _literal_1;
10173 asdl_seq * a;
10174 asdl_seq * b;
10175 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080010176 (a = _loop0_98_rule(p)) // lambda_param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010177 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080010178 (b = _loop1_99_rule(p)) // lambda_param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010179 &&
10180 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
10181 &&
10182 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
10183 )
10184 {
10185 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 +010010186 _res = _PyPegen_slash_with_default ( p , ( asdl_arg_seq * ) a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010187 if (_res == NULL && PyErr_Occurred()) {
10188 p->error_indicator = 1;
10189 D(p->level--);
10190 return NULL;
10191 }
10192 goto done;
10193 }
10194 p->mark = _mark;
10195 D(fprintf(stderr, "%*c%s lambda_slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
10196 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default* lambda_param_with_default+ '/' ','"));
10197 }
10198 { // lambda_param_no_default* lambda_param_with_default+ '/' &':'
10199 if (p->error_indicator) {
10200 D(p->level--);
10201 return NULL;
10202 }
10203 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+ '/' &':'"));
10204 Token * _literal;
10205 asdl_seq * a;
10206 asdl_seq * b;
10207 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080010208 (a = _loop0_100_rule(p)) // lambda_param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010209 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080010210 (b = _loop1_101_rule(p)) // lambda_param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010211 &&
10212 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
10213 &&
10214 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
10215 )
10216 {
10217 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 +010010218 _res = _PyPegen_slash_with_default ( p , ( asdl_arg_seq * ) a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010219 if (_res == NULL && PyErr_Occurred()) {
10220 p->error_indicator = 1;
10221 D(p->level--);
10222 return NULL;
10223 }
10224 goto done;
10225 }
10226 p->mark = _mark;
10227 D(fprintf(stderr, "%*c%s lambda_slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
10228 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default* lambda_param_with_default+ '/' &':'"));
10229 }
10230 _res = NULL;
10231 done:
10232 D(p->level--);
10233 return _res;
10234}
10235
10236// lambda_star_etc:
10237// | '*' lambda_param_no_default lambda_param_maybe_default* lambda_kwds?
10238// | '*' ',' lambda_param_maybe_default+ lambda_kwds?
10239// | lambda_kwds
10240// | invalid_lambda_star_etc
10241static StarEtc*
10242lambda_star_etc_rule(Parser *p)
10243{
10244 D(p->level++);
10245 if (p->error_indicator) {
10246 D(p->level--);
10247 return NULL;
10248 }
10249 StarEtc* _res = NULL;
10250 int _mark = p->mark;
10251 { // '*' lambda_param_no_default lambda_param_maybe_default* lambda_kwds?
10252 if (p->error_indicator) {
10253 D(p->level--);
10254 return NULL;
10255 }
10256 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?"));
10257 Token * _literal;
10258 arg_ty a;
10259 asdl_seq * b;
10260 void *c;
10261 if (
10262 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
10263 &&
10264 (a = lambda_param_no_default_rule(p)) // lambda_param_no_default
10265 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080010266 (b = _loop0_102_rule(p)) // lambda_param_maybe_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010267 &&
10268 (c = lambda_kwds_rule(p), 1) // lambda_kwds?
10269 )
10270 {
10271 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?"));
10272 _res = _PyPegen_star_etc ( p , a , b , c );
10273 if (_res == NULL && PyErr_Occurred()) {
10274 p->error_indicator = 1;
10275 D(p->level--);
10276 return NULL;
10277 }
10278 goto done;
10279 }
10280 p->mark = _mark;
10281 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
10282 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' lambda_param_no_default lambda_param_maybe_default* lambda_kwds?"));
10283 }
10284 { // '*' ',' lambda_param_maybe_default+ lambda_kwds?
10285 if (p->error_indicator) {
10286 D(p->level--);
10287 return NULL;
10288 }
10289 D(fprintf(stderr, "%*c> lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' ',' lambda_param_maybe_default+ lambda_kwds?"));
10290 Token * _literal;
10291 Token * _literal_1;
10292 asdl_seq * b;
10293 void *c;
10294 if (
10295 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
10296 &&
10297 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
10298 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080010299 (b = _loop1_103_rule(p)) // lambda_param_maybe_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010300 &&
10301 (c = lambda_kwds_rule(p), 1) // lambda_kwds?
10302 )
10303 {
10304 D(fprintf(stderr, "%*c+ lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' ',' lambda_param_maybe_default+ lambda_kwds?"));
10305 _res = _PyPegen_star_etc ( p , NULL , b , c );
10306 if (_res == NULL && PyErr_Occurred()) {
10307 p->error_indicator = 1;
10308 D(p->level--);
10309 return NULL;
10310 }
10311 goto done;
10312 }
10313 p->mark = _mark;
10314 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
10315 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' ',' lambda_param_maybe_default+ lambda_kwds?"));
10316 }
10317 { // lambda_kwds
10318 if (p->error_indicator) {
10319 D(p->level--);
10320 return NULL;
10321 }
10322 D(fprintf(stderr, "%*c> lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_kwds"));
10323 arg_ty a;
10324 if (
10325 (a = lambda_kwds_rule(p)) // lambda_kwds
10326 )
10327 {
10328 D(fprintf(stderr, "%*c+ lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_kwds"));
10329 _res = _PyPegen_star_etc ( p , NULL , NULL , a );
10330 if (_res == NULL && PyErr_Occurred()) {
10331 p->error_indicator = 1;
10332 D(p->level--);
10333 return NULL;
10334 }
10335 goto done;
10336 }
10337 p->mark = _mark;
10338 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
10339 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_kwds"));
10340 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020010341 if (p->call_invalid_rules) { // invalid_lambda_star_etc
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010342 if (p->error_indicator) {
10343 D(p->level--);
10344 return NULL;
10345 }
10346 D(fprintf(stderr, "%*c> lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_lambda_star_etc"));
10347 void *invalid_lambda_star_etc_var;
10348 if (
10349 (invalid_lambda_star_etc_var = invalid_lambda_star_etc_rule(p)) // invalid_lambda_star_etc
10350 )
10351 {
10352 D(fprintf(stderr, "%*c+ lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_lambda_star_etc"));
10353 _res = invalid_lambda_star_etc_var;
10354 goto done;
10355 }
10356 p->mark = _mark;
10357 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
10358 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_lambda_star_etc"));
10359 }
10360 _res = NULL;
10361 done:
10362 D(p->level--);
10363 return _res;
10364}
10365
10366// lambda_kwds: '**' lambda_param_no_default
10367static arg_ty
10368lambda_kwds_rule(Parser *p)
10369{
10370 D(p->level++);
10371 if (p->error_indicator) {
10372 D(p->level--);
10373 return NULL;
10374 }
10375 arg_ty _res = NULL;
10376 int _mark = p->mark;
10377 { // '**' lambda_param_no_default
10378 if (p->error_indicator) {
10379 D(p->level--);
10380 return NULL;
10381 }
10382 D(fprintf(stderr, "%*c> lambda_kwds[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' lambda_param_no_default"));
10383 Token * _literal;
10384 arg_ty a;
10385 if (
10386 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
10387 &&
10388 (a = lambda_param_no_default_rule(p)) // lambda_param_no_default
10389 )
10390 {
10391 D(fprintf(stderr, "%*c+ lambda_kwds[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' lambda_param_no_default"));
10392 _res = a;
10393 if (_res == NULL && PyErr_Occurred()) {
10394 p->error_indicator = 1;
10395 D(p->level--);
10396 return NULL;
10397 }
10398 goto done;
10399 }
10400 p->mark = _mark;
10401 D(fprintf(stderr, "%*c%s lambda_kwds[%d-%d]: %s failed!\n", p->level, ' ',
10402 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' lambda_param_no_default"));
10403 }
10404 _res = NULL;
10405 done:
10406 D(p->level--);
10407 return _res;
10408}
10409
10410// lambda_param_no_default: lambda_param ',' | lambda_param &':'
10411static arg_ty
10412lambda_param_no_default_rule(Parser *p)
10413{
10414 D(p->level++);
10415 if (p->error_indicator) {
10416 D(p->level--);
10417 return NULL;
10418 }
10419 arg_ty _res = NULL;
10420 int _mark = p->mark;
10421 { // lambda_param ','
10422 if (p->error_indicator) {
10423 D(p->level--);
10424 return NULL;
10425 }
10426 D(fprintf(stderr, "%*c> lambda_param_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param ','"));
10427 Token * _literal;
10428 arg_ty a;
10429 if (
10430 (a = lambda_param_rule(p)) // lambda_param
10431 &&
10432 (_literal = _PyPegen_expect_token(p, 12)) // token=','
10433 )
10434 {
10435 D(fprintf(stderr, "%*c+ lambda_param_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param ','"));
10436 _res = a;
10437 if (_res == NULL && PyErr_Occurred()) {
10438 p->error_indicator = 1;
10439 D(p->level--);
10440 return NULL;
10441 }
10442 goto done;
10443 }
10444 p->mark = _mark;
10445 D(fprintf(stderr, "%*c%s lambda_param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
10446 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param ','"));
10447 }
10448 { // lambda_param &':'
10449 if (p->error_indicator) {
10450 D(p->level--);
10451 return NULL;
10452 }
10453 D(fprintf(stderr, "%*c> lambda_param_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param &':'"));
10454 arg_ty a;
10455 if (
10456 (a = lambda_param_rule(p)) // lambda_param
10457 &&
10458 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
10459 )
10460 {
10461 D(fprintf(stderr, "%*c+ lambda_param_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param &':'"));
10462 _res = a;
10463 if (_res == NULL && PyErr_Occurred()) {
10464 p->error_indicator = 1;
10465 D(p->level--);
10466 return NULL;
10467 }
10468 goto done;
10469 }
10470 p->mark = _mark;
10471 D(fprintf(stderr, "%*c%s lambda_param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
10472 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param &':'"));
10473 }
10474 _res = NULL;
10475 done:
10476 D(p->level--);
10477 return _res;
10478}
10479
10480// lambda_param_with_default: lambda_param default ',' | lambda_param default &':'
10481static NameDefaultPair*
10482lambda_param_with_default_rule(Parser *p)
10483{
10484 D(p->level++);
10485 if (p->error_indicator) {
10486 D(p->level--);
10487 return NULL;
10488 }
10489 NameDefaultPair* _res = NULL;
10490 int _mark = p->mark;
10491 { // lambda_param default ','
10492 if (p->error_indicator) {
10493 D(p->level--);
10494 return NULL;
10495 }
10496 D(fprintf(stderr, "%*c> lambda_param_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param default ','"));
10497 Token * _literal;
10498 arg_ty a;
10499 expr_ty c;
10500 if (
10501 (a = lambda_param_rule(p)) // lambda_param
10502 &&
10503 (c = default_rule(p)) // default
10504 &&
10505 (_literal = _PyPegen_expect_token(p, 12)) // token=','
10506 )
10507 {
10508 D(fprintf(stderr, "%*c+ lambda_param_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param default ','"));
10509 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
10510 if (_res == NULL && PyErr_Occurred()) {
10511 p->error_indicator = 1;
10512 D(p->level--);
10513 return NULL;
10514 }
10515 goto done;
10516 }
10517 p->mark = _mark;
10518 D(fprintf(stderr, "%*c%s lambda_param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
10519 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default ','"));
10520 }
10521 { // lambda_param default &':'
10522 if (p->error_indicator) {
10523 D(p->level--);
10524 return NULL;
10525 }
10526 D(fprintf(stderr, "%*c> lambda_param_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param default &':'"));
10527 arg_ty a;
10528 expr_ty c;
10529 if (
10530 (a = lambda_param_rule(p)) // lambda_param
10531 &&
10532 (c = default_rule(p)) // default
10533 &&
10534 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
10535 )
10536 {
10537 D(fprintf(stderr, "%*c+ lambda_param_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param default &':'"));
10538 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
10539 if (_res == NULL && PyErr_Occurred()) {
10540 p->error_indicator = 1;
10541 D(p->level--);
10542 return NULL;
10543 }
10544 goto done;
10545 }
10546 p->mark = _mark;
10547 D(fprintf(stderr, "%*c%s lambda_param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
10548 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default &':'"));
10549 }
10550 _res = NULL;
10551 done:
10552 D(p->level--);
10553 return _res;
10554}
10555
10556// lambda_param_maybe_default: lambda_param default? ',' | lambda_param default? &':'
10557static NameDefaultPair*
10558lambda_param_maybe_default_rule(Parser *p)
10559{
10560 D(p->level++);
10561 if (p->error_indicator) {
10562 D(p->level--);
10563 return NULL;
10564 }
10565 NameDefaultPair* _res = NULL;
10566 int _mark = p->mark;
10567 { // lambda_param default? ','
10568 if (p->error_indicator) {
10569 D(p->level--);
10570 return NULL;
10571 }
10572 D(fprintf(stderr, "%*c> lambda_param_maybe_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param default? ','"));
10573 Token * _literal;
10574 arg_ty a;
10575 void *c;
10576 if (
10577 (a = lambda_param_rule(p)) // lambda_param
10578 &&
10579 (c = default_rule(p), 1) // default?
10580 &&
10581 (_literal = _PyPegen_expect_token(p, 12)) // token=','
10582 )
10583 {
10584 D(fprintf(stderr, "%*c+ lambda_param_maybe_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param default? ','"));
10585 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
10586 if (_res == NULL && PyErr_Occurred()) {
10587 p->error_indicator = 1;
10588 D(p->level--);
10589 return NULL;
10590 }
10591 goto done;
10592 }
10593 p->mark = _mark;
10594 D(fprintf(stderr, "%*c%s lambda_param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
10595 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default? ','"));
10596 }
10597 { // lambda_param default? &':'
10598 if (p->error_indicator) {
10599 D(p->level--);
10600 return NULL;
10601 }
10602 D(fprintf(stderr, "%*c> lambda_param_maybe_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param default? &':'"));
10603 arg_ty a;
10604 void *c;
10605 if (
10606 (a = lambda_param_rule(p)) // lambda_param
10607 &&
10608 (c = default_rule(p), 1) // default?
10609 &&
10610 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
10611 )
10612 {
10613 D(fprintf(stderr, "%*c+ lambda_param_maybe_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param default? &':'"));
10614 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
10615 if (_res == NULL && PyErr_Occurred()) {
10616 p->error_indicator = 1;
10617 D(p->level--);
10618 return NULL;
10619 }
10620 goto done;
10621 }
10622 p->mark = _mark;
10623 D(fprintf(stderr, "%*c%s lambda_param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
10624 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default? &':'"));
10625 }
10626 _res = NULL;
10627 done:
10628 D(p->level--);
10629 return _res;
10630}
10631
10632// lambda_param: NAME
10633static arg_ty
10634lambda_param_rule(Parser *p)
10635{
10636 D(p->level++);
10637 if (p->error_indicator) {
10638 D(p->level--);
10639 return NULL;
10640 }
10641 arg_ty _res = NULL;
10642 int _mark = p->mark;
10643 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10644 p->error_indicator = 1;
10645 D(p->level--);
10646 return NULL;
10647 }
10648 int _start_lineno = p->tokens[_mark]->lineno;
10649 UNUSED(_start_lineno); // Only used by EXTRA macro
10650 int _start_col_offset = p->tokens[_mark]->col_offset;
10651 UNUSED(_start_col_offset); // Only used by EXTRA macro
10652 { // NAME
10653 if (p->error_indicator) {
10654 D(p->level--);
10655 return NULL;
10656 }
10657 D(fprintf(stderr, "%*c> lambda_param[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
10658 expr_ty a;
10659 if (
10660 (a = _PyPegen_name_token(p)) // NAME
10661 )
10662 {
10663 D(fprintf(stderr, "%*c+ lambda_param[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
10664 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10665 if (_token == NULL) {
10666 D(p->level--);
10667 return NULL;
10668 }
10669 int _end_lineno = _token->end_lineno;
10670 UNUSED(_end_lineno); // Only used by EXTRA macro
10671 int _end_col_offset = _token->end_col_offset;
10672 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020010673 _res = _PyAST_arg ( a -> v . Name . id , NULL , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010674 if (_res == NULL && PyErr_Occurred()) {
10675 p->error_indicator = 1;
10676 D(p->level--);
10677 return NULL;
10678 }
10679 goto done;
10680 }
10681 p->mark = _mark;
10682 D(fprintf(stderr, "%*c%s lambda_param[%d-%d]: %s failed!\n", p->level, ' ',
10683 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
10684 }
10685 _res = NULL;
10686 done:
10687 D(p->level--);
10688 return _res;
10689}
10690
10691// disjunction: conjunction (('or' conjunction))+ | conjunction
10692static expr_ty
10693disjunction_rule(Parser *p)
10694{
10695 D(p->level++);
10696 if (p->error_indicator) {
10697 D(p->level--);
10698 return NULL;
10699 }
10700 expr_ty _res = NULL;
10701 if (_PyPegen_is_memoized(p, disjunction_type, &_res)) {
10702 D(p->level--);
10703 return _res;
10704 }
10705 int _mark = p->mark;
10706 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10707 p->error_indicator = 1;
10708 D(p->level--);
10709 return NULL;
10710 }
10711 int _start_lineno = p->tokens[_mark]->lineno;
10712 UNUSED(_start_lineno); // Only used by EXTRA macro
10713 int _start_col_offset = p->tokens[_mark]->col_offset;
10714 UNUSED(_start_col_offset); // Only used by EXTRA macro
10715 { // conjunction (('or' conjunction))+
10716 if (p->error_indicator) {
10717 D(p->level--);
10718 return NULL;
10719 }
10720 D(fprintf(stderr, "%*c> disjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "conjunction (('or' conjunction))+"));
10721 expr_ty a;
10722 asdl_seq * b;
10723 if (
10724 (a = conjunction_rule(p)) // conjunction
10725 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080010726 (b = _loop1_104_rule(p)) // (('or' conjunction))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010727 )
10728 {
10729 D(fprintf(stderr, "%*c+ disjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "conjunction (('or' conjunction))+"));
10730 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10731 if (_token == NULL) {
10732 D(p->level--);
10733 return NULL;
10734 }
10735 int _end_lineno = _token->end_lineno;
10736 UNUSED(_end_lineno); // Only used by EXTRA macro
10737 int _end_col_offset = _token->end_col_offset;
10738 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020010739 _res = _PyAST_BoolOp ( Or , CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , a , b ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010740 if (_res == NULL && PyErr_Occurred()) {
10741 p->error_indicator = 1;
10742 D(p->level--);
10743 return NULL;
10744 }
10745 goto done;
10746 }
10747 p->mark = _mark;
10748 D(fprintf(stderr, "%*c%s disjunction[%d-%d]: %s failed!\n", p->level, ' ',
10749 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "conjunction (('or' conjunction))+"));
10750 }
10751 { // conjunction
10752 if (p->error_indicator) {
10753 D(p->level--);
10754 return NULL;
10755 }
10756 D(fprintf(stderr, "%*c> disjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "conjunction"));
10757 expr_ty conjunction_var;
10758 if (
10759 (conjunction_var = conjunction_rule(p)) // conjunction
10760 )
10761 {
10762 D(fprintf(stderr, "%*c+ disjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "conjunction"));
10763 _res = conjunction_var;
10764 goto done;
10765 }
10766 p->mark = _mark;
10767 D(fprintf(stderr, "%*c%s disjunction[%d-%d]: %s failed!\n", p->level, ' ',
10768 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "conjunction"));
10769 }
10770 _res = NULL;
10771 done:
10772 _PyPegen_insert_memo(p, _mark, disjunction_type, _res);
10773 D(p->level--);
10774 return _res;
10775}
10776
10777// conjunction: inversion (('and' inversion))+ | inversion
10778static expr_ty
10779conjunction_rule(Parser *p)
10780{
10781 D(p->level++);
10782 if (p->error_indicator) {
10783 D(p->level--);
10784 return NULL;
10785 }
10786 expr_ty _res = NULL;
10787 if (_PyPegen_is_memoized(p, conjunction_type, &_res)) {
10788 D(p->level--);
10789 return _res;
10790 }
10791 int _mark = p->mark;
10792 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10793 p->error_indicator = 1;
10794 D(p->level--);
10795 return NULL;
10796 }
10797 int _start_lineno = p->tokens[_mark]->lineno;
10798 UNUSED(_start_lineno); // Only used by EXTRA macro
10799 int _start_col_offset = p->tokens[_mark]->col_offset;
10800 UNUSED(_start_col_offset); // Only used by EXTRA macro
10801 { // inversion (('and' inversion))+
10802 if (p->error_indicator) {
10803 D(p->level--);
10804 return NULL;
10805 }
10806 D(fprintf(stderr, "%*c> conjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "inversion (('and' inversion))+"));
10807 expr_ty a;
10808 asdl_seq * b;
10809 if (
10810 (a = inversion_rule(p)) // inversion
10811 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080010812 (b = _loop1_105_rule(p)) // (('and' inversion))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010813 )
10814 {
10815 D(fprintf(stderr, "%*c+ conjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "inversion (('and' inversion))+"));
10816 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10817 if (_token == NULL) {
10818 D(p->level--);
10819 return NULL;
10820 }
10821 int _end_lineno = _token->end_lineno;
10822 UNUSED(_end_lineno); // Only used by EXTRA macro
10823 int _end_col_offset = _token->end_col_offset;
10824 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020010825 _res = _PyAST_BoolOp ( And , CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , a , b ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010826 if (_res == NULL && PyErr_Occurred()) {
10827 p->error_indicator = 1;
10828 D(p->level--);
10829 return NULL;
10830 }
10831 goto done;
10832 }
10833 p->mark = _mark;
10834 D(fprintf(stderr, "%*c%s conjunction[%d-%d]: %s failed!\n", p->level, ' ',
10835 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "inversion (('and' inversion))+"));
10836 }
10837 { // inversion
10838 if (p->error_indicator) {
10839 D(p->level--);
10840 return NULL;
10841 }
10842 D(fprintf(stderr, "%*c> conjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "inversion"));
10843 expr_ty inversion_var;
10844 if (
10845 (inversion_var = inversion_rule(p)) // inversion
10846 )
10847 {
10848 D(fprintf(stderr, "%*c+ conjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "inversion"));
10849 _res = inversion_var;
10850 goto done;
10851 }
10852 p->mark = _mark;
10853 D(fprintf(stderr, "%*c%s conjunction[%d-%d]: %s failed!\n", p->level, ' ',
10854 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "inversion"));
10855 }
10856 _res = NULL;
10857 done:
10858 _PyPegen_insert_memo(p, _mark, conjunction_type, _res);
10859 D(p->level--);
10860 return _res;
10861}
10862
10863// inversion: 'not' inversion | comparison
10864static expr_ty
10865inversion_rule(Parser *p)
10866{
10867 D(p->level++);
10868 if (p->error_indicator) {
10869 D(p->level--);
10870 return NULL;
10871 }
10872 expr_ty _res = NULL;
10873 if (_PyPegen_is_memoized(p, inversion_type, &_res)) {
10874 D(p->level--);
10875 return _res;
10876 }
10877 int _mark = p->mark;
10878 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10879 p->error_indicator = 1;
10880 D(p->level--);
10881 return NULL;
10882 }
10883 int _start_lineno = p->tokens[_mark]->lineno;
10884 UNUSED(_start_lineno); // Only used by EXTRA macro
10885 int _start_col_offset = p->tokens[_mark]->col_offset;
10886 UNUSED(_start_col_offset); // Only used by EXTRA macro
10887 { // 'not' inversion
10888 if (p->error_indicator) {
10889 D(p->level--);
10890 return NULL;
10891 }
10892 D(fprintf(stderr, "%*c> inversion[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'not' inversion"));
10893 Token * _keyword;
10894 expr_ty a;
10895 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080010896 (_keyword = _PyPegen_expect_token(p, 529)) // token='not'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010897 &&
10898 (a = inversion_rule(p)) // inversion
10899 )
10900 {
10901 D(fprintf(stderr, "%*c+ inversion[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'not' inversion"));
10902 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10903 if (_token == NULL) {
10904 D(p->level--);
10905 return NULL;
10906 }
10907 int _end_lineno = _token->end_lineno;
10908 UNUSED(_end_lineno); // Only used by EXTRA macro
10909 int _end_col_offset = _token->end_col_offset;
10910 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020010911 _res = _PyAST_UnaryOp ( Not , a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010912 if (_res == NULL && PyErr_Occurred()) {
10913 p->error_indicator = 1;
10914 D(p->level--);
10915 return NULL;
10916 }
10917 goto done;
10918 }
10919 p->mark = _mark;
10920 D(fprintf(stderr, "%*c%s inversion[%d-%d]: %s failed!\n", p->level, ' ',
10921 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'not' inversion"));
10922 }
10923 { // comparison
10924 if (p->error_indicator) {
10925 D(p->level--);
10926 return NULL;
10927 }
10928 D(fprintf(stderr, "%*c> inversion[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "comparison"));
10929 expr_ty comparison_var;
10930 if (
10931 (comparison_var = comparison_rule(p)) // comparison
10932 )
10933 {
10934 D(fprintf(stderr, "%*c+ inversion[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "comparison"));
10935 _res = comparison_var;
10936 goto done;
10937 }
10938 p->mark = _mark;
10939 D(fprintf(stderr, "%*c%s inversion[%d-%d]: %s failed!\n", p->level, ' ',
10940 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "comparison"));
10941 }
10942 _res = NULL;
10943 done:
10944 _PyPegen_insert_memo(p, _mark, inversion_type, _res);
10945 D(p->level--);
10946 return _res;
10947}
10948
10949// comparison: bitwise_or compare_op_bitwise_or_pair+ | bitwise_or
10950static expr_ty
10951comparison_rule(Parser *p)
10952{
10953 D(p->level++);
10954 if (p->error_indicator) {
10955 D(p->level--);
10956 return NULL;
10957 }
10958 expr_ty _res = NULL;
10959 int _mark = p->mark;
10960 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10961 p->error_indicator = 1;
10962 D(p->level--);
10963 return NULL;
10964 }
10965 int _start_lineno = p->tokens[_mark]->lineno;
10966 UNUSED(_start_lineno); // Only used by EXTRA macro
10967 int _start_col_offset = p->tokens[_mark]->col_offset;
10968 UNUSED(_start_col_offset); // Only used by EXTRA macro
10969 { // bitwise_or compare_op_bitwise_or_pair+
10970 if (p->error_indicator) {
10971 D(p->level--);
10972 return NULL;
10973 }
10974 D(fprintf(stderr, "%*c> comparison[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_or compare_op_bitwise_or_pair+"));
10975 expr_ty a;
10976 asdl_seq * b;
10977 if (
10978 (a = bitwise_or_rule(p)) // bitwise_or
10979 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080010980 (b = _loop1_106_rule(p)) // compare_op_bitwise_or_pair+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010981 )
10982 {
10983 D(fprintf(stderr, "%*c+ comparison[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_or compare_op_bitwise_or_pair+"));
10984 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10985 if (_token == NULL) {
10986 D(p->level--);
10987 return NULL;
10988 }
10989 int _end_lineno = _token->end_lineno;
10990 UNUSED(_end_lineno); // Only used by EXTRA macro
10991 int _end_col_offset = _token->end_col_offset;
10992 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020010993 _res = _PyAST_Compare ( a , CHECK ( asdl_int_seq * , _PyPegen_get_cmpops ( p , b ) ) , CHECK ( asdl_expr_seq * , _PyPegen_get_exprs ( p , b ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010994 if (_res == NULL && PyErr_Occurred()) {
10995 p->error_indicator = 1;
10996 D(p->level--);
10997 return NULL;
10998 }
10999 goto done;
11000 }
11001 p->mark = _mark;
11002 D(fprintf(stderr, "%*c%s comparison[%d-%d]: %s failed!\n", p->level, ' ',
11003 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_or compare_op_bitwise_or_pair+"));
11004 }
11005 { // bitwise_or
11006 if (p->error_indicator) {
11007 D(p->level--);
11008 return NULL;
11009 }
11010 D(fprintf(stderr, "%*c> comparison[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_or"));
11011 expr_ty bitwise_or_var;
11012 if (
11013 (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or
11014 )
11015 {
11016 D(fprintf(stderr, "%*c+ comparison[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_or"));
11017 _res = bitwise_or_var;
11018 goto done;
11019 }
11020 p->mark = _mark;
11021 D(fprintf(stderr, "%*c%s comparison[%d-%d]: %s failed!\n", p->level, ' ',
11022 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_or"));
11023 }
11024 _res = NULL;
11025 done:
11026 D(p->level--);
11027 return _res;
11028}
11029
11030// compare_op_bitwise_or_pair:
11031// | eq_bitwise_or
11032// | noteq_bitwise_or
11033// | lte_bitwise_or
11034// | lt_bitwise_or
11035// | gte_bitwise_or
11036// | gt_bitwise_or
11037// | notin_bitwise_or
11038// | in_bitwise_or
11039// | isnot_bitwise_or
11040// | is_bitwise_or
11041static CmpopExprPair*
11042compare_op_bitwise_or_pair_rule(Parser *p)
11043{
11044 D(p->level++);
11045 if (p->error_indicator) {
11046 D(p->level--);
11047 return NULL;
11048 }
11049 CmpopExprPair* _res = NULL;
11050 int _mark = p->mark;
11051 { // eq_bitwise_or
11052 if (p->error_indicator) {
11053 D(p->level--);
11054 return NULL;
11055 }
11056 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "eq_bitwise_or"));
11057 CmpopExprPair* eq_bitwise_or_var;
11058 if (
11059 (eq_bitwise_or_var = eq_bitwise_or_rule(p)) // eq_bitwise_or
11060 )
11061 {
11062 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "eq_bitwise_or"));
11063 _res = eq_bitwise_or_var;
11064 goto done;
11065 }
11066 p->mark = _mark;
11067 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
11068 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "eq_bitwise_or"));
11069 }
11070 { // noteq_bitwise_or
11071 if (p->error_indicator) {
11072 D(p->level--);
11073 return NULL;
11074 }
11075 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "noteq_bitwise_or"));
11076 CmpopExprPair* noteq_bitwise_or_var;
11077 if (
11078 (noteq_bitwise_or_var = noteq_bitwise_or_rule(p)) // noteq_bitwise_or
11079 )
11080 {
11081 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "noteq_bitwise_or"));
11082 _res = noteq_bitwise_or_var;
11083 goto done;
11084 }
11085 p->mark = _mark;
11086 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
11087 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "noteq_bitwise_or"));
11088 }
11089 { // lte_bitwise_or
11090 if (p->error_indicator) {
11091 D(p->level--);
11092 return NULL;
11093 }
11094 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lte_bitwise_or"));
11095 CmpopExprPair* lte_bitwise_or_var;
11096 if (
11097 (lte_bitwise_or_var = lte_bitwise_or_rule(p)) // lte_bitwise_or
11098 )
11099 {
11100 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lte_bitwise_or"));
11101 _res = lte_bitwise_or_var;
11102 goto done;
11103 }
11104 p->mark = _mark;
11105 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
11106 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lte_bitwise_or"));
11107 }
11108 { // lt_bitwise_or
11109 if (p->error_indicator) {
11110 D(p->level--);
11111 return NULL;
11112 }
11113 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lt_bitwise_or"));
11114 CmpopExprPair* lt_bitwise_or_var;
11115 if (
11116 (lt_bitwise_or_var = lt_bitwise_or_rule(p)) // lt_bitwise_or
11117 )
11118 {
11119 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lt_bitwise_or"));
11120 _res = lt_bitwise_or_var;
11121 goto done;
11122 }
11123 p->mark = _mark;
11124 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
11125 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lt_bitwise_or"));
11126 }
11127 { // gte_bitwise_or
11128 if (p->error_indicator) {
11129 D(p->level--);
11130 return NULL;
11131 }
11132 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "gte_bitwise_or"));
11133 CmpopExprPair* gte_bitwise_or_var;
11134 if (
11135 (gte_bitwise_or_var = gte_bitwise_or_rule(p)) // gte_bitwise_or
11136 )
11137 {
11138 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "gte_bitwise_or"));
11139 _res = gte_bitwise_or_var;
11140 goto done;
11141 }
11142 p->mark = _mark;
11143 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
11144 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "gte_bitwise_or"));
11145 }
11146 { // gt_bitwise_or
11147 if (p->error_indicator) {
11148 D(p->level--);
11149 return NULL;
11150 }
11151 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "gt_bitwise_or"));
11152 CmpopExprPair* gt_bitwise_or_var;
11153 if (
11154 (gt_bitwise_or_var = gt_bitwise_or_rule(p)) // gt_bitwise_or
11155 )
11156 {
11157 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "gt_bitwise_or"));
11158 _res = gt_bitwise_or_var;
11159 goto done;
11160 }
11161 p->mark = _mark;
11162 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
11163 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "gt_bitwise_or"));
11164 }
11165 { // notin_bitwise_or
11166 if (p->error_indicator) {
11167 D(p->level--);
11168 return NULL;
11169 }
11170 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "notin_bitwise_or"));
11171 CmpopExprPair* notin_bitwise_or_var;
11172 if (
11173 (notin_bitwise_or_var = notin_bitwise_or_rule(p)) // notin_bitwise_or
11174 )
11175 {
11176 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "notin_bitwise_or"));
11177 _res = notin_bitwise_or_var;
11178 goto done;
11179 }
11180 p->mark = _mark;
11181 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
11182 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "notin_bitwise_or"));
11183 }
11184 { // in_bitwise_or
11185 if (p->error_indicator) {
11186 D(p->level--);
11187 return NULL;
11188 }
11189 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "in_bitwise_or"));
11190 CmpopExprPair* in_bitwise_or_var;
11191 if (
11192 (in_bitwise_or_var = in_bitwise_or_rule(p)) // in_bitwise_or
11193 )
11194 {
11195 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "in_bitwise_or"));
11196 _res = in_bitwise_or_var;
11197 goto done;
11198 }
11199 p->mark = _mark;
11200 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
11201 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "in_bitwise_or"));
11202 }
11203 { // isnot_bitwise_or
11204 if (p->error_indicator) {
11205 D(p->level--);
11206 return NULL;
11207 }
11208 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "isnot_bitwise_or"));
11209 CmpopExprPair* isnot_bitwise_or_var;
11210 if (
11211 (isnot_bitwise_or_var = isnot_bitwise_or_rule(p)) // isnot_bitwise_or
11212 )
11213 {
11214 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "isnot_bitwise_or"));
11215 _res = isnot_bitwise_or_var;
11216 goto done;
11217 }
11218 p->mark = _mark;
11219 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
11220 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "isnot_bitwise_or"));
11221 }
11222 { // is_bitwise_or
11223 if (p->error_indicator) {
11224 D(p->level--);
11225 return NULL;
11226 }
11227 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "is_bitwise_or"));
11228 CmpopExprPair* is_bitwise_or_var;
11229 if (
11230 (is_bitwise_or_var = is_bitwise_or_rule(p)) // is_bitwise_or
11231 )
11232 {
11233 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "is_bitwise_or"));
11234 _res = is_bitwise_or_var;
11235 goto done;
11236 }
11237 p->mark = _mark;
11238 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
11239 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "is_bitwise_or"));
11240 }
11241 _res = NULL;
11242 done:
11243 D(p->level--);
11244 return _res;
11245}
11246
11247// eq_bitwise_or: '==' bitwise_or
11248static CmpopExprPair*
11249eq_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> eq_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, 27)) // token='=='
11268 &&
11269 (a = bitwise_or_rule(p)) // bitwise_or
11270 )
11271 {
11272 D(fprintf(stderr, "%*c+ eq_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'==' bitwise_or"));
11273 _res = _PyPegen_cmpop_expr_pair ( p , Eq , 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 eq_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// noteq_bitwise_or: ('!=') bitwise_or
11292static CmpopExprPair*
11293noteq_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 { // ('!=') bitwise_or
11303 if (p->error_indicator) {
11304 D(p->level--);
11305 return NULL;
11306 }
11307 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 -080011308 void *_tmp_107_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011309 expr_ty a;
11310 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080011311 (_tmp_107_var = _tmp_107_rule(p)) // '!='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011312 &&
11313 (a = bitwise_or_rule(p)) // bitwise_or
11314 )
11315 {
11316 D(fprintf(stderr, "%*c+ noteq_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "('!=') bitwise_or"));
11317 _res = _PyPegen_cmpop_expr_pair ( p , NotEq , a );
11318 if (_res == NULL && PyErr_Occurred()) {
11319 p->error_indicator = 1;
11320 D(p->level--);
11321 return NULL;
11322 }
11323 goto done;
11324 }
11325 p->mark = _mark;
11326 D(fprintf(stderr, "%*c%s noteq_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
11327 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('!=') bitwise_or"));
11328 }
11329 _res = NULL;
11330 done:
11331 D(p->level--);
11332 return _res;
11333}
11334
11335// lte_bitwise_or: '<=' bitwise_or
11336static CmpopExprPair*
11337lte_bitwise_or_rule(Parser *p)
11338{
11339 D(p->level++);
11340 if (p->error_indicator) {
11341 D(p->level--);
11342 return NULL;
11343 }
11344 CmpopExprPair* _res = NULL;
11345 int _mark = p->mark;
11346 { // '<=' bitwise_or
11347 if (p->error_indicator) {
11348 D(p->level--);
11349 return NULL;
11350 }
11351 D(fprintf(stderr, "%*c> lte_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'<=' bitwise_or"));
11352 Token * _literal;
11353 expr_ty a;
11354 if (
11355 (_literal = _PyPegen_expect_token(p, 29)) // token='<='
11356 &&
11357 (a = bitwise_or_rule(p)) // bitwise_or
11358 )
11359 {
11360 D(fprintf(stderr, "%*c+ lte_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'<=' bitwise_or"));
11361 _res = _PyPegen_cmpop_expr_pair ( p , LtE , a );
11362 if (_res == NULL && PyErr_Occurred()) {
11363 p->error_indicator = 1;
11364 D(p->level--);
11365 return NULL;
11366 }
11367 goto done;
11368 }
11369 p->mark = _mark;
11370 D(fprintf(stderr, "%*c%s lte_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
11371 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'<=' bitwise_or"));
11372 }
11373 _res = NULL;
11374 done:
11375 D(p->level--);
11376 return _res;
11377}
11378
11379// lt_bitwise_or: '<' bitwise_or
11380static CmpopExprPair*
11381lt_bitwise_or_rule(Parser *p)
11382{
11383 D(p->level++);
11384 if (p->error_indicator) {
11385 D(p->level--);
11386 return NULL;
11387 }
11388 CmpopExprPair* _res = NULL;
11389 int _mark = p->mark;
11390 { // '<' bitwise_or
11391 if (p->error_indicator) {
11392 D(p->level--);
11393 return NULL;
11394 }
11395 D(fprintf(stderr, "%*c> lt_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'<' bitwise_or"));
11396 Token * _literal;
11397 expr_ty a;
11398 if (
11399 (_literal = _PyPegen_expect_token(p, 20)) // token='<'
11400 &&
11401 (a = bitwise_or_rule(p)) // bitwise_or
11402 )
11403 {
11404 D(fprintf(stderr, "%*c+ lt_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'<' bitwise_or"));
11405 _res = _PyPegen_cmpop_expr_pair ( p , Lt , a );
11406 if (_res == NULL && PyErr_Occurred()) {
11407 p->error_indicator = 1;
11408 D(p->level--);
11409 return NULL;
11410 }
11411 goto done;
11412 }
11413 p->mark = _mark;
11414 D(fprintf(stderr, "%*c%s lt_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
11415 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'<' bitwise_or"));
11416 }
11417 _res = NULL;
11418 done:
11419 D(p->level--);
11420 return _res;
11421}
11422
11423// gte_bitwise_or: '>=' bitwise_or
11424static CmpopExprPair*
11425gte_bitwise_or_rule(Parser *p)
11426{
11427 D(p->level++);
11428 if (p->error_indicator) {
11429 D(p->level--);
11430 return NULL;
11431 }
11432 CmpopExprPair* _res = NULL;
11433 int _mark = p->mark;
11434 { // '>=' bitwise_or
11435 if (p->error_indicator) {
11436 D(p->level--);
11437 return NULL;
11438 }
11439 D(fprintf(stderr, "%*c> gte_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'>=' bitwise_or"));
11440 Token * _literal;
11441 expr_ty a;
11442 if (
11443 (_literal = _PyPegen_expect_token(p, 30)) // token='>='
11444 &&
11445 (a = bitwise_or_rule(p)) // bitwise_or
11446 )
11447 {
11448 D(fprintf(stderr, "%*c+ gte_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'>=' bitwise_or"));
11449 _res = _PyPegen_cmpop_expr_pair ( p , GtE , a );
11450 if (_res == NULL && PyErr_Occurred()) {
11451 p->error_indicator = 1;
11452 D(p->level--);
11453 return NULL;
11454 }
11455 goto done;
11456 }
11457 p->mark = _mark;
11458 D(fprintf(stderr, "%*c%s gte_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
11459 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'>=' bitwise_or"));
11460 }
11461 _res = NULL;
11462 done:
11463 D(p->level--);
11464 return _res;
11465}
11466
11467// gt_bitwise_or: '>' bitwise_or
11468static CmpopExprPair*
11469gt_bitwise_or_rule(Parser *p)
11470{
11471 D(p->level++);
11472 if (p->error_indicator) {
11473 D(p->level--);
11474 return NULL;
11475 }
11476 CmpopExprPair* _res = NULL;
11477 int _mark = p->mark;
11478 { // '>' bitwise_or
11479 if (p->error_indicator) {
11480 D(p->level--);
11481 return NULL;
11482 }
11483 D(fprintf(stderr, "%*c> gt_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'>' bitwise_or"));
11484 Token * _literal;
11485 expr_ty a;
11486 if (
11487 (_literal = _PyPegen_expect_token(p, 21)) // token='>'
11488 &&
11489 (a = bitwise_or_rule(p)) // bitwise_or
11490 )
11491 {
11492 D(fprintf(stderr, "%*c+ gt_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'>' bitwise_or"));
11493 _res = _PyPegen_cmpop_expr_pair ( p , Gt , a );
11494 if (_res == NULL && PyErr_Occurred()) {
11495 p->error_indicator = 1;
11496 D(p->level--);
11497 return NULL;
11498 }
11499 goto done;
11500 }
11501 p->mark = _mark;
11502 D(fprintf(stderr, "%*c%s gt_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
11503 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'>' bitwise_or"));
11504 }
11505 _res = NULL;
11506 done:
11507 D(p->level--);
11508 return _res;
11509}
11510
11511// notin_bitwise_or: 'not' 'in' bitwise_or
11512static CmpopExprPair*
11513notin_bitwise_or_rule(Parser *p)
11514{
11515 D(p->level++);
11516 if (p->error_indicator) {
11517 D(p->level--);
11518 return NULL;
11519 }
11520 CmpopExprPair* _res = NULL;
11521 int _mark = p->mark;
11522 { // 'not' 'in' bitwise_or
11523 if (p->error_indicator) {
11524 D(p->level--);
11525 return NULL;
11526 }
11527 D(fprintf(stderr, "%*c> notin_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'not' 'in' bitwise_or"));
11528 Token * _keyword;
11529 Token * _keyword_1;
11530 expr_ty a;
11531 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080011532 (_keyword = _PyPegen_expect_token(p, 529)) // token='not'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011533 &&
11534 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
11535 &&
11536 (a = bitwise_or_rule(p)) // bitwise_or
11537 )
11538 {
11539 D(fprintf(stderr, "%*c+ notin_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'not' 'in' bitwise_or"));
11540 _res = _PyPegen_cmpop_expr_pair ( p , NotIn , a );
11541 if (_res == NULL && PyErr_Occurred()) {
11542 p->error_indicator = 1;
11543 D(p->level--);
11544 return NULL;
11545 }
11546 goto done;
11547 }
11548 p->mark = _mark;
11549 D(fprintf(stderr, "%*c%s notin_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
11550 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'not' 'in' bitwise_or"));
11551 }
11552 _res = NULL;
11553 done:
11554 D(p->level--);
11555 return _res;
11556}
11557
11558// in_bitwise_or: 'in' bitwise_or
11559static CmpopExprPair*
11560in_bitwise_or_rule(Parser *p)
11561{
11562 D(p->level++);
11563 if (p->error_indicator) {
11564 D(p->level--);
11565 return NULL;
11566 }
11567 CmpopExprPair* _res = NULL;
11568 int _mark = p->mark;
11569 { // 'in' bitwise_or
11570 if (p->error_indicator) {
11571 D(p->level--);
11572 return NULL;
11573 }
11574 D(fprintf(stderr, "%*c> in_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'in' bitwise_or"));
11575 Token * _keyword;
11576 expr_ty a;
11577 if (
11578 (_keyword = _PyPegen_expect_token(p, 518)) // token='in'
11579 &&
11580 (a = bitwise_or_rule(p)) // bitwise_or
11581 )
11582 {
11583 D(fprintf(stderr, "%*c+ in_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'in' bitwise_or"));
11584 _res = _PyPegen_cmpop_expr_pair ( p , In , a );
11585 if (_res == NULL && PyErr_Occurred()) {
11586 p->error_indicator = 1;
11587 D(p->level--);
11588 return NULL;
11589 }
11590 goto done;
11591 }
11592 p->mark = _mark;
11593 D(fprintf(stderr, "%*c%s in_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
11594 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'in' bitwise_or"));
11595 }
11596 _res = NULL;
11597 done:
11598 D(p->level--);
11599 return _res;
11600}
11601
11602// isnot_bitwise_or: 'is' 'not' bitwise_or
11603static CmpopExprPair*
11604isnot_bitwise_or_rule(Parser *p)
11605{
11606 D(p->level++);
11607 if (p->error_indicator) {
11608 D(p->level--);
11609 return NULL;
11610 }
11611 CmpopExprPair* _res = NULL;
11612 int _mark = p->mark;
11613 { // 'is' 'not' bitwise_or
11614 if (p->error_indicator) {
11615 D(p->level--);
11616 return NULL;
11617 }
11618 D(fprintf(stderr, "%*c> isnot_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'is' 'not' bitwise_or"));
11619 Token * _keyword;
11620 Token * _keyword_1;
11621 expr_ty a;
11622 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080011623 (_keyword = _PyPegen_expect_token(p, 530)) // token='is'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011624 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080011625 (_keyword_1 = _PyPegen_expect_token(p, 529)) // token='not'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011626 &&
11627 (a = bitwise_or_rule(p)) // bitwise_or
11628 )
11629 {
11630 D(fprintf(stderr, "%*c+ isnot_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'is' 'not' bitwise_or"));
11631 _res = _PyPegen_cmpop_expr_pair ( p , IsNot , a );
11632 if (_res == NULL && PyErr_Occurred()) {
11633 p->error_indicator = 1;
11634 D(p->level--);
11635 return NULL;
11636 }
11637 goto done;
11638 }
11639 p->mark = _mark;
11640 D(fprintf(stderr, "%*c%s isnot_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
11641 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'is' 'not' bitwise_or"));
11642 }
11643 _res = NULL;
11644 done:
11645 D(p->level--);
11646 return _res;
11647}
11648
11649// is_bitwise_or: 'is' bitwise_or
11650static CmpopExprPair*
11651is_bitwise_or_rule(Parser *p)
11652{
11653 D(p->level++);
11654 if (p->error_indicator) {
11655 D(p->level--);
11656 return NULL;
11657 }
11658 CmpopExprPair* _res = NULL;
11659 int _mark = p->mark;
11660 { // 'is' bitwise_or
11661 if (p->error_indicator) {
11662 D(p->level--);
11663 return NULL;
11664 }
11665 D(fprintf(stderr, "%*c> is_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'is' bitwise_or"));
11666 Token * _keyword;
11667 expr_ty a;
11668 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080011669 (_keyword = _PyPegen_expect_token(p, 530)) // token='is'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011670 &&
11671 (a = bitwise_or_rule(p)) // bitwise_or
11672 )
11673 {
11674 D(fprintf(stderr, "%*c+ is_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'is' bitwise_or"));
11675 _res = _PyPegen_cmpop_expr_pair ( p , Is , a );
11676 if (_res == NULL && PyErr_Occurred()) {
11677 p->error_indicator = 1;
11678 D(p->level--);
11679 return NULL;
11680 }
11681 goto done;
11682 }
11683 p->mark = _mark;
11684 D(fprintf(stderr, "%*c%s is_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
11685 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'is' bitwise_or"));
11686 }
11687 _res = NULL;
11688 done:
11689 D(p->level--);
11690 return _res;
11691}
11692
11693// Left-recursive
11694// bitwise_or: bitwise_or '|' bitwise_xor | bitwise_xor
11695static expr_ty bitwise_or_raw(Parser *);
11696static expr_ty
11697bitwise_or_rule(Parser *p)
11698{
11699 D(p->level++);
11700 expr_ty _res = NULL;
11701 if (_PyPegen_is_memoized(p, bitwise_or_type, &_res)) {
11702 D(p->level--);
11703 return _res;
11704 }
11705 int _mark = p->mark;
11706 int _resmark = p->mark;
11707 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080011708 int tmpvar_2 = _PyPegen_update_memo(p, _mark, bitwise_or_type, _res);
11709 if (tmpvar_2) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011710 D(p->level--);
11711 return _res;
11712 }
11713 p->mark = _mark;
11714 void *_raw = bitwise_or_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020011715 if (p->error_indicator)
11716 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011717 if (_raw == NULL || p->mark <= _resmark)
11718 break;
11719 _resmark = p->mark;
11720 _res = _raw;
11721 }
11722 p->mark = _resmark;
11723 D(p->level--);
11724 return _res;
11725}
11726static expr_ty
11727bitwise_or_raw(Parser *p)
11728{
11729 D(p->level++);
11730 if (p->error_indicator) {
11731 D(p->level--);
11732 return NULL;
11733 }
11734 expr_ty _res = NULL;
11735 int _mark = p->mark;
11736 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11737 p->error_indicator = 1;
11738 D(p->level--);
11739 return NULL;
11740 }
11741 int _start_lineno = p->tokens[_mark]->lineno;
11742 UNUSED(_start_lineno); // Only used by EXTRA macro
11743 int _start_col_offset = p->tokens[_mark]->col_offset;
11744 UNUSED(_start_col_offset); // Only used by EXTRA macro
11745 { // bitwise_or '|' bitwise_xor
11746 if (p->error_indicator) {
11747 D(p->level--);
11748 return NULL;
11749 }
11750 D(fprintf(stderr, "%*c> bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_or '|' bitwise_xor"));
11751 Token * _literal;
11752 expr_ty a;
11753 expr_ty b;
11754 if (
11755 (a = bitwise_or_rule(p)) // bitwise_or
11756 &&
11757 (_literal = _PyPegen_expect_token(p, 18)) // token='|'
11758 &&
11759 (b = bitwise_xor_rule(p)) // bitwise_xor
11760 )
11761 {
11762 D(fprintf(stderr, "%*c+ bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_or '|' bitwise_xor"));
11763 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11764 if (_token == NULL) {
11765 D(p->level--);
11766 return NULL;
11767 }
11768 int _end_lineno = _token->end_lineno;
11769 UNUSED(_end_lineno); // Only used by EXTRA macro
11770 int _end_col_offset = _token->end_col_offset;
11771 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020011772 _res = _PyAST_BinOp ( a , BitOr , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011773 if (_res == NULL && PyErr_Occurred()) {
11774 p->error_indicator = 1;
11775 D(p->level--);
11776 return NULL;
11777 }
11778 goto done;
11779 }
11780 p->mark = _mark;
11781 D(fprintf(stderr, "%*c%s bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
11782 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_or '|' bitwise_xor"));
11783 }
11784 { // bitwise_xor
11785 if (p->error_indicator) {
11786 D(p->level--);
11787 return NULL;
11788 }
11789 D(fprintf(stderr, "%*c> bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_xor"));
11790 expr_ty bitwise_xor_var;
11791 if (
11792 (bitwise_xor_var = bitwise_xor_rule(p)) // bitwise_xor
11793 )
11794 {
11795 D(fprintf(stderr, "%*c+ bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_xor"));
11796 _res = bitwise_xor_var;
11797 goto done;
11798 }
11799 p->mark = _mark;
11800 D(fprintf(stderr, "%*c%s bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
11801 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_xor"));
11802 }
11803 _res = NULL;
11804 done:
11805 D(p->level--);
11806 return _res;
11807}
11808
11809// Left-recursive
11810// bitwise_xor: bitwise_xor '^' bitwise_and | bitwise_and
11811static expr_ty bitwise_xor_raw(Parser *);
11812static expr_ty
11813bitwise_xor_rule(Parser *p)
11814{
11815 D(p->level++);
11816 expr_ty _res = NULL;
11817 if (_PyPegen_is_memoized(p, bitwise_xor_type, &_res)) {
11818 D(p->level--);
11819 return _res;
11820 }
11821 int _mark = p->mark;
11822 int _resmark = p->mark;
11823 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080011824 int tmpvar_3 = _PyPegen_update_memo(p, _mark, bitwise_xor_type, _res);
11825 if (tmpvar_3) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011826 D(p->level--);
11827 return _res;
11828 }
11829 p->mark = _mark;
11830 void *_raw = bitwise_xor_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020011831 if (p->error_indicator)
11832 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011833 if (_raw == NULL || p->mark <= _resmark)
11834 break;
11835 _resmark = p->mark;
11836 _res = _raw;
11837 }
11838 p->mark = _resmark;
11839 D(p->level--);
11840 return _res;
11841}
11842static expr_ty
11843bitwise_xor_raw(Parser *p)
11844{
11845 D(p->level++);
11846 if (p->error_indicator) {
11847 D(p->level--);
11848 return NULL;
11849 }
11850 expr_ty _res = NULL;
11851 int _mark = p->mark;
11852 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11853 p->error_indicator = 1;
11854 D(p->level--);
11855 return NULL;
11856 }
11857 int _start_lineno = p->tokens[_mark]->lineno;
11858 UNUSED(_start_lineno); // Only used by EXTRA macro
11859 int _start_col_offset = p->tokens[_mark]->col_offset;
11860 UNUSED(_start_col_offset); // Only used by EXTRA macro
11861 { // bitwise_xor '^' bitwise_and
11862 if (p->error_indicator) {
11863 D(p->level--);
11864 return NULL;
11865 }
11866 D(fprintf(stderr, "%*c> bitwise_xor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_xor '^' bitwise_and"));
11867 Token * _literal;
11868 expr_ty a;
11869 expr_ty b;
11870 if (
11871 (a = bitwise_xor_rule(p)) // bitwise_xor
11872 &&
11873 (_literal = _PyPegen_expect_token(p, 32)) // token='^'
11874 &&
11875 (b = bitwise_and_rule(p)) // bitwise_and
11876 )
11877 {
11878 D(fprintf(stderr, "%*c+ bitwise_xor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_xor '^' bitwise_and"));
11879 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11880 if (_token == NULL) {
11881 D(p->level--);
11882 return NULL;
11883 }
11884 int _end_lineno = _token->end_lineno;
11885 UNUSED(_end_lineno); // Only used by EXTRA macro
11886 int _end_col_offset = _token->end_col_offset;
11887 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020011888 _res = _PyAST_BinOp ( a , BitXor , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011889 if (_res == NULL && PyErr_Occurred()) {
11890 p->error_indicator = 1;
11891 D(p->level--);
11892 return NULL;
11893 }
11894 goto done;
11895 }
11896 p->mark = _mark;
11897 D(fprintf(stderr, "%*c%s bitwise_xor[%d-%d]: %s failed!\n", p->level, ' ',
11898 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_xor '^' bitwise_and"));
11899 }
11900 { // bitwise_and
11901 if (p->error_indicator) {
11902 D(p->level--);
11903 return NULL;
11904 }
11905 D(fprintf(stderr, "%*c> bitwise_xor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_and"));
11906 expr_ty bitwise_and_var;
11907 if (
11908 (bitwise_and_var = bitwise_and_rule(p)) // bitwise_and
11909 )
11910 {
11911 D(fprintf(stderr, "%*c+ bitwise_xor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_and"));
11912 _res = bitwise_and_var;
11913 goto done;
11914 }
11915 p->mark = _mark;
11916 D(fprintf(stderr, "%*c%s bitwise_xor[%d-%d]: %s failed!\n", p->level, ' ',
11917 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_and"));
11918 }
11919 _res = NULL;
11920 done:
11921 D(p->level--);
11922 return _res;
11923}
11924
11925// Left-recursive
11926// bitwise_and: bitwise_and '&' shift_expr | shift_expr
11927static expr_ty bitwise_and_raw(Parser *);
11928static expr_ty
11929bitwise_and_rule(Parser *p)
11930{
11931 D(p->level++);
11932 expr_ty _res = NULL;
11933 if (_PyPegen_is_memoized(p, bitwise_and_type, &_res)) {
11934 D(p->level--);
11935 return _res;
11936 }
11937 int _mark = p->mark;
11938 int _resmark = p->mark;
11939 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080011940 int tmpvar_4 = _PyPegen_update_memo(p, _mark, bitwise_and_type, _res);
11941 if (tmpvar_4) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011942 D(p->level--);
11943 return _res;
11944 }
11945 p->mark = _mark;
11946 void *_raw = bitwise_and_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020011947 if (p->error_indicator)
11948 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011949 if (_raw == NULL || p->mark <= _resmark)
11950 break;
11951 _resmark = p->mark;
11952 _res = _raw;
11953 }
11954 p->mark = _resmark;
11955 D(p->level--);
11956 return _res;
11957}
11958static expr_ty
11959bitwise_and_raw(Parser *p)
11960{
11961 D(p->level++);
11962 if (p->error_indicator) {
11963 D(p->level--);
11964 return NULL;
11965 }
11966 expr_ty _res = NULL;
11967 int _mark = p->mark;
11968 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11969 p->error_indicator = 1;
11970 D(p->level--);
11971 return NULL;
11972 }
11973 int _start_lineno = p->tokens[_mark]->lineno;
11974 UNUSED(_start_lineno); // Only used by EXTRA macro
11975 int _start_col_offset = p->tokens[_mark]->col_offset;
11976 UNUSED(_start_col_offset); // Only used by EXTRA macro
11977 { // bitwise_and '&' shift_expr
11978 if (p->error_indicator) {
11979 D(p->level--);
11980 return NULL;
11981 }
11982 D(fprintf(stderr, "%*c> bitwise_and[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_and '&' shift_expr"));
11983 Token * _literal;
11984 expr_ty a;
11985 expr_ty b;
11986 if (
11987 (a = bitwise_and_rule(p)) // bitwise_and
11988 &&
11989 (_literal = _PyPegen_expect_token(p, 19)) // token='&'
11990 &&
11991 (b = shift_expr_rule(p)) // shift_expr
11992 )
11993 {
11994 D(fprintf(stderr, "%*c+ bitwise_and[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_and '&' shift_expr"));
11995 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11996 if (_token == NULL) {
11997 D(p->level--);
11998 return NULL;
11999 }
12000 int _end_lineno = _token->end_lineno;
12001 UNUSED(_end_lineno); // Only used by EXTRA macro
12002 int _end_col_offset = _token->end_col_offset;
12003 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020012004 _res = _PyAST_BinOp ( a , BitAnd , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012005 if (_res == NULL && PyErr_Occurred()) {
12006 p->error_indicator = 1;
12007 D(p->level--);
12008 return NULL;
12009 }
12010 goto done;
12011 }
12012 p->mark = _mark;
12013 D(fprintf(stderr, "%*c%s bitwise_and[%d-%d]: %s failed!\n", p->level, ' ',
12014 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_and '&' shift_expr"));
12015 }
12016 { // shift_expr
12017 if (p->error_indicator) {
12018 D(p->level--);
12019 return NULL;
12020 }
12021 D(fprintf(stderr, "%*c> bitwise_and[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "shift_expr"));
12022 expr_ty shift_expr_var;
12023 if (
12024 (shift_expr_var = shift_expr_rule(p)) // shift_expr
12025 )
12026 {
12027 D(fprintf(stderr, "%*c+ bitwise_and[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "shift_expr"));
12028 _res = shift_expr_var;
12029 goto done;
12030 }
12031 p->mark = _mark;
12032 D(fprintf(stderr, "%*c%s bitwise_and[%d-%d]: %s failed!\n", p->level, ' ',
12033 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "shift_expr"));
12034 }
12035 _res = NULL;
12036 done:
12037 D(p->level--);
12038 return _res;
12039}
12040
12041// Left-recursive
12042// shift_expr: shift_expr '<<' sum | shift_expr '>>' sum | sum
12043static expr_ty shift_expr_raw(Parser *);
12044static expr_ty
12045shift_expr_rule(Parser *p)
12046{
12047 D(p->level++);
12048 expr_ty _res = NULL;
12049 if (_PyPegen_is_memoized(p, shift_expr_type, &_res)) {
12050 D(p->level--);
12051 return _res;
12052 }
12053 int _mark = p->mark;
12054 int _resmark = p->mark;
12055 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080012056 int tmpvar_5 = _PyPegen_update_memo(p, _mark, shift_expr_type, _res);
12057 if (tmpvar_5) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012058 D(p->level--);
12059 return _res;
12060 }
12061 p->mark = _mark;
12062 void *_raw = shift_expr_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020012063 if (p->error_indicator)
12064 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012065 if (_raw == NULL || p->mark <= _resmark)
12066 break;
12067 _resmark = p->mark;
12068 _res = _raw;
12069 }
12070 p->mark = _resmark;
12071 D(p->level--);
12072 return _res;
12073}
12074static expr_ty
12075shift_expr_raw(Parser *p)
12076{
12077 D(p->level++);
12078 if (p->error_indicator) {
12079 D(p->level--);
12080 return NULL;
12081 }
12082 expr_ty _res = NULL;
12083 int _mark = p->mark;
12084 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12085 p->error_indicator = 1;
12086 D(p->level--);
12087 return NULL;
12088 }
12089 int _start_lineno = p->tokens[_mark]->lineno;
12090 UNUSED(_start_lineno); // Only used by EXTRA macro
12091 int _start_col_offset = p->tokens[_mark]->col_offset;
12092 UNUSED(_start_col_offset); // Only used by EXTRA macro
12093 { // shift_expr '<<' sum
12094 if (p->error_indicator) {
12095 D(p->level--);
12096 return NULL;
12097 }
12098 D(fprintf(stderr, "%*c> shift_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "shift_expr '<<' sum"));
12099 Token * _literal;
12100 expr_ty a;
12101 expr_ty b;
12102 if (
12103 (a = shift_expr_rule(p)) // shift_expr
12104 &&
12105 (_literal = _PyPegen_expect_token(p, 33)) // token='<<'
12106 &&
12107 (b = sum_rule(p)) // sum
12108 )
12109 {
12110 D(fprintf(stderr, "%*c+ shift_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "shift_expr '<<' sum"));
12111 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12112 if (_token == NULL) {
12113 D(p->level--);
12114 return NULL;
12115 }
12116 int _end_lineno = _token->end_lineno;
12117 UNUSED(_end_lineno); // Only used by EXTRA macro
12118 int _end_col_offset = _token->end_col_offset;
12119 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020012120 _res = _PyAST_BinOp ( a , LShift , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012121 if (_res == NULL && PyErr_Occurred()) {
12122 p->error_indicator = 1;
12123 D(p->level--);
12124 return NULL;
12125 }
12126 goto done;
12127 }
12128 p->mark = _mark;
12129 D(fprintf(stderr, "%*c%s shift_expr[%d-%d]: %s failed!\n", p->level, ' ',
12130 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "shift_expr '<<' sum"));
12131 }
12132 { // shift_expr '>>' sum
12133 if (p->error_indicator) {
12134 D(p->level--);
12135 return NULL;
12136 }
12137 D(fprintf(stderr, "%*c> shift_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "shift_expr '>>' sum"));
12138 Token * _literal;
12139 expr_ty a;
12140 expr_ty b;
12141 if (
12142 (a = shift_expr_rule(p)) // shift_expr
12143 &&
12144 (_literal = _PyPegen_expect_token(p, 34)) // token='>>'
12145 &&
12146 (b = sum_rule(p)) // sum
12147 )
12148 {
12149 D(fprintf(stderr, "%*c+ shift_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "shift_expr '>>' sum"));
12150 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12151 if (_token == NULL) {
12152 D(p->level--);
12153 return NULL;
12154 }
12155 int _end_lineno = _token->end_lineno;
12156 UNUSED(_end_lineno); // Only used by EXTRA macro
12157 int _end_col_offset = _token->end_col_offset;
12158 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020012159 _res = _PyAST_BinOp ( a , RShift , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012160 if (_res == NULL && PyErr_Occurred()) {
12161 p->error_indicator = 1;
12162 D(p->level--);
12163 return NULL;
12164 }
12165 goto done;
12166 }
12167 p->mark = _mark;
12168 D(fprintf(stderr, "%*c%s shift_expr[%d-%d]: %s failed!\n", p->level, ' ',
12169 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "shift_expr '>>' sum"));
12170 }
12171 { // sum
12172 if (p->error_indicator) {
12173 D(p->level--);
12174 return NULL;
12175 }
12176 D(fprintf(stderr, "%*c> shift_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sum"));
12177 expr_ty sum_var;
12178 if (
12179 (sum_var = sum_rule(p)) // sum
12180 )
12181 {
12182 D(fprintf(stderr, "%*c+ shift_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sum"));
12183 _res = sum_var;
12184 goto done;
12185 }
12186 p->mark = _mark;
12187 D(fprintf(stderr, "%*c%s shift_expr[%d-%d]: %s failed!\n", p->level, ' ',
12188 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sum"));
12189 }
12190 _res = NULL;
12191 done:
12192 D(p->level--);
12193 return _res;
12194}
12195
12196// Left-recursive
12197// sum: sum '+' term | sum '-' term | term
12198static expr_ty sum_raw(Parser *);
12199static expr_ty
12200sum_rule(Parser *p)
12201{
12202 D(p->level++);
12203 expr_ty _res = NULL;
12204 if (_PyPegen_is_memoized(p, sum_type, &_res)) {
12205 D(p->level--);
12206 return _res;
12207 }
12208 int _mark = p->mark;
12209 int _resmark = p->mark;
12210 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080012211 int tmpvar_6 = _PyPegen_update_memo(p, _mark, sum_type, _res);
12212 if (tmpvar_6) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012213 D(p->level--);
12214 return _res;
12215 }
12216 p->mark = _mark;
12217 void *_raw = sum_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020012218 if (p->error_indicator)
12219 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012220 if (_raw == NULL || p->mark <= _resmark)
12221 break;
12222 _resmark = p->mark;
12223 _res = _raw;
12224 }
12225 p->mark = _resmark;
12226 D(p->level--);
12227 return _res;
12228}
12229static expr_ty
12230sum_raw(Parser *p)
12231{
12232 D(p->level++);
12233 if (p->error_indicator) {
12234 D(p->level--);
12235 return NULL;
12236 }
12237 expr_ty _res = NULL;
12238 int _mark = p->mark;
12239 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12240 p->error_indicator = 1;
12241 D(p->level--);
12242 return NULL;
12243 }
12244 int _start_lineno = p->tokens[_mark]->lineno;
12245 UNUSED(_start_lineno); // Only used by EXTRA macro
12246 int _start_col_offset = p->tokens[_mark]->col_offset;
12247 UNUSED(_start_col_offset); // Only used by EXTRA macro
12248 { // sum '+' term
12249 if (p->error_indicator) {
12250 D(p->level--);
12251 return NULL;
12252 }
12253 D(fprintf(stderr, "%*c> sum[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sum '+' term"));
12254 Token * _literal;
12255 expr_ty a;
12256 expr_ty b;
12257 if (
12258 (a = sum_rule(p)) // sum
12259 &&
12260 (_literal = _PyPegen_expect_token(p, 14)) // token='+'
12261 &&
12262 (b = term_rule(p)) // term
12263 )
12264 {
12265 D(fprintf(stderr, "%*c+ sum[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sum '+' term"));
12266 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12267 if (_token == NULL) {
12268 D(p->level--);
12269 return NULL;
12270 }
12271 int _end_lineno = _token->end_lineno;
12272 UNUSED(_end_lineno); // Only used by EXTRA macro
12273 int _end_col_offset = _token->end_col_offset;
12274 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020012275 _res = _PyAST_BinOp ( a , Add , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012276 if (_res == NULL && PyErr_Occurred()) {
12277 p->error_indicator = 1;
12278 D(p->level--);
12279 return NULL;
12280 }
12281 goto done;
12282 }
12283 p->mark = _mark;
12284 D(fprintf(stderr, "%*c%s sum[%d-%d]: %s failed!\n", p->level, ' ',
12285 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sum '+' term"));
12286 }
12287 { // sum '-' term
12288 if (p->error_indicator) {
12289 D(p->level--);
12290 return NULL;
12291 }
12292 D(fprintf(stderr, "%*c> sum[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sum '-' term"));
12293 Token * _literal;
12294 expr_ty a;
12295 expr_ty b;
12296 if (
12297 (a = sum_rule(p)) // sum
12298 &&
12299 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
12300 &&
12301 (b = term_rule(p)) // term
12302 )
12303 {
12304 D(fprintf(stderr, "%*c+ sum[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sum '-' term"));
12305 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12306 if (_token == NULL) {
12307 D(p->level--);
12308 return NULL;
12309 }
12310 int _end_lineno = _token->end_lineno;
12311 UNUSED(_end_lineno); // Only used by EXTRA macro
12312 int _end_col_offset = _token->end_col_offset;
12313 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020012314 _res = _PyAST_BinOp ( a , Sub , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012315 if (_res == NULL && PyErr_Occurred()) {
12316 p->error_indicator = 1;
12317 D(p->level--);
12318 return NULL;
12319 }
12320 goto done;
12321 }
12322 p->mark = _mark;
12323 D(fprintf(stderr, "%*c%s sum[%d-%d]: %s failed!\n", p->level, ' ',
12324 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sum '-' term"));
12325 }
12326 { // term
12327 if (p->error_indicator) {
12328 D(p->level--);
12329 return NULL;
12330 }
12331 D(fprintf(stderr, "%*c> sum[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term"));
12332 expr_ty term_var;
12333 if (
12334 (term_var = term_rule(p)) // term
12335 )
12336 {
12337 D(fprintf(stderr, "%*c+ sum[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term"));
12338 _res = term_var;
12339 goto done;
12340 }
12341 p->mark = _mark;
12342 D(fprintf(stderr, "%*c%s sum[%d-%d]: %s failed!\n", p->level, ' ',
12343 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term"));
12344 }
12345 _res = NULL;
12346 done:
12347 D(p->level--);
12348 return _res;
12349}
12350
12351// Left-recursive
12352// term:
12353// | term '*' factor
12354// | term '/' factor
12355// | term '//' factor
12356// | term '%' factor
12357// | term '@' factor
12358// | factor
12359static expr_ty term_raw(Parser *);
12360static expr_ty
12361term_rule(Parser *p)
12362{
12363 D(p->level++);
12364 expr_ty _res = NULL;
12365 if (_PyPegen_is_memoized(p, term_type, &_res)) {
12366 D(p->level--);
12367 return _res;
12368 }
12369 int _mark = p->mark;
12370 int _resmark = p->mark;
12371 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080012372 int tmpvar_7 = _PyPegen_update_memo(p, _mark, term_type, _res);
12373 if (tmpvar_7) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012374 D(p->level--);
12375 return _res;
12376 }
12377 p->mark = _mark;
12378 void *_raw = term_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020012379 if (p->error_indicator)
12380 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012381 if (_raw == NULL || p->mark <= _resmark)
12382 break;
12383 _resmark = p->mark;
12384 _res = _raw;
12385 }
12386 p->mark = _resmark;
12387 D(p->level--);
12388 return _res;
12389}
12390static expr_ty
12391term_raw(Parser *p)
12392{
12393 D(p->level++);
12394 if (p->error_indicator) {
12395 D(p->level--);
12396 return NULL;
12397 }
12398 expr_ty _res = NULL;
12399 int _mark = p->mark;
12400 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12401 p->error_indicator = 1;
12402 D(p->level--);
12403 return NULL;
12404 }
12405 int _start_lineno = p->tokens[_mark]->lineno;
12406 UNUSED(_start_lineno); // Only used by EXTRA macro
12407 int _start_col_offset = p->tokens[_mark]->col_offset;
12408 UNUSED(_start_col_offset); // Only used by EXTRA macro
12409 { // term '*' factor
12410 if (p->error_indicator) {
12411 D(p->level--);
12412 return NULL;
12413 }
12414 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '*' factor"));
12415 Token * _literal;
12416 expr_ty a;
12417 expr_ty b;
12418 if (
12419 (a = term_rule(p)) // term
12420 &&
12421 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
12422 &&
12423 (b = factor_rule(p)) // factor
12424 )
12425 {
12426 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '*' factor"));
12427 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12428 if (_token == NULL) {
12429 D(p->level--);
12430 return NULL;
12431 }
12432 int _end_lineno = _token->end_lineno;
12433 UNUSED(_end_lineno); // Only used by EXTRA macro
12434 int _end_col_offset = _token->end_col_offset;
12435 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020012436 _res = _PyAST_BinOp ( a , Mult , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012437 if (_res == NULL && PyErr_Occurred()) {
12438 p->error_indicator = 1;
12439 D(p->level--);
12440 return NULL;
12441 }
12442 goto done;
12443 }
12444 p->mark = _mark;
12445 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
12446 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '*' factor"));
12447 }
12448 { // term '/' factor
12449 if (p->error_indicator) {
12450 D(p->level--);
12451 return NULL;
12452 }
12453 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '/' factor"));
12454 Token * _literal;
12455 expr_ty a;
12456 expr_ty b;
12457 if (
12458 (a = term_rule(p)) // term
12459 &&
12460 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
12461 &&
12462 (b = factor_rule(p)) // factor
12463 )
12464 {
12465 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '/' factor"));
12466 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12467 if (_token == NULL) {
12468 D(p->level--);
12469 return NULL;
12470 }
12471 int _end_lineno = _token->end_lineno;
12472 UNUSED(_end_lineno); // Only used by EXTRA macro
12473 int _end_col_offset = _token->end_col_offset;
12474 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020012475 _res = _PyAST_BinOp ( a , Div , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012476 if (_res == NULL && PyErr_Occurred()) {
12477 p->error_indicator = 1;
12478 D(p->level--);
12479 return NULL;
12480 }
12481 goto done;
12482 }
12483 p->mark = _mark;
12484 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
12485 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '/' factor"));
12486 }
12487 { // term '//' factor
12488 if (p->error_indicator) {
12489 D(p->level--);
12490 return NULL;
12491 }
12492 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '//' factor"));
12493 Token * _literal;
12494 expr_ty a;
12495 expr_ty b;
12496 if (
12497 (a = term_rule(p)) // term
12498 &&
12499 (_literal = _PyPegen_expect_token(p, 47)) // token='//'
12500 &&
12501 (b = factor_rule(p)) // factor
12502 )
12503 {
12504 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '//' factor"));
12505 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12506 if (_token == NULL) {
12507 D(p->level--);
12508 return NULL;
12509 }
12510 int _end_lineno = _token->end_lineno;
12511 UNUSED(_end_lineno); // Only used by EXTRA macro
12512 int _end_col_offset = _token->end_col_offset;
12513 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020012514 _res = _PyAST_BinOp ( a , FloorDiv , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012515 if (_res == NULL && PyErr_Occurred()) {
12516 p->error_indicator = 1;
12517 D(p->level--);
12518 return NULL;
12519 }
12520 goto done;
12521 }
12522 p->mark = _mark;
12523 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
12524 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '//' factor"));
12525 }
12526 { // term '%' factor
12527 if (p->error_indicator) {
12528 D(p->level--);
12529 return NULL;
12530 }
12531 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '%' factor"));
12532 Token * _literal;
12533 expr_ty a;
12534 expr_ty b;
12535 if (
12536 (a = term_rule(p)) // term
12537 &&
12538 (_literal = _PyPegen_expect_token(p, 24)) // token='%'
12539 &&
12540 (b = factor_rule(p)) // factor
12541 )
12542 {
12543 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '%' factor"));
12544 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12545 if (_token == NULL) {
12546 D(p->level--);
12547 return NULL;
12548 }
12549 int _end_lineno = _token->end_lineno;
12550 UNUSED(_end_lineno); // Only used by EXTRA macro
12551 int _end_col_offset = _token->end_col_offset;
12552 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020012553 _res = _PyAST_BinOp ( a , Mod , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012554 if (_res == NULL && PyErr_Occurred()) {
12555 p->error_indicator = 1;
12556 D(p->level--);
12557 return NULL;
12558 }
12559 goto done;
12560 }
12561 p->mark = _mark;
12562 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
12563 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '%' factor"));
12564 }
12565 { // term '@' factor
12566 if (p->error_indicator) {
12567 D(p->level--);
12568 return NULL;
12569 }
12570 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '@' factor"));
12571 Token * _literal;
12572 expr_ty a;
12573 expr_ty b;
12574 if (
12575 (a = term_rule(p)) // term
12576 &&
12577 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
12578 &&
12579 (b = factor_rule(p)) // factor
12580 )
12581 {
12582 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '@' factor"));
12583 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12584 if (_token == NULL) {
12585 D(p->level--);
12586 return NULL;
12587 }
12588 int _end_lineno = _token->end_lineno;
12589 UNUSED(_end_lineno); // Only used by EXTRA macro
12590 int _end_col_offset = _token->end_col_offset;
12591 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020012592 _res = CHECK_VERSION ( expr_ty , 5 , "The '@' operator is" , _PyAST_BinOp ( a , MatMult , b , EXTRA ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012593 if (_res == NULL && PyErr_Occurred()) {
12594 p->error_indicator = 1;
12595 D(p->level--);
12596 return NULL;
12597 }
12598 goto done;
12599 }
12600 p->mark = _mark;
12601 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
12602 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '@' factor"));
12603 }
12604 { // factor
12605 if (p->error_indicator) {
12606 D(p->level--);
12607 return NULL;
12608 }
12609 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "factor"));
12610 expr_ty factor_var;
12611 if (
12612 (factor_var = factor_rule(p)) // factor
12613 )
12614 {
12615 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "factor"));
12616 _res = factor_var;
12617 goto done;
12618 }
12619 p->mark = _mark;
12620 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
12621 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "factor"));
12622 }
12623 _res = NULL;
12624 done:
12625 D(p->level--);
12626 return _res;
12627}
12628
12629// factor: '+' factor | '-' factor | '~' factor | power
12630static expr_ty
12631factor_rule(Parser *p)
12632{
12633 D(p->level++);
12634 if (p->error_indicator) {
12635 D(p->level--);
12636 return NULL;
12637 }
12638 expr_ty _res = NULL;
12639 if (_PyPegen_is_memoized(p, factor_type, &_res)) {
12640 D(p->level--);
12641 return _res;
12642 }
12643 int _mark = p->mark;
12644 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12645 p->error_indicator = 1;
12646 D(p->level--);
12647 return NULL;
12648 }
12649 int _start_lineno = p->tokens[_mark]->lineno;
12650 UNUSED(_start_lineno); // Only used by EXTRA macro
12651 int _start_col_offset = p->tokens[_mark]->col_offset;
12652 UNUSED(_start_col_offset); // Only used by EXTRA macro
12653 { // '+' factor
12654 if (p->error_indicator) {
12655 D(p->level--);
12656 return NULL;
12657 }
12658 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'+' factor"));
12659 Token * _literal;
12660 expr_ty a;
12661 if (
12662 (_literal = _PyPegen_expect_token(p, 14)) // token='+'
12663 &&
12664 (a = factor_rule(p)) // factor
12665 )
12666 {
12667 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'+' factor"));
12668 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12669 if (_token == NULL) {
12670 D(p->level--);
12671 return NULL;
12672 }
12673 int _end_lineno = _token->end_lineno;
12674 UNUSED(_end_lineno); // Only used by EXTRA macro
12675 int _end_col_offset = _token->end_col_offset;
12676 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020012677 _res = _PyAST_UnaryOp ( UAdd , a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012678 if (_res == NULL && PyErr_Occurred()) {
12679 p->error_indicator = 1;
12680 D(p->level--);
12681 return NULL;
12682 }
12683 goto done;
12684 }
12685 p->mark = _mark;
12686 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
12687 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+' factor"));
12688 }
12689 { // '-' factor
12690 if (p->error_indicator) {
12691 D(p->level--);
12692 return NULL;
12693 }
12694 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-' factor"));
12695 Token * _literal;
12696 expr_ty a;
12697 if (
12698 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
12699 &&
12700 (a = factor_rule(p)) // factor
12701 )
12702 {
12703 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-' factor"));
12704 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12705 if (_token == NULL) {
12706 D(p->level--);
12707 return NULL;
12708 }
12709 int _end_lineno = _token->end_lineno;
12710 UNUSED(_end_lineno); // Only used by EXTRA macro
12711 int _end_col_offset = _token->end_col_offset;
12712 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020012713 _res = _PyAST_UnaryOp ( USub , a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012714 if (_res == NULL && PyErr_Occurred()) {
12715 p->error_indicator = 1;
12716 D(p->level--);
12717 return NULL;
12718 }
12719 goto done;
12720 }
12721 p->mark = _mark;
12722 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
12723 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-' factor"));
12724 }
12725 { // '~' factor
12726 if (p->error_indicator) {
12727 D(p->level--);
12728 return NULL;
12729 }
12730 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'~' factor"));
12731 Token * _literal;
12732 expr_ty a;
12733 if (
12734 (_literal = _PyPegen_expect_token(p, 31)) // token='~'
12735 &&
12736 (a = factor_rule(p)) // factor
12737 )
12738 {
12739 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'~' factor"));
12740 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12741 if (_token == NULL) {
12742 D(p->level--);
12743 return NULL;
12744 }
12745 int _end_lineno = _token->end_lineno;
12746 UNUSED(_end_lineno); // Only used by EXTRA macro
12747 int _end_col_offset = _token->end_col_offset;
12748 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020012749 _res = _PyAST_UnaryOp ( Invert , a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012750 if (_res == NULL && PyErr_Occurred()) {
12751 p->error_indicator = 1;
12752 D(p->level--);
12753 return NULL;
12754 }
12755 goto done;
12756 }
12757 p->mark = _mark;
12758 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
12759 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'~' factor"));
12760 }
12761 { // power
12762 if (p->error_indicator) {
12763 D(p->level--);
12764 return NULL;
12765 }
12766 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "power"));
12767 expr_ty power_var;
12768 if (
12769 (power_var = power_rule(p)) // power
12770 )
12771 {
12772 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "power"));
12773 _res = power_var;
12774 goto done;
12775 }
12776 p->mark = _mark;
12777 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
12778 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "power"));
12779 }
12780 _res = NULL;
12781 done:
12782 _PyPegen_insert_memo(p, _mark, factor_type, _res);
12783 D(p->level--);
12784 return _res;
12785}
12786
12787// power: await_primary '**' factor | await_primary
12788static expr_ty
12789power_rule(Parser *p)
12790{
12791 D(p->level++);
12792 if (p->error_indicator) {
12793 D(p->level--);
12794 return NULL;
12795 }
12796 expr_ty _res = NULL;
12797 int _mark = p->mark;
12798 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12799 p->error_indicator = 1;
12800 D(p->level--);
12801 return NULL;
12802 }
12803 int _start_lineno = p->tokens[_mark]->lineno;
12804 UNUSED(_start_lineno); // Only used by EXTRA macro
12805 int _start_col_offset = p->tokens[_mark]->col_offset;
12806 UNUSED(_start_col_offset); // Only used by EXTRA macro
12807 { // await_primary '**' factor
12808 if (p->error_indicator) {
12809 D(p->level--);
12810 return NULL;
12811 }
12812 D(fprintf(stderr, "%*c> power[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "await_primary '**' factor"));
12813 Token * _literal;
12814 expr_ty a;
12815 expr_ty b;
12816 if (
12817 (a = await_primary_rule(p)) // await_primary
12818 &&
12819 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
12820 &&
12821 (b = factor_rule(p)) // factor
12822 )
12823 {
12824 D(fprintf(stderr, "%*c+ power[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "await_primary '**' factor"));
12825 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12826 if (_token == NULL) {
12827 D(p->level--);
12828 return NULL;
12829 }
12830 int _end_lineno = _token->end_lineno;
12831 UNUSED(_end_lineno); // Only used by EXTRA macro
12832 int _end_col_offset = _token->end_col_offset;
12833 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020012834 _res = _PyAST_BinOp ( a , Pow , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012835 if (_res == NULL && PyErr_Occurred()) {
12836 p->error_indicator = 1;
12837 D(p->level--);
12838 return NULL;
12839 }
12840 goto done;
12841 }
12842 p->mark = _mark;
12843 D(fprintf(stderr, "%*c%s power[%d-%d]: %s failed!\n", p->level, ' ',
12844 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "await_primary '**' factor"));
12845 }
12846 { // await_primary
12847 if (p->error_indicator) {
12848 D(p->level--);
12849 return NULL;
12850 }
12851 D(fprintf(stderr, "%*c> power[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "await_primary"));
12852 expr_ty await_primary_var;
12853 if (
12854 (await_primary_var = await_primary_rule(p)) // await_primary
12855 )
12856 {
12857 D(fprintf(stderr, "%*c+ power[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "await_primary"));
12858 _res = await_primary_var;
12859 goto done;
12860 }
12861 p->mark = _mark;
12862 D(fprintf(stderr, "%*c%s power[%d-%d]: %s failed!\n", p->level, ' ',
12863 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "await_primary"));
12864 }
12865 _res = NULL;
12866 done:
12867 D(p->level--);
12868 return _res;
12869}
12870
12871// await_primary: AWAIT primary | primary
12872static expr_ty
12873await_primary_rule(Parser *p)
12874{
12875 D(p->level++);
12876 if (p->error_indicator) {
12877 D(p->level--);
12878 return NULL;
12879 }
12880 expr_ty _res = NULL;
12881 if (_PyPegen_is_memoized(p, await_primary_type, &_res)) {
12882 D(p->level--);
12883 return _res;
12884 }
12885 int _mark = p->mark;
12886 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12887 p->error_indicator = 1;
12888 D(p->level--);
12889 return NULL;
12890 }
12891 int _start_lineno = p->tokens[_mark]->lineno;
12892 UNUSED(_start_lineno); // Only used by EXTRA macro
12893 int _start_col_offset = p->tokens[_mark]->col_offset;
12894 UNUSED(_start_col_offset); // Only used by EXTRA macro
12895 { // AWAIT primary
12896 if (p->error_indicator) {
12897 D(p->level--);
12898 return NULL;
12899 }
12900 D(fprintf(stderr, "%*c> await_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "AWAIT primary"));
12901 expr_ty a;
12902 Token * await_var;
12903 if (
12904 (await_var = _PyPegen_expect_token(p, AWAIT)) // token='AWAIT'
12905 &&
12906 (a = primary_rule(p)) // primary
12907 )
12908 {
12909 D(fprintf(stderr, "%*c+ await_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "AWAIT primary"));
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
Victor Stinnerd27f8d22021-04-07 21:34:22 +020012919 _res = CHECK_VERSION ( expr_ty , 5 , "Await expressions are" , _PyAST_Await ( a , EXTRA ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012920 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 await_primary[%d-%d]: %s failed!\n", p->level, ' ',
12929 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "AWAIT primary"));
12930 }
12931 { // primary
12932 if (p->error_indicator) {
12933 D(p->level--);
12934 return NULL;
12935 }
12936 D(fprintf(stderr, "%*c> await_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary"));
12937 expr_ty primary_var;
12938 if (
12939 (primary_var = primary_rule(p)) // primary
12940 )
12941 {
12942 D(fprintf(stderr, "%*c+ await_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary"));
12943 _res = primary_var;
12944 goto done;
12945 }
12946 p->mark = _mark;
12947 D(fprintf(stderr, "%*c%s await_primary[%d-%d]: %s failed!\n", p->level, ' ',
12948 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary"));
12949 }
12950 _res = NULL;
12951 done:
12952 _PyPegen_insert_memo(p, _mark, await_primary_type, _res);
12953 D(p->level--);
12954 return _res;
12955}
12956
12957// Left-recursive
12958// primary:
Lysandros Nikolaou15acc4e2020-10-27 20:54:20 +020012959// | invalid_primary
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012960// | primary '.' NAME
12961// | primary genexp
12962// | primary '(' arguments? ')'
12963// | primary '[' slices ']'
12964// | atom
12965static expr_ty primary_raw(Parser *);
12966static expr_ty
12967primary_rule(Parser *p)
12968{
12969 D(p->level++);
12970 expr_ty _res = NULL;
12971 if (_PyPegen_is_memoized(p, primary_type, &_res)) {
12972 D(p->level--);
12973 return _res;
12974 }
12975 int _mark = p->mark;
12976 int _resmark = p->mark;
12977 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080012978 int tmpvar_8 = _PyPegen_update_memo(p, _mark, primary_type, _res);
12979 if (tmpvar_8) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012980 D(p->level--);
12981 return _res;
12982 }
12983 p->mark = _mark;
12984 void *_raw = primary_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020012985 if (p->error_indicator)
12986 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012987 if (_raw == NULL || p->mark <= _resmark)
12988 break;
12989 _resmark = p->mark;
12990 _res = _raw;
12991 }
12992 p->mark = _resmark;
12993 D(p->level--);
12994 return _res;
12995}
12996static expr_ty
12997primary_raw(Parser *p)
12998{
12999 D(p->level++);
13000 if (p->error_indicator) {
13001 D(p->level--);
13002 return NULL;
13003 }
13004 expr_ty _res = NULL;
13005 int _mark = p->mark;
13006 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13007 p->error_indicator = 1;
13008 D(p->level--);
13009 return NULL;
13010 }
13011 int _start_lineno = p->tokens[_mark]->lineno;
13012 UNUSED(_start_lineno); // Only used by EXTRA macro
13013 int _start_col_offset = p->tokens[_mark]->col_offset;
13014 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou15acc4e2020-10-27 20:54:20 +020013015 if (p->call_invalid_rules) { // invalid_primary
13016 if (p->error_indicator) {
13017 D(p->level--);
13018 return NULL;
13019 }
13020 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_primary"));
13021 void *invalid_primary_var;
13022 if (
13023 (invalid_primary_var = invalid_primary_rule(p)) // invalid_primary
13024 )
13025 {
13026 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_primary"));
13027 _res = invalid_primary_var;
13028 goto done;
13029 }
13030 p->mark = _mark;
13031 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
13032 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_primary"));
13033 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013034 { // primary '.' NAME
13035 if (p->error_indicator) {
13036 D(p->level--);
13037 return NULL;
13038 }
13039 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '.' NAME"));
13040 Token * _literal;
13041 expr_ty a;
13042 expr_ty b;
13043 if (
13044 (a = primary_rule(p)) // primary
13045 &&
13046 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
13047 &&
13048 (b = _PyPegen_name_token(p)) // NAME
13049 )
13050 {
13051 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '.' NAME"));
13052 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13053 if (_token == NULL) {
13054 D(p->level--);
13055 return NULL;
13056 }
13057 int _end_lineno = _token->end_lineno;
13058 UNUSED(_end_lineno); // Only used by EXTRA macro
13059 int _end_col_offset = _token->end_col_offset;
13060 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013061 _res = _PyAST_Attribute ( a , b -> v . Name . id , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013062 if (_res == NULL && PyErr_Occurred()) {
13063 p->error_indicator = 1;
13064 D(p->level--);
13065 return NULL;
13066 }
13067 goto done;
13068 }
13069 p->mark = _mark;
13070 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
13071 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '.' NAME"));
13072 }
13073 { // primary genexp
13074 if (p->error_indicator) {
13075 D(p->level--);
13076 return NULL;
13077 }
13078 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary genexp"));
13079 expr_ty a;
13080 expr_ty b;
13081 if (
13082 (a = primary_rule(p)) // primary
13083 &&
13084 (b = genexp_rule(p)) // genexp
13085 )
13086 {
13087 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary genexp"));
13088 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13089 if (_token == NULL) {
13090 D(p->level--);
13091 return NULL;
13092 }
13093 int _end_lineno = _token->end_lineno;
13094 UNUSED(_end_lineno); // Only used by EXTRA macro
13095 int _end_col_offset = _token->end_col_offset;
13096 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013097 _res = _PyAST_Call ( a , CHECK ( asdl_expr_seq * , ( asdl_expr_seq * ) _PyPegen_singleton_seq ( p , b ) ) , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013098 if (_res == NULL && PyErr_Occurred()) {
13099 p->error_indicator = 1;
13100 D(p->level--);
13101 return NULL;
13102 }
13103 goto done;
13104 }
13105 p->mark = _mark;
13106 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
13107 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary genexp"));
13108 }
13109 { // primary '(' arguments? ')'
13110 if (p->error_indicator) {
13111 D(p->level--);
13112 return NULL;
13113 }
13114 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '(' arguments? ')'"));
13115 Token * _literal;
13116 Token * _literal_1;
13117 expr_ty a;
13118 void *b;
13119 if (
13120 (a = primary_rule(p)) // primary
13121 &&
13122 (_literal = _PyPegen_expect_token(p, 7)) // token='('
13123 &&
13124 (b = arguments_rule(p), 1) // arguments?
13125 &&
13126 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
13127 )
13128 {
13129 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '(' arguments? ')'"));
13130 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13131 if (_token == NULL) {
13132 D(p->level--);
13133 return NULL;
13134 }
13135 int _end_lineno = _token->end_lineno;
13136 UNUSED(_end_lineno); // Only used by EXTRA macro
13137 int _end_col_offset = _token->end_col_offset;
13138 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013139 _res = _PyAST_Call ( a , ( b ) ? ( ( expr_ty ) b ) -> v . Call . args : NULL , ( b ) ? ( ( expr_ty ) b ) -> v . Call . keywords : NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013140 if (_res == NULL && PyErr_Occurred()) {
13141 p->error_indicator = 1;
13142 D(p->level--);
13143 return NULL;
13144 }
13145 goto done;
13146 }
13147 p->mark = _mark;
13148 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
13149 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '(' arguments? ')'"));
13150 }
13151 { // primary '[' slices ']'
13152 if (p->error_indicator) {
13153 D(p->level--);
13154 return NULL;
13155 }
13156 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '[' slices ']'"));
13157 Token * _literal;
13158 Token * _literal_1;
13159 expr_ty a;
13160 expr_ty b;
13161 if (
13162 (a = primary_rule(p)) // primary
13163 &&
13164 (_literal = _PyPegen_expect_token(p, 9)) // token='['
13165 &&
13166 (b = slices_rule(p)) // slices
13167 &&
13168 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
13169 )
13170 {
13171 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '[' slices ']'"));
13172 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13173 if (_token == NULL) {
13174 D(p->level--);
13175 return NULL;
13176 }
13177 int _end_lineno = _token->end_lineno;
13178 UNUSED(_end_lineno); // Only used by EXTRA macro
13179 int _end_col_offset = _token->end_col_offset;
13180 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013181 _res = _PyAST_Subscript ( a , b , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013182 if (_res == NULL && PyErr_Occurred()) {
13183 p->error_indicator = 1;
13184 D(p->level--);
13185 return NULL;
13186 }
13187 goto done;
13188 }
13189 p->mark = _mark;
13190 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
13191 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '[' slices ']'"));
13192 }
13193 { // atom
13194 if (p->error_indicator) {
13195 D(p->level--);
13196 return NULL;
13197 }
13198 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "atom"));
13199 expr_ty atom_var;
13200 if (
13201 (atom_var = atom_rule(p)) // atom
13202 )
13203 {
13204 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "atom"));
13205 _res = atom_var;
13206 goto done;
13207 }
13208 p->mark = _mark;
13209 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
13210 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "atom"));
13211 }
13212 _res = NULL;
13213 done:
13214 D(p->level--);
13215 return _res;
13216}
13217
13218// slices: slice !',' | ','.slice+ ','?
13219static expr_ty
13220slices_rule(Parser *p)
13221{
13222 D(p->level++);
13223 if (p->error_indicator) {
13224 D(p->level--);
13225 return NULL;
13226 }
13227 expr_ty _res = NULL;
13228 int _mark = p->mark;
13229 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13230 p->error_indicator = 1;
13231 D(p->level--);
13232 return NULL;
13233 }
13234 int _start_lineno = p->tokens[_mark]->lineno;
13235 UNUSED(_start_lineno); // Only used by EXTRA macro
13236 int _start_col_offset = p->tokens[_mark]->col_offset;
13237 UNUSED(_start_col_offset); // Only used by EXTRA macro
13238 { // slice !','
13239 if (p->error_indicator) {
13240 D(p->level--);
13241 return NULL;
13242 }
13243 D(fprintf(stderr, "%*c> slices[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slice !','"));
13244 expr_ty a;
13245 if (
13246 (a = slice_rule(p)) // slice
13247 &&
13248 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 12) // token=','
13249 )
13250 {
13251 D(fprintf(stderr, "%*c+ slices[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slice !','"));
13252 _res = a;
13253 if (_res == NULL && PyErr_Occurred()) {
13254 p->error_indicator = 1;
13255 D(p->level--);
13256 return NULL;
13257 }
13258 goto done;
13259 }
13260 p->mark = _mark;
13261 D(fprintf(stderr, "%*c%s slices[%d-%d]: %s failed!\n", p->level, ' ',
13262 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slice !','"));
13263 }
13264 { // ','.slice+ ','?
13265 if (p->error_indicator) {
13266 D(p->level--);
13267 return NULL;
13268 }
13269 D(fprintf(stderr, "%*c> slices[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.slice+ ','?"));
13270 void *_opt_var;
13271 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +010013272 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013273 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080013274 (a = (asdl_expr_seq*)_gather_108_rule(p)) // ','.slice+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013275 &&
13276 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
13277 )
13278 {
13279 D(fprintf(stderr, "%*c+ slices[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.slice+ ','?"));
13280 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13281 if (_token == NULL) {
13282 D(p->level--);
13283 return NULL;
13284 }
13285 int _end_lineno = _token->end_lineno;
13286 UNUSED(_end_lineno); // Only used by EXTRA macro
13287 int _end_col_offset = _token->end_col_offset;
13288 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013289 _res = _PyAST_Tuple ( a , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013290 if (_res == NULL && PyErr_Occurred()) {
13291 p->error_indicator = 1;
13292 D(p->level--);
13293 return NULL;
13294 }
13295 goto done;
13296 }
13297 p->mark = _mark;
13298 D(fprintf(stderr, "%*c%s slices[%d-%d]: %s failed!\n", p->level, ' ',
13299 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.slice+ ','?"));
13300 }
13301 _res = NULL;
13302 done:
13303 D(p->level--);
13304 return _res;
13305}
13306
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020013307// slice: expression? ':' expression? [':' expression?] | named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013308static expr_ty
13309slice_rule(Parser *p)
13310{
13311 D(p->level++);
13312 if (p->error_indicator) {
13313 D(p->level--);
13314 return NULL;
13315 }
13316 expr_ty _res = NULL;
13317 int _mark = p->mark;
13318 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13319 p->error_indicator = 1;
13320 D(p->level--);
13321 return NULL;
13322 }
13323 int _start_lineno = p->tokens[_mark]->lineno;
13324 UNUSED(_start_lineno); // Only used by EXTRA macro
13325 int _start_col_offset = p->tokens[_mark]->col_offset;
13326 UNUSED(_start_col_offset); // Only used by EXTRA macro
13327 { // expression? ':' expression? [':' expression?]
13328 if (p->error_indicator) {
13329 D(p->level--);
13330 return NULL;
13331 }
13332 D(fprintf(stderr, "%*c> slice[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression? ':' expression? [':' expression?]"));
13333 Token * _literal;
13334 void *a;
13335 void *b;
13336 void *c;
13337 if (
13338 (a = expression_rule(p), 1) // expression?
13339 &&
13340 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
13341 &&
13342 (b = expression_rule(p), 1) // expression?
13343 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080013344 (c = _tmp_110_rule(p), 1) // [':' expression?]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013345 )
13346 {
13347 D(fprintf(stderr, "%*c+ slice[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression? ':' expression? [':' expression?]"));
13348 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13349 if (_token == NULL) {
13350 D(p->level--);
13351 return NULL;
13352 }
13353 int _end_lineno = _token->end_lineno;
13354 UNUSED(_end_lineno); // Only used by EXTRA macro
13355 int _end_col_offset = _token->end_col_offset;
13356 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013357 _res = _PyAST_Slice ( a , b , c , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013358 if (_res == NULL && PyErr_Occurred()) {
13359 p->error_indicator = 1;
13360 D(p->level--);
13361 return NULL;
13362 }
13363 goto done;
13364 }
13365 p->mark = _mark;
13366 D(fprintf(stderr, "%*c%s slice[%d-%d]: %s failed!\n", p->level, ' ',
13367 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression? ':' expression? [':' expression?]"));
13368 }
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020013369 { // named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013370 if (p->error_indicator) {
13371 D(p->level--);
13372 return NULL;
13373 }
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020013374 D(fprintf(stderr, "%*c> slice[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013375 expr_ty a;
13376 if (
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020013377 (a = named_expression_rule(p)) // named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013378 )
13379 {
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020013380 D(fprintf(stderr, "%*c+ slice[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "named_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013381 _res = a;
13382 if (_res == NULL && PyErr_Occurred()) {
13383 p->error_indicator = 1;
13384 D(p->level--);
13385 return NULL;
13386 }
13387 goto done;
13388 }
13389 p->mark = _mark;
13390 D(fprintf(stderr, "%*c%s slice[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020013391 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013392 }
13393 _res = NULL;
13394 done:
13395 D(p->level--);
13396 return _res;
13397}
13398
13399// atom:
13400// | NAME
13401// | 'True'
13402// | 'False'
13403// | 'None'
13404// | &STRING strings
13405// | NUMBER
13406// | &'(' (tuple | group | genexp)
13407// | &'[' (list | listcomp)
13408// | &'{' (dict | set | dictcomp | setcomp)
13409// | '...'
13410static expr_ty
13411atom_rule(Parser *p)
13412{
13413 D(p->level++);
13414 if (p->error_indicator) {
13415 D(p->level--);
13416 return NULL;
13417 }
13418 expr_ty _res = NULL;
13419 int _mark = p->mark;
13420 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13421 p->error_indicator = 1;
13422 D(p->level--);
13423 return NULL;
13424 }
13425 int _start_lineno = p->tokens[_mark]->lineno;
13426 UNUSED(_start_lineno); // Only used by EXTRA macro
13427 int _start_col_offset = p->tokens[_mark]->col_offset;
13428 UNUSED(_start_col_offset); // Only used by EXTRA macro
13429 { // NAME
13430 if (p->error_indicator) {
13431 D(p->level--);
13432 return NULL;
13433 }
13434 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
13435 expr_ty name_var;
13436 if (
13437 (name_var = _PyPegen_name_token(p)) // NAME
13438 )
13439 {
13440 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
13441 _res = name_var;
13442 goto done;
13443 }
13444 p->mark = _mark;
13445 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
13446 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
13447 }
13448 { // 'True'
13449 if (p->error_indicator) {
13450 D(p->level--);
13451 return NULL;
13452 }
13453 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'"));
13454 Token * _keyword;
13455 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080013456 (_keyword = _PyPegen_expect_token(p, 524)) // token='True'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013457 )
13458 {
13459 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'"));
13460 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13461 if (_token == NULL) {
13462 D(p->level--);
13463 return NULL;
13464 }
13465 int _end_lineno = _token->end_lineno;
13466 UNUSED(_end_lineno); // Only used by EXTRA macro
13467 int _end_col_offset = _token->end_col_offset;
13468 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013469 _res = _PyAST_Constant ( Py_True , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013470 if (_res == NULL && PyErr_Occurred()) {
13471 p->error_indicator = 1;
13472 D(p->level--);
13473 return NULL;
13474 }
13475 goto done;
13476 }
13477 p->mark = _mark;
13478 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
13479 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'True'"));
13480 }
13481 { // 'False'
13482 if (p->error_indicator) {
13483 D(p->level--);
13484 return NULL;
13485 }
13486 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'"));
13487 Token * _keyword;
13488 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080013489 (_keyword = _PyPegen_expect_token(p, 525)) // token='False'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013490 )
13491 {
13492 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'"));
13493 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13494 if (_token == NULL) {
13495 D(p->level--);
13496 return NULL;
13497 }
13498 int _end_lineno = _token->end_lineno;
13499 UNUSED(_end_lineno); // Only used by EXTRA macro
13500 int _end_col_offset = _token->end_col_offset;
13501 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013502 _res = _PyAST_Constant ( Py_False , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013503 if (_res == NULL && PyErr_Occurred()) {
13504 p->error_indicator = 1;
13505 D(p->level--);
13506 return NULL;
13507 }
13508 goto done;
13509 }
13510 p->mark = _mark;
13511 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
13512 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'False'"));
13513 }
13514 { // 'None'
13515 if (p->error_indicator) {
13516 D(p->level--);
13517 return NULL;
13518 }
13519 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'"));
13520 Token * _keyword;
13521 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080013522 (_keyword = _PyPegen_expect_token(p, 523)) // token='None'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013523 )
13524 {
13525 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'"));
13526 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13527 if (_token == NULL) {
13528 D(p->level--);
13529 return NULL;
13530 }
13531 int _end_lineno = _token->end_lineno;
13532 UNUSED(_end_lineno); // Only used by EXTRA macro
13533 int _end_col_offset = _token->end_col_offset;
13534 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013535 _res = _PyAST_Constant ( Py_None , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013536 if (_res == NULL && PyErr_Occurred()) {
13537 p->error_indicator = 1;
13538 D(p->level--);
13539 return NULL;
13540 }
13541 goto done;
13542 }
13543 p->mark = _mark;
13544 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
13545 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'None'"));
13546 }
13547 { // &STRING strings
13548 if (p->error_indicator) {
13549 D(p->level--);
13550 return NULL;
13551 }
13552 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&STRING strings"));
13553 expr_ty strings_var;
13554 if (
13555 _PyPegen_lookahead(1, _PyPegen_string_token, p)
13556 &&
13557 (strings_var = strings_rule(p)) // strings
13558 )
13559 {
13560 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&STRING strings"));
13561 _res = strings_var;
13562 goto done;
13563 }
13564 p->mark = _mark;
13565 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
13566 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&STRING strings"));
13567 }
13568 { // NUMBER
13569 if (p->error_indicator) {
13570 D(p->level--);
13571 return NULL;
13572 }
13573 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NUMBER"));
13574 expr_ty number_var;
13575 if (
13576 (number_var = _PyPegen_number_token(p)) // NUMBER
13577 )
13578 {
13579 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NUMBER"));
13580 _res = number_var;
13581 goto done;
13582 }
13583 p->mark = _mark;
13584 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
13585 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NUMBER"));
13586 }
13587 { // &'(' (tuple | group | genexp)
13588 if (p->error_indicator) {
13589 D(p->level--);
13590 return NULL;
13591 }
13592 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'(' (tuple | group | genexp)"));
Brandt Bucher145bf262021-02-26 14:51:55 -080013593 void *_tmp_111_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013594 if (
13595 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 7) // token='('
13596 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080013597 (_tmp_111_var = _tmp_111_rule(p)) // tuple | group | genexp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013598 )
13599 {
13600 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 -080013601 _res = _tmp_111_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013602 goto done;
13603 }
13604 p->mark = _mark;
13605 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
13606 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'(' (tuple | group | genexp)"));
13607 }
13608 { // &'[' (list | listcomp)
13609 if (p->error_indicator) {
13610 D(p->level--);
13611 return NULL;
13612 }
13613 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'[' (list | listcomp)"));
Brandt Bucher145bf262021-02-26 14:51:55 -080013614 void *_tmp_112_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013615 if (
13616 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 9) // token='['
13617 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080013618 (_tmp_112_var = _tmp_112_rule(p)) // list | listcomp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013619 )
13620 {
13621 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'[' (list | listcomp)"));
Brandt Bucher145bf262021-02-26 14:51:55 -080013622 _res = _tmp_112_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013623 goto done;
13624 }
13625 p->mark = _mark;
13626 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
13627 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'[' (list | listcomp)"));
13628 }
13629 { // &'{' (dict | set | dictcomp | setcomp)
13630 if (p->error_indicator) {
13631 D(p->level--);
13632 return NULL;
13633 }
13634 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 -080013635 void *_tmp_113_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013636 if (
13637 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 25) // token='{'
13638 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080013639 (_tmp_113_var = _tmp_113_rule(p)) // dict | set | dictcomp | setcomp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013640 )
13641 {
13642 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 -080013643 _res = _tmp_113_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013644 goto done;
13645 }
13646 p->mark = _mark;
13647 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
13648 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'{' (dict | set | dictcomp | setcomp)"));
13649 }
13650 { // '...'
13651 if (p->error_indicator) {
13652 D(p->level--);
13653 return NULL;
13654 }
13655 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'"));
13656 Token * _literal;
13657 if (
13658 (_literal = _PyPegen_expect_token(p, 52)) // token='...'
13659 )
13660 {
13661 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'"));
13662 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13663 if (_token == NULL) {
13664 D(p->level--);
13665 return NULL;
13666 }
13667 int _end_lineno = _token->end_lineno;
13668 UNUSED(_end_lineno); // Only used by EXTRA macro
13669 int _end_col_offset = _token->end_col_offset;
13670 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013671 _res = _PyAST_Constant ( Py_Ellipsis , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013672 if (_res == NULL && PyErr_Occurred()) {
13673 p->error_indicator = 1;
13674 D(p->level--);
13675 return NULL;
13676 }
13677 goto done;
13678 }
13679 p->mark = _mark;
13680 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
13681 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'"));
13682 }
13683 _res = NULL;
13684 done:
13685 D(p->level--);
13686 return _res;
13687}
13688
13689// strings: STRING+
13690static expr_ty
13691strings_rule(Parser *p)
13692{
13693 D(p->level++);
13694 if (p->error_indicator) {
13695 D(p->level--);
13696 return NULL;
13697 }
13698 expr_ty _res = NULL;
13699 if (_PyPegen_is_memoized(p, strings_type, &_res)) {
13700 D(p->level--);
13701 return _res;
13702 }
13703 int _mark = p->mark;
13704 { // STRING+
13705 if (p->error_indicator) {
13706 D(p->level--);
13707 return NULL;
13708 }
13709 D(fprintf(stderr, "%*c> strings[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "STRING+"));
13710 asdl_seq * a;
13711 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080013712 (a = _loop1_114_rule(p)) // STRING+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013713 )
13714 {
13715 D(fprintf(stderr, "%*c+ strings[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "STRING+"));
13716 _res = _PyPegen_concatenate_strings ( p , a );
13717 if (_res == NULL && PyErr_Occurred()) {
13718 p->error_indicator = 1;
13719 D(p->level--);
13720 return NULL;
13721 }
13722 goto done;
13723 }
13724 p->mark = _mark;
13725 D(fprintf(stderr, "%*c%s strings[%d-%d]: %s failed!\n", p->level, ' ',
13726 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "STRING+"));
13727 }
13728 _res = NULL;
13729 done:
13730 _PyPegen_insert_memo(p, _mark, strings_type, _res);
13731 D(p->level--);
13732 return _res;
13733}
13734
13735// list: '[' star_named_expressions? ']'
13736static expr_ty
13737list_rule(Parser *p)
13738{
13739 D(p->level++);
13740 if (p->error_indicator) {
13741 D(p->level--);
13742 return NULL;
13743 }
13744 expr_ty _res = NULL;
13745 int _mark = p->mark;
13746 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13747 p->error_indicator = 1;
13748 D(p->level--);
13749 return NULL;
13750 }
13751 int _start_lineno = p->tokens[_mark]->lineno;
13752 UNUSED(_start_lineno); // Only used by EXTRA macro
13753 int _start_col_offset = p->tokens[_mark]->col_offset;
13754 UNUSED(_start_col_offset); // Only used by EXTRA macro
13755 { // '[' star_named_expressions? ']'
13756 if (p->error_indicator) {
13757 D(p->level--);
13758 return NULL;
13759 }
13760 D(fprintf(stderr, "%*c> list[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' star_named_expressions? ']'"));
13761 Token * _literal;
13762 Token * _literal_1;
13763 void *a;
13764 if (
13765 (_literal = _PyPegen_expect_token(p, 9)) // token='['
13766 &&
13767 (a = star_named_expressions_rule(p), 1) // star_named_expressions?
13768 &&
13769 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
13770 )
13771 {
13772 D(fprintf(stderr, "%*c+ list[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' star_named_expressions? ']'"));
13773 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13774 if (_token == NULL) {
13775 D(p->level--);
13776 return NULL;
13777 }
13778 int _end_lineno = _token->end_lineno;
13779 UNUSED(_end_lineno); // Only used by EXTRA macro
13780 int _end_col_offset = _token->end_col_offset;
13781 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013782 _res = _PyAST_List ( a , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013783 if (_res == NULL && PyErr_Occurred()) {
13784 p->error_indicator = 1;
13785 D(p->level--);
13786 return NULL;
13787 }
13788 goto done;
13789 }
13790 p->mark = _mark;
13791 D(fprintf(stderr, "%*c%s list[%d-%d]: %s failed!\n", p->level, ' ',
13792 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' star_named_expressions? ']'"));
13793 }
13794 _res = NULL;
13795 done:
13796 D(p->level--);
13797 return _res;
13798}
13799
Pablo Galindo835f14f2021-01-31 22:52:56 +000013800// listcomp: '[' named_expression for_if_clauses ']' | invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013801static expr_ty
13802listcomp_rule(Parser *p)
13803{
13804 D(p->level++);
13805 if (p->error_indicator) {
13806 D(p->level--);
13807 return NULL;
13808 }
13809 expr_ty _res = NULL;
13810 int _mark = p->mark;
13811 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13812 p->error_indicator = 1;
13813 D(p->level--);
13814 return NULL;
13815 }
13816 int _start_lineno = p->tokens[_mark]->lineno;
13817 UNUSED(_start_lineno); // Only used by EXTRA macro
13818 int _start_col_offset = p->tokens[_mark]->col_offset;
13819 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo835f14f2021-01-31 22:52:56 +000013820 { // '[' named_expression for_if_clauses ']'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013821 if (p->error_indicator) {
13822 D(p->level--);
13823 return NULL;
13824 }
Pablo Galindo835f14f2021-01-31 22:52:56 +000013825 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 +010013826 Token * _literal;
13827 Token * _literal_1;
13828 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010013829 asdl_comprehension_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013830 if (
13831 (_literal = _PyPegen_expect_token(p, 9)) // token='['
13832 &&
13833 (a = named_expression_rule(p)) // named_expression
13834 &&
13835 (b = for_if_clauses_rule(p)) // for_if_clauses
13836 &&
13837 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
13838 )
13839 {
Pablo Galindo835f14f2021-01-31 22:52:56 +000013840 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 +010013841 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13842 if (_token == NULL) {
13843 D(p->level--);
13844 return NULL;
13845 }
13846 int _end_lineno = _token->end_lineno;
13847 UNUSED(_end_lineno); // Only used by EXTRA macro
13848 int _end_col_offset = _token->end_col_offset;
13849 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013850 _res = _PyAST_ListComp ( a , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013851 if (_res == NULL && PyErr_Occurred()) {
13852 p->error_indicator = 1;
13853 D(p->level--);
13854 return NULL;
13855 }
13856 goto done;
13857 }
13858 p->mark = _mark;
13859 D(fprintf(stderr, "%*c%s listcomp[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo835f14f2021-01-31 22:52:56 +000013860 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' named_expression for_if_clauses ']'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013861 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020013862 if (p->call_invalid_rules) { // invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013863 if (p->error_indicator) {
13864 D(p->level--);
13865 return NULL;
13866 }
13867 D(fprintf(stderr, "%*c> listcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
13868 void *invalid_comprehension_var;
13869 if (
13870 (invalid_comprehension_var = invalid_comprehension_rule(p)) // invalid_comprehension
13871 )
13872 {
13873 D(fprintf(stderr, "%*c+ listcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
13874 _res = invalid_comprehension_var;
13875 goto done;
13876 }
13877 p->mark = _mark;
13878 D(fprintf(stderr, "%*c%s listcomp[%d-%d]: %s failed!\n", p->level, ' ',
13879 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_comprehension"));
13880 }
13881 _res = NULL;
13882 done:
13883 D(p->level--);
13884 return _res;
13885}
13886
13887// tuple: '(' [star_named_expression ',' star_named_expressions?] ')'
13888static expr_ty
13889tuple_rule(Parser *p)
13890{
13891 D(p->level++);
13892 if (p->error_indicator) {
13893 D(p->level--);
13894 return NULL;
13895 }
13896 expr_ty _res = NULL;
13897 int _mark = p->mark;
13898 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13899 p->error_indicator = 1;
13900 D(p->level--);
13901 return NULL;
13902 }
13903 int _start_lineno = p->tokens[_mark]->lineno;
13904 UNUSED(_start_lineno); // Only used by EXTRA macro
13905 int _start_col_offset = p->tokens[_mark]->col_offset;
13906 UNUSED(_start_col_offset); // Only used by EXTRA macro
13907 { // '(' [star_named_expression ',' star_named_expressions?] ')'
13908 if (p->error_indicator) {
13909 D(p->level--);
13910 return NULL;
13911 }
13912 D(fprintf(stderr, "%*c> tuple[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' [star_named_expression ',' star_named_expressions?] ')'"));
13913 Token * _literal;
13914 Token * _literal_1;
13915 void *a;
13916 if (
13917 (_literal = _PyPegen_expect_token(p, 7)) // token='('
13918 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080013919 (a = _tmp_115_rule(p), 1) // [star_named_expression ',' star_named_expressions?]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013920 &&
13921 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
13922 )
13923 {
13924 D(fprintf(stderr, "%*c+ tuple[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' [star_named_expression ',' star_named_expressions?] ')'"));
13925 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13926 if (_token == NULL) {
13927 D(p->level--);
13928 return NULL;
13929 }
13930 int _end_lineno = _token->end_lineno;
13931 UNUSED(_end_lineno); // Only used by EXTRA macro
13932 int _end_col_offset = _token->end_col_offset;
13933 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013934 _res = _PyAST_Tuple ( a , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013935 if (_res == NULL && PyErr_Occurred()) {
13936 p->error_indicator = 1;
13937 D(p->level--);
13938 return NULL;
13939 }
13940 goto done;
13941 }
13942 p->mark = _mark;
13943 D(fprintf(stderr, "%*c%s tuple[%d-%d]: %s failed!\n", p->level, ' ',
13944 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' [star_named_expression ',' star_named_expressions?] ')'"));
13945 }
13946 _res = NULL;
13947 done:
13948 D(p->level--);
13949 return _res;
13950}
13951
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030013952// group: '(' (yield_expr | named_expression) ')' | invalid_group
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013953static expr_ty
13954group_rule(Parser *p)
13955{
13956 D(p->level++);
13957 if (p->error_indicator) {
13958 D(p->level--);
13959 return NULL;
13960 }
13961 expr_ty _res = NULL;
13962 int _mark = p->mark;
13963 { // '(' (yield_expr | named_expression) ')'
13964 if (p->error_indicator) {
13965 D(p->level--);
13966 return NULL;
13967 }
13968 D(fprintf(stderr, "%*c> group[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' (yield_expr | named_expression) ')'"));
13969 Token * _literal;
13970 Token * _literal_1;
13971 void *a;
13972 if (
13973 (_literal = _PyPegen_expect_token(p, 7)) // token='('
13974 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080013975 (a = _tmp_116_rule(p)) // yield_expr | named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013976 &&
13977 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
13978 )
13979 {
13980 D(fprintf(stderr, "%*c+ group[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' (yield_expr | named_expression) ')'"));
13981 _res = a;
13982 if (_res == NULL && PyErr_Occurred()) {
13983 p->error_indicator = 1;
13984 D(p->level--);
13985 return NULL;
13986 }
13987 goto done;
13988 }
13989 p->mark = _mark;
13990 D(fprintf(stderr, "%*c%s group[%d-%d]: %s failed!\n", p->level, ' ',
13991 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' (yield_expr | named_expression) ')'"));
13992 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020013993 if (p->call_invalid_rules) { // invalid_group
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030013994 if (p->error_indicator) {
13995 D(p->level--);
13996 return NULL;
13997 }
13998 D(fprintf(stderr, "%*c> group[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_group"));
13999 void *invalid_group_var;
14000 if (
14001 (invalid_group_var = invalid_group_rule(p)) // invalid_group
14002 )
14003 {
14004 D(fprintf(stderr, "%*c+ group[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_group"));
14005 _res = invalid_group_var;
14006 goto done;
14007 }
14008 p->mark = _mark;
14009 D(fprintf(stderr, "%*c%s group[%d-%d]: %s failed!\n", p->level, ' ',
14010 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_group"));
14011 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014012 _res = NULL;
14013 done:
14014 D(p->level--);
14015 return _res;
14016}
14017
Pablo Galindo30ed93b2021-04-13 17:51:21 +010014018// genexp: '(' direct_named_expression for_if_clauses ')' | invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014019static expr_ty
14020genexp_rule(Parser *p)
14021{
14022 D(p->level++);
14023 if (p->error_indicator) {
14024 D(p->level--);
14025 return NULL;
14026 }
14027 expr_ty _res = NULL;
14028 int _mark = p->mark;
14029 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14030 p->error_indicator = 1;
14031 D(p->level--);
14032 return NULL;
14033 }
14034 int _start_lineno = p->tokens[_mark]->lineno;
14035 UNUSED(_start_lineno); // Only used by EXTRA macro
14036 int _start_col_offset = p->tokens[_mark]->col_offset;
14037 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo30ed93b2021-04-13 17:51:21 +010014038 { // '(' direct_named_expression for_if_clauses ')'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014039 if (p->error_indicator) {
14040 D(p->level--);
14041 return NULL;
14042 }
Pablo Galindo30ed93b2021-04-13 17:51:21 +010014043 D(fprintf(stderr, "%*c> genexp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' direct_named_expression for_if_clauses ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014044 Token * _literal;
14045 Token * _literal_1;
14046 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010014047 asdl_comprehension_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014048 if (
14049 (_literal = _PyPegen_expect_token(p, 7)) // token='('
14050 &&
Pablo Galindo30ed93b2021-04-13 17:51:21 +010014051 (a = direct_named_expression_rule(p)) // direct_named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014052 &&
14053 (b = for_if_clauses_rule(p)) // for_if_clauses
14054 &&
14055 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
14056 )
14057 {
Pablo Galindo30ed93b2021-04-13 17:51:21 +010014058 D(fprintf(stderr, "%*c+ genexp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' direct_named_expression for_if_clauses ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014059 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14060 if (_token == NULL) {
14061 D(p->level--);
14062 return NULL;
14063 }
14064 int _end_lineno = _token->end_lineno;
14065 UNUSED(_end_lineno); // Only used by EXTRA macro
14066 int _end_col_offset = _token->end_col_offset;
14067 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014068 _res = _PyAST_GeneratorExp ( a , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014069 if (_res == NULL && PyErr_Occurred()) {
14070 p->error_indicator = 1;
14071 D(p->level--);
14072 return NULL;
14073 }
14074 goto done;
14075 }
14076 p->mark = _mark;
14077 D(fprintf(stderr, "%*c%s genexp[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo30ed93b2021-04-13 17:51:21 +010014078 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' direct_named_expression for_if_clauses ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014079 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014080 if (p->call_invalid_rules) { // invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014081 if (p->error_indicator) {
14082 D(p->level--);
14083 return NULL;
14084 }
14085 D(fprintf(stderr, "%*c> genexp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
14086 void *invalid_comprehension_var;
14087 if (
14088 (invalid_comprehension_var = invalid_comprehension_rule(p)) // invalid_comprehension
14089 )
14090 {
14091 D(fprintf(stderr, "%*c+ genexp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
14092 _res = invalid_comprehension_var;
14093 goto done;
14094 }
14095 p->mark = _mark;
14096 D(fprintf(stderr, "%*c%s genexp[%d-%d]: %s failed!\n", p->level, ' ',
14097 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_comprehension"));
14098 }
14099 _res = NULL;
14100 done:
14101 D(p->level--);
14102 return _res;
14103}
14104
Pablo Galindob0aba1f2020-11-17 01:17:12 +000014105// set: '{' star_named_expressions '}'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014106static expr_ty
14107set_rule(Parser *p)
14108{
14109 D(p->level++);
14110 if (p->error_indicator) {
14111 D(p->level--);
14112 return NULL;
14113 }
14114 expr_ty _res = NULL;
14115 int _mark = p->mark;
14116 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14117 p->error_indicator = 1;
14118 D(p->level--);
14119 return NULL;
14120 }
14121 int _start_lineno = p->tokens[_mark]->lineno;
14122 UNUSED(_start_lineno); // Only used by EXTRA macro
14123 int _start_col_offset = p->tokens[_mark]->col_offset;
14124 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindob0aba1f2020-11-17 01:17:12 +000014125 { // '{' star_named_expressions '}'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014126 if (p->error_indicator) {
14127 D(p->level--);
14128 return NULL;
14129 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000014130 D(fprintf(stderr, "%*c> set[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' star_named_expressions '}'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014131 Token * _literal;
14132 Token * _literal_1;
Pablo Galindoa5634c42020-09-16 19:42:00 +010014133 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014134 if (
14135 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
14136 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000014137 (a = star_named_expressions_rule(p)) // star_named_expressions
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014138 &&
14139 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
14140 )
14141 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000014142 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 +010014143 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
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014152 _res = _PyAST_Set ( a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014153 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 set[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000014162 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' star_named_expressions '}'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014163 }
14164 _res = NULL;
14165 done:
14166 D(p->level--);
14167 return _res;
14168}
14169
Pablo Galindo835f14f2021-01-31 22:52:56 +000014170// setcomp: '{' named_expression for_if_clauses '}' | invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014171static expr_ty
14172setcomp_rule(Parser *p)
14173{
14174 D(p->level++);
14175 if (p->error_indicator) {
14176 D(p->level--);
14177 return NULL;
14178 }
14179 expr_ty _res = NULL;
14180 int _mark = p->mark;
14181 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14182 p->error_indicator = 1;
14183 D(p->level--);
14184 return NULL;
14185 }
14186 int _start_lineno = p->tokens[_mark]->lineno;
14187 UNUSED(_start_lineno); // Only used by EXTRA macro
14188 int _start_col_offset = p->tokens[_mark]->col_offset;
14189 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo835f14f2021-01-31 22:52:56 +000014190 { // '{' named_expression for_if_clauses '}'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014191 if (p->error_indicator) {
14192 D(p->level--);
14193 return NULL;
14194 }
Pablo Galindo835f14f2021-01-31 22:52:56 +000014195 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 +010014196 Token * _literal;
14197 Token * _literal_1;
14198 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010014199 asdl_comprehension_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014200 if (
14201 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
14202 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000014203 (a = named_expression_rule(p)) // named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014204 &&
14205 (b = for_if_clauses_rule(p)) // for_if_clauses
14206 &&
14207 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
14208 )
14209 {
Pablo Galindo835f14f2021-01-31 22:52:56 +000014210 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 +010014211 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14212 if (_token == NULL) {
14213 D(p->level--);
14214 return NULL;
14215 }
14216 int _end_lineno = _token->end_lineno;
14217 UNUSED(_end_lineno); // Only used by EXTRA macro
14218 int _end_col_offset = _token->end_col_offset;
14219 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014220 _res = _PyAST_SetComp ( a , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014221 if (_res == NULL && PyErr_Occurred()) {
14222 p->error_indicator = 1;
14223 D(p->level--);
14224 return NULL;
14225 }
14226 goto done;
14227 }
14228 p->mark = _mark;
14229 D(fprintf(stderr, "%*c%s setcomp[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo835f14f2021-01-31 22:52:56 +000014230 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' named_expression for_if_clauses '}'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014231 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014232 if (p->call_invalid_rules) { // invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014233 if (p->error_indicator) {
14234 D(p->level--);
14235 return NULL;
14236 }
14237 D(fprintf(stderr, "%*c> setcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
14238 void *invalid_comprehension_var;
14239 if (
14240 (invalid_comprehension_var = invalid_comprehension_rule(p)) // invalid_comprehension
14241 )
14242 {
14243 D(fprintf(stderr, "%*c+ setcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
14244 _res = invalid_comprehension_var;
14245 goto done;
14246 }
14247 p->mark = _mark;
14248 D(fprintf(stderr, "%*c%s setcomp[%d-%d]: %s failed!\n", p->level, ' ',
14249 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_comprehension"));
14250 }
14251 _res = NULL;
14252 done:
14253 D(p->level--);
14254 return _res;
14255}
14256
14257// dict: '{' double_starred_kvpairs? '}'
14258static expr_ty
14259dict_rule(Parser *p)
14260{
14261 D(p->level++);
14262 if (p->error_indicator) {
14263 D(p->level--);
14264 return NULL;
14265 }
14266 expr_ty _res = NULL;
14267 int _mark = p->mark;
14268 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14269 p->error_indicator = 1;
14270 D(p->level--);
14271 return NULL;
14272 }
14273 int _start_lineno = p->tokens[_mark]->lineno;
14274 UNUSED(_start_lineno); // Only used by EXTRA macro
14275 int _start_col_offset = p->tokens[_mark]->col_offset;
14276 UNUSED(_start_col_offset); // Only used by EXTRA macro
14277 { // '{' double_starred_kvpairs? '}'
14278 if (p->error_indicator) {
14279 D(p->level--);
14280 return NULL;
14281 }
14282 D(fprintf(stderr, "%*c> dict[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' double_starred_kvpairs? '}'"));
14283 Token * _literal;
14284 Token * _literal_1;
14285 void *a;
14286 if (
14287 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
14288 &&
14289 (a = double_starred_kvpairs_rule(p), 1) // double_starred_kvpairs?
14290 &&
14291 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
14292 )
14293 {
14294 D(fprintf(stderr, "%*c+ dict[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' double_starred_kvpairs? '}'"));
14295 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14296 if (_token == NULL) {
14297 D(p->level--);
14298 return NULL;
14299 }
14300 int _end_lineno = _token->end_lineno;
14301 UNUSED(_end_lineno); // Only used by EXTRA macro
14302 int _end_col_offset = _token->end_col_offset;
14303 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014304 _res = _PyAST_Dict ( CHECK ( asdl_expr_seq * , _PyPegen_get_keys ( p , a ) ) , CHECK ( asdl_expr_seq * , _PyPegen_get_values ( p , a ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014305 if (_res == NULL && PyErr_Occurred()) {
14306 p->error_indicator = 1;
14307 D(p->level--);
14308 return NULL;
14309 }
14310 goto done;
14311 }
14312 p->mark = _mark;
14313 D(fprintf(stderr, "%*c%s dict[%d-%d]: %s failed!\n", p->level, ' ',
14314 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' double_starred_kvpairs? '}'"));
14315 }
14316 _res = NULL;
14317 done:
14318 D(p->level--);
14319 return _res;
14320}
14321
14322// dictcomp: '{' kvpair for_if_clauses '}' | invalid_dict_comprehension
14323static expr_ty
14324dictcomp_rule(Parser *p)
14325{
14326 D(p->level++);
14327 if (p->error_indicator) {
14328 D(p->level--);
14329 return NULL;
14330 }
14331 expr_ty _res = NULL;
14332 int _mark = p->mark;
14333 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14334 p->error_indicator = 1;
14335 D(p->level--);
14336 return NULL;
14337 }
14338 int _start_lineno = p->tokens[_mark]->lineno;
14339 UNUSED(_start_lineno); // Only used by EXTRA macro
14340 int _start_col_offset = p->tokens[_mark]->col_offset;
14341 UNUSED(_start_col_offset); // Only used by EXTRA macro
14342 { // '{' kvpair for_if_clauses '}'
14343 if (p->error_indicator) {
14344 D(p->level--);
14345 return NULL;
14346 }
14347 D(fprintf(stderr, "%*c> dictcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' kvpair for_if_clauses '}'"));
14348 Token * _literal;
14349 Token * _literal_1;
14350 KeyValuePair* a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010014351 asdl_comprehension_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014352 if (
14353 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
14354 &&
14355 (a = kvpair_rule(p)) // kvpair
14356 &&
14357 (b = for_if_clauses_rule(p)) // for_if_clauses
14358 &&
14359 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
14360 )
14361 {
14362 D(fprintf(stderr, "%*c+ dictcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' kvpair for_if_clauses '}'"));
14363 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14364 if (_token == NULL) {
14365 D(p->level--);
14366 return NULL;
14367 }
14368 int _end_lineno = _token->end_lineno;
14369 UNUSED(_end_lineno); // Only used by EXTRA macro
14370 int _end_col_offset = _token->end_col_offset;
14371 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014372 _res = _PyAST_DictComp ( a -> key , a -> value , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014373 if (_res == NULL && PyErr_Occurred()) {
14374 p->error_indicator = 1;
14375 D(p->level--);
14376 return NULL;
14377 }
14378 goto done;
14379 }
14380 p->mark = _mark;
14381 D(fprintf(stderr, "%*c%s dictcomp[%d-%d]: %s failed!\n", p->level, ' ',
14382 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' kvpair for_if_clauses '}'"));
14383 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014384 if (p->call_invalid_rules) { // invalid_dict_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014385 if (p->error_indicator) {
14386 D(p->level--);
14387 return NULL;
14388 }
14389 D(fprintf(stderr, "%*c> dictcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_dict_comprehension"));
14390 void *invalid_dict_comprehension_var;
14391 if (
14392 (invalid_dict_comprehension_var = invalid_dict_comprehension_rule(p)) // invalid_dict_comprehension
14393 )
14394 {
14395 D(fprintf(stderr, "%*c+ dictcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_dict_comprehension"));
14396 _res = invalid_dict_comprehension_var;
14397 goto done;
14398 }
14399 p->mark = _mark;
14400 D(fprintf(stderr, "%*c%s dictcomp[%d-%d]: %s failed!\n", p->level, ' ',
14401 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_dict_comprehension"));
14402 }
14403 _res = NULL;
14404 done:
14405 D(p->level--);
14406 return _res;
14407}
14408
14409// double_starred_kvpairs: ','.double_starred_kvpair+ ','?
14410static asdl_seq*
14411double_starred_kvpairs_rule(Parser *p)
14412{
14413 D(p->level++);
14414 if (p->error_indicator) {
14415 D(p->level--);
14416 return NULL;
14417 }
14418 asdl_seq* _res = NULL;
14419 int _mark = p->mark;
14420 { // ','.double_starred_kvpair+ ','?
14421 if (p->error_indicator) {
14422 D(p->level--);
14423 return NULL;
14424 }
14425 D(fprintf(stderr, "%*c> double_starred_kvpairs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.double_starred_kvpair+ ','?"));
14426 void *_opt_var;
14427 UNUSED(_opt_var); // Silence compiler warnings
14428 asdl_seq * a;
14429 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080014430 (a = _gather_117_rule(p)) // ','.double_starred_kvpair+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014431 &&
14432 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
14433 )
14434 {
14435 D(fprintf(stderr, "%*c+ double_starred_kvpairs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.double_starred_kvpair+ ','?"));
14436 _res = a;
14437 if (_res == NULL && PyErr_Occurred()) {
14438 p->error_indicator = 1;
14439 D(p->level--);
14440 return NULL;
14441 }
14442 goto done;
14443 }
14444 p->mark = _mark;
14445 D(fprintf(stderr, "%*c%s double_starred_kvpairs[%d-%d]: %s failed!\n", p->level, ' ',
14446 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.double_starred_kvpair+ ','?"));
14447 }
14448 _res = NULL;
14449 done:
14450 D(p->level--);
14451 return _res;
14452}
14453
14454// double_starred_kvpair: '**' bitwise_or | kvpair
14455static KeyValuePair*
14456double_starred_kvpair_rule(Parser *p)
14457{
14458 D(p->level++);
14459 if (p->error_indicator) {
14460 D(p->level--);
14461 return NULL;
14462 }
14463 KeyValuePair* _res = NULL;
14464 int _mark = p->mark;
14465 { // '**' bitwise_or
14466 if (p->error_indicator) {
14467 D(p->level--);
14468 return NULL;
14469 }
14470 D(fprintf(stderr, "%*c> double_starred_kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' bitwise_or"));
14471 Token * _literal;
14472 expr_ty a;
14473 if (
14474 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
14475 &&
14476 (a = bitwise_or_rule(p)) // bitwise_or
14477 )
14478 {
14479 D(fprintf(stderr, "%*c+ double_starred_kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' bitwise_or"));
14480 _res = _PyPegen_key_value_pair ( p , NULL , a );
14481 if (_res == NULL && PyErr_Occurred()) {
14482 p->error_indicator = 1;
14483 D(p->level--);
14484 return NULL;
14485 }
14486 goto done;
14487 }
14488 p->mark = _mark;
14489 D(fprintf(stderr, "%*c%s double_starred_kvpair[%d-%d]: %s failed!\n", p->level, ' ',
14490 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' bitwise_or"));
14491 }
14492 { // kvpair
14493 if (p->error_indicator) {
14494 D(p->level--);
14495 return NULL;
14496 }
14497 D(fprintf(stderr, "%*c> double_starred_kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kvpair"));
14498 KeyValuePair* kvpair_var;
14499 if (
14500 (kvpair_var = kvpair_rule(p)) // kvpair
14501 )
14502 {
14503 D(fprintf(stderr, "%*c+ double_starred_kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kvpair"));
14504 _res = kvpair_var;
14505 goto done;
14506 }
14507 p->mark = _mark;
14508 D(fprintf(stderr, "%*c%s double_starred_kvpair[%d-%d]: %s failed!\n", p->level, ' ',
14509 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kvpair"));
14510 }
14511 _res = NULL;
14512 done:
14513 D(p->level--);
14514 return _res;
14515}
14516
14517// kvpair: expression ':' expression
14518static KeyValuePair*
14519kvpair_rule(Parser *p)
14520{
14521 D(p->level++);
14522 if (p->error_indicator) {
14523 D(p->level--);
14524 return NULL;
14525 }
14526 KeyValuePair* _res = NULL;
14527 int _mark = p->mark;
14528 { // expression ':' expression
14529 if (p->error_indicator) {
14530 D(p->level--);
14531 return NULL;
14532 }
14533 D(fprintf(stderr, "%*c> kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' expression"));
14534 Token * _literal;
14535 expr_ty a;
14536 expr_ty b;
14537 if (
14538 (a = expression_rule(p)) // expression
14539 &&
14540 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
14541 &&
14542 (b = expression_rule(p)) // expression
14543 )
14544 {
14545 D(fprintf(stderr, "%*c+ kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':' expression"));
14546 _res = _PyPegen_key_value_pair ( p , a , b );
14547 if (_res == NULL && PyErr_Occurred()) {
14548 p->error_indicator = 1;
14549 D(p->level--);
14550 return NULL;
14551 }
14552 goto done;
14553 }
14554 p->mark = _mark;
14555 D(fprintf(stderr, "%*c%s kvpair[%d-%d]: %s failed!\n", p->level, ' ',
14556 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' expression"));
14557 }
14558 _res = NULL;
14559 done:
14560 D(p->level--);
14561 return _res;
14562}
14563
14564// for_if_clauses: for_if_clause+
Pablo Galindoa5634c42020-09-16 19:42:00 +010014565static asdl_comprehension_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014566for_if_clauses_rule(Parser *p)
14567{
14568 D(p->level++);
14569 if (p->error_indicator) {
14570 D(p->level--);
14571 return NULL;
14572 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010014573 asdl_comprehension_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014574 int _mark = p->mark;
14575 { // for_if_clause+
14576 if (p->error_indicator) {
14577 D(p->level--);
14578 return NULL;
14579 }
14580 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 +010014581 asdl_comprehension_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014582 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080014583 (a = (asdl_comprehension_seq*)_loop1_119_rule(p)) // for_if_clause+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014584 )
14585 {
14586 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 +010014587 _res = a;
14588 if (_res == NULL && PyErr_Occurred()) {
14589 p->error_indicator = 1;
14590 D(p->level--);
14591 return NULL;
14592 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014593 goto done;
14594 }
14595 p->mark = _mark;
14596 D(fprintf(stderr, "%*c%s for_if_clauses[%d-%d]: %s failed!\n", p->level, ' ',
14597 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "for_if_clause+"));
14598 }
14599 _res = NULL;
14600 done:
14601 D(p->level--);
14602 return _res;
14603}
14604
14605// for_if_clause:
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030014606// | ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
14607// | 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
14608// | invalid_for_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014609static comprehension_ty
14610for_if_clause_rule(Parser *p)
14611{
14612 D(p->level++);
14613 if (p->error_indicator) {
14614 D(p->level--);
14615 return NULL;
14616 }
14617 comprehension_ty _res = NULL;
14618 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030014619 { // ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014620 if (p->error_indicator) {
14621 D(p->level--);
14622 return NULL;
14623 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030014624 D(fprintf(stderr, "%*c> for_if_clause[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
14625 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014626 Token * _keyword;
14627 Token * _keyword_1;
14628 expr_ty a;
14629 Token * async_var;
14630 expr_ty b;
Pablo Galindoa5634c42020-09-16 19:42:00 +010014631 asdl_expr_seq* c;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014632 if (
14633 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
14634 &&
14635 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
14636 &&
14637 (a = star_targets_rule(p)) // star_targets
14638 &&
14639 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
14640 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030014641 (_cut_var = 1)
14642 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014643 (b = disjunction_rule(p)) // disjunction
14644 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080014645 (c = (asdl_expr_seq*)_loop0_120_rule(p)) // (('if' disjunction))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014646 )
14647 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030014648 D(fprintf(stderr, "%*c+ for_if_clause[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014649 _res = CHECK_VERSION ( comprehension_ty , 6 , "Async comprehensions are" , _PyAST_comprehension ( a , b , c , 1 , p -> arena ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014650 if (_res == NULL && PyErr_Occurred()) {
14651 p->error_indicator = 1;
14652 D(p->level--);
14653 return NULL;
14654 }
14655 goto done;
14656 }
14657 p->mark = _mark;
14658 D(fprintf(stderr, "%*c%s for_if_clause[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030014659 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
14660 if (_cut_var) {
14661 D(p->level--);
14662 return NULL;
14663 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014664 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030014665 { // 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014666 if (p->error_indicator) {
14667 D(p->level--);
14668 return NULL;
14669 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030014670 D(fprintf(stderr, "%*c> for_if_clause[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
14671 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014672 Token * _keyword;
14673 Token * _keyword_1;
14674 expr_ty a;
14675 expr_ty b;
Pablo Galindoa5634c42020-09-16 19:42:00 +010014676 asdl_expr_seq* c;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014677 if (
14678 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
14679 &&
14680 (a = star_targets_rule(p)) // star_targets
14681 &&
14682 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
14683 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030014684 (_cut_var = 1)
14685 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014686 (b = disjunction_rule(p)) // disjunction
14687 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080014688 (c = (asdl_expr_seq*)_loop0_121_rule(p)) // (('if' disjunction))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014689 )
14690 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030014691 D(fprintf(stderr, "%*c+ for_if_clause[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014692 _res = _PyAST_comprehension ( a , b , c , 0 , p -> arena );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014693 if (_res == NULL && PyErr_Occurred()) {
14694 p->error_indicator = 1;
14695 D(p->level--);
14696 return NULL;
14697 }
14698 goto done;
14699 }
14700 p->mark = _mark;
14701 D(fprintf(stderr, "%*c%s for_if_clause[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030014702 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
14703 if (_cut_var) {
14704 D(p->level--);
14705 return NULL;
14706 }
14707 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014708 if (p->call_invalid_rules) { // invalid_for_target
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030014709 if (p->error_indicator) {
14710 D(p->level--);
14711 return NULL;
14712 }
14713 D(fprintf(stderr, "%*c> for_if_clause[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
14714 void *invalid_for_target_var;
14715 if (
14716 (invalid_for_target_var = invalid_for_target_rule(p)) // invalid_for_target
14717 )
14718 {
14719 D(fprintf(stderr, "%*c+ for_if_clause[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
14720 _res = invalid_for_target_var;
14721 goto done;
14722 }
14723 p->mark = _mark;
14724 D(fprintf(stderr, "%*c%s for_if_clause[%d-%d]: %s failed!\n", p->level, ' ',
14725 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_for_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014726 }
14727 _res = NULL;
14728 done:
14729 D(p->level--);
14730 return _res;
14731}
14732
14733// yield_expr: 'yield' 'from' expression | 'yield' star_expressions?
14734static expr_ty
14735yield_expr_rule(Parser *p)
14736{
14737 D(p->level++);
14738 if (p->error_indicator) {
14739 D(p->level--);
14740 return NULL;
14741 }
14742 expr_ty _res = NULL;
14743 int _mark = p->mark;
14744 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14745 p->error_indicator = 1;
14746 D(p->level--);
14747 return NULL;
14748 }
14749 int _start_lineno = p->tokens[_mark]->lineno;
14750 UNUSED(_start_lineno); // Only used by EXTRA macro
14751 int _start_col_offset = p->tokens[_mark]->col_offset;
14752 UNUSED(_start_col_offset); // Only used by EXTRA macro
14753 { // 'yield' 'from' expression
14754 if (p->error_indicator) {
14755 D(p->level--);
14756 return NULL;
14757 }
14758 D(fprintf(stderr, "%*c> yield_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'yield' 'from' expression"));
14759 Token * _keyword;
14760 Token * _keyword_1;
14761 expr_ty a;
14762 if (
14763 (_keyword = _PyPegen_expect_token(p, 504)) // token='yield'
14764 &&
14765 (_keyword_1 = _PyPegen_expect_token(p, 514)) // token='from'
14766 &&
14767 (a = expression_rule(p)) // expression
14768 )
14769 {
14770 D(fprintf(stderr, "%*c+ yield_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'yield' 'from' expression"));
14771 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14772 if (_token == NULL) {
14773 D(p->level--);
14774 return NULL;
14775 }
14776 int _end_lineno = _token->end_lineno;
14777 UNUSED(_end_lineno); // Only used by EXTRA macro
14778 int _end_col_offset = _token->end_col_offset;
14779 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014780 _res = _PyAST_YieldFrom ( a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014781 if (_res == NULL && PyErr_Occurred()) {
14782 p->error_indicator = 1;
14783 D(p->level--);
14784 return NULL;
14785 }
14786 goto done;
14787 }
14788 p->mark = _mark;
14789 D(fprintf(stderr, "%*c%s yield_expr[%d-%d]: %s failed!\n", p->level, ' ',
14790 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'yield' 'from' expression"));
14791 }
14792 { // 'yield' star_expressions?
14793 if (p->error_indicator) {
14794 D(p->level--);
14795 return NULL;
14796 }
14797 D(fprintf(stderr, "%*c> yield_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'yield' star_expressions?"));
14798 Token * _keyword;
14799 void *a;
14800 if (
14801 (_keyword = _PyPegen_expect_token(p, 504)) // token='yield'
14802 &&
14803 (a = star_expressions_rule(p), 1) // star_expressions?
14804 )
14805 {
14806 D(fprintf(stderr, "%*c+ yield_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'yield' star_expressions?"));
14807 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14808 if (_token == NULL) {
14809 D(p->level--);
14810 return NULL;
14811 }
14812 int _end_lineno = _token->end_lineno;
14813 UNUSED(_end_lineno); // Only used by EXTRA macro
14814 int _end_col_offset = _token->end_col_offset;
14815 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014816 _res = _PyAST_Yield ( a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014817 if (_res == NULL && PyErr_Occurred()) {
14818 p->error_indicator = 1;
14819 D(p->level--);
14820 return NULL;
14821 }
14822 goto done;
14823 }
14824 p->mark = _mark;
14825 D(fprintf(stderr, "%*c%s yield_expr[%d-%d]: %s failed!\n", p->level, ' ',
14826 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'yield' star_expressions?"));
14827 }
14828 _res = NULL;
14829 done:
14830 D(p->level--);
14831 return _res;
14832}
14833
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014834// arguments: args ','? &')' | invalid_arguments
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014835static expr_ty
14836arguments_rule(Parser *p)
14837{
14838 D(p->level++);
14839 if (p->error_indicator) {
14840 D(p->level--);
14841 return NULL;
14842 }
14843 expr_ty _res = NULL;
14844 if (_PyPegen_is_memoized(p, arguments_type, &_res)) {
14845 D(p->level--);
14846 return _res;
14847 }
14848 int _mark = p->mark;
14849 { // args ','? &')'
14850 if (p->error_indicator) {
14851 D(p->level--);
14852 return NULL;
14853 }
14854 D(fprintf(stderr, "%*c> arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args ','? &')'"));
14855 void *_opt_var;
14856 UNUSED(_opt_var); // Silence compiler warnings
14857 expr_ty a;
14858 if (
14859 (a = args_rule(p)) // args
14860 &&
14861 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
14862 &&
14863 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
14864 )
14865 {
14866 D(fprintf(stderr, "%*c+ arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args ','? &')'"));
14867 _res = a;
14868 if (_res == NULL && PyErr_Occurred()) {
14869 p->error_indicator = 1;
14870 D(p->level--);
14871 return NULL;
14872 }
14873 goto done;
14874 }
14875 p->mark = _mark;
14876 D(fprintf(stderr, "%*c%s arguments[%d-%d]: %s failed!\n", p->level, ' ',
14877 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ','? &')'"));
14878 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014879 if (p->call_invalid_rules) { // invalid_arguments
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014880 if (p->error_indicator) {
14881 D(p->level--);
14882 return NULL;
14883 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014884 D(fprintf(stderr, "%*c> arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_arguments"));
14885 void *invalid_arguments_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014886 if (
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014887 (invalid_arguments_var = invalid_arguments_rule(p)) // invalid_arguments
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014888 )
14889 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014890 D(fprintf(stderr, "%*c+ arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_arguments"));
14891 _res = invalid_arguments_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014892 goto done;
14893 }
14894 p->mark = _mark;
14895 D(fprintf(stderr, "%*c%s arguments[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014896 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_arguments"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014897 }
14898 _res = NULL;
14899 done:
14900 _PyPegen_insert_memo(p, _mark, arguments_type, _res);
14901 D(p->level--);
14902 return _res;
14903}
14904
Pablo Galindod9151cb2021-04-13 02:32:33 +010014905// args: ','.(starred_expression | direct_named_expression !'=')+ [',' kwargs] | kwargs
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014906static expr_ty
14907args_rule(Parser *p)
14908{
14909 D(p->level++);
14910 if (p->error_indicator) {
14911 D(p->level--);
14912 return NULL;
14913 }
14914 expr_ty _res = NULL;
14915 int _mark = p->mark;
14916 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14917 p->error_indicator = 1;
14918 D(p->level--);
14919 return NULL;
14920 }
14921 int _start_lineno = p->tokens[_mark]->lineno;
14922 UNUSED(_start_lineno); // Only used by EXTRA macro
14923 int _start_col_offset = p->tokens[_mark]->col_offset;
14924 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindod9151cb2021-04-13 02:32:33 +010014925 { // ','.(starred_expression | direct_named_expression !'=')+ [',' kwargs]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014926 if (p->error_indicator) {
14927 D(p->level--);
14928 return NULL;
14929 }
Pablo Galindod9151cb2021-04-13 02:32:33 +010014930 D(fprintf(stderr, "%*c> args[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.(starred_expression | direct_named_expression !'=')+ [',' kwargs]"));
Pablo Galindoa5634c42020-09-16 19:42:00 +010014931 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014932 void *b;
14933 if (
Pablo Galindod9151cb2021-04-13 02:32:33 +010014934 (a = (asdl_expr_seq*)_gather_122_rule(p)) // ','.(starred_expression | direct_named_expression !'=')+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014935 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080014936 (b = _tmp_124_rule(p), 1) // [',' kwargs]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014937 )
14938 {
Pablo Galindod9151cb2021-04-13 02:32:33 +010014939 D(fprintf(stderr, "%*c+ args[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.(starred_expression | direct_named_expression !'=')+ [',' kwargs]"));
Pablo Galindo315a61f2020-09-03 15:29:32 +010014940 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14941 if (_token == NULL) {
14942 D(p->level--);
14943 return NULL;
14944 }
14945 int _end_lineno = _token->end_lineno;
14946 UNUSED(_end_lineno); // Only used by EXTRA macro
14947 int _end_col_offset = _token->end_col_offset;
14948 UNUSED(_end_col_offset); // Only used by EXTRA macro
14949 _res = _PyPegen_collect_call_seqs ( p , a , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014950 if (_res == NULL && PyErr_Occurred()) {
14951 p->error_indicator = 1;
14952 D(p->level--);
14953 return NULL;
14954 }
14955 goto done;
14956 }
14957 p->mark = _mark;
14958 D(fprintf(stderr, "%*c%s args[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindod9151cb2021-04-13 02:32:33 +010014959 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.(starred_expression | direct_named_expression !'=')+ [',' kwargs]"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014960 }
14961 { // kwargs
14962 if (p->error_indicator) {
14963 D(p->level--);
14964 return NULL;
14965 }
14966 D(fprintf(stderr, "%*c> args[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwargs"));
14967 asdl_seq* a;
14968 if (
14969 (a = kwargs_rule(p)) // kwargs
14970 )
14971 {
14972 D(fprintf(stderr, "%*c+ args[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwargs"));
14973 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14974 if (_token == NULL) {
14975 D(p->level--);
14976 return NULL;
14977 }
14978 int _end_lineno = _token->end_lineno;
14979 UNUSED(_end_lineno); // Only used by EXTRA macro
14980 int _end_col_offset = _token->end_col_offset;
14981 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014982 _res = _PyAST_Call ( _PyPegen_dummy_name ( p ) , CHECK_NULL_ALLOWED ( asdl_expr_seq * , _PyPegen_seq_extract_starred_exprs ( p , a ) ) , CHECK_NULL_ALLOWED ( asdl_keyword_seq * , _PyPegen_seq_delete_starred_exprs ( p , a ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014983 if (_res == NULL && PyErr_Occurred()) {
14984 p->error_indicator = 1;
14985 D(p->level--);
14986 return NULL;
14987 }
14988 goto done;
14989 }
14990 p->mark = _mark;
14991 D(fprintf(stderr, "%*c%s args[%d-%d]: %s failed!\n", p->level, ' ',
14992 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwargs"));
14993 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014994 _res = NULL;
14995 done:
14996 D(p->level--);
14997 return _res;
14998}
14999
15000// kwargs:
15001// | ','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+
15002// | ','.kwarg_or_starred+
15003// | ','.kwarg_or_double_starred+
15004static asdl_seq*
15005kwargs_rule(Parser *p)
15006{
15007 D(p->level++);
15008 if (p->error_indicator) {
15009 D(p->level--);
15010 return NULL;
15011 }
15012 asdl_seq* _res = NULL;
15013 int _mark = p->mark;
15014 { // ','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+
15015 if (p->error_indicator) {
15016 D(p->level--);
15017 return NULL;
15018 }
15019 D(fprintf(stderr, "%*c> kwargs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+"));
15020 Token * _literal;
15021 asdl_seq * a;
15022 asdl_seq * b;
15023 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080015024 (a = _gather_125_rule(p)) // ','.kwarg_or_starred+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015025 &&
15026 (_literal = _PyPegen_expect_token(p, 12)) // token=','
15027 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080015028 (b = _gather_127_rule(p)) // ','.kwarg_or_double_starred+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015029 )
15030 {
15031 D(fprintf(stderr, "%*c+ kwargs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+"));
15032 _res = _PyPegen_join_sequences ( p , a , b );
15033 if (_res == NULL && PyErr_Occurred()) {
15034 p->error_indicator = 1;
15035 D(p->level--);
15036 return NULL;
15037 }
15038 goto done;
15039 }
15040 p->mark = _mark;
15041 D(fprintf(stderr, "%*c%s kwargs[%d-%d]: %s failed!\n", p->level, ' ',
15042 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+"));
15043 }
15044 { // ','.kwarg_or_starred+
15045 if (p->error_indicator) {
15046 D(p->level--);
15047 return NULL;
15048 }
15049 D(fprintf(stderr, "%*c> kwargs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_starred+"));
Brandt Bucher145bf262021-02-26 14:51:55 -080015050 asdl_seq * _gather_129_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015051 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080015052 (_gather_129_var = _gather_129_rule(p)) // ','.kwarg_or_starred+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015053 )
15054 {
15055 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 -080015056 _res = _gather_129_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015057 goto done;
15058 }
15059 p->mark = _mark;
15060 D(fprintf(stderr, "%*c%s kwargs[%d-%d]: %s failed!\n", p->level, ' ',
15061 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.kwarg_or_starred+"));
15062 }
15063 { // ','.kwarg_or_double_starred+
15064 if (p->error_indicator) {
15065 D(p->level--);
15066 return NULL;
15067 }
15068 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 -080015069 asdl_seq * _gather_131_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015070 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080015071 (_gather_131_var = _gather_131_rule(p)) // ','.kwarg_or_double_starred+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015072 )
15073 {
15074 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 -080015075 _res = _gather_131_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015076 goto done;
15077 }
15078 p->mark = _mark;
15079 D(fprintf(stderr, "%*c%s kwargs[%d-%d]: %s failed!\n", p->level, ' ',
15080 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.kwarg_or_double_starred+"));
15081 }
15082 _res = NULL;
15083 done:
15084 D(p->level--);
15085 return _res;
15086}
15087
15088// starred_expression: '*' expression
15089static expr_ty
15090starred_expression_rule(Parser *p)
15091{
15092 D(p->level++);
15093 if (p->error_indicator) {
15094 D(p->level--);
15095 return NULL;
15096 }
15097 expr_ty _res = NULL;
15098 int _mark = p->mark;
15099 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
15100 p->error_indicator = 1;
15101 D(p->level--);
15102 return NULL;
15103 }
15104 int _start_lineno = p->tokens[_mark]->lineno;
15105 UNUSED(_start_lineno); // Only used by EXTRA macro
15106 int _start_col_offset = p->tokens[_mark]->col_offset;
15107 UNUSED(_start_col_offset); // Only used by EXTRA macro
15108 { // '*' expression
15109 if (p->error_indicator) {
15110 D(p->level--);
15111 return NULL;
15112 }
15113 D(fprintf(stderr, "%*c> starred_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' expression"));
15114 Token * _literal;
15115 expr_ty a;
15116 if (
15117 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
15118 &&
15119 (a = expression_rule(p)) // expression
15120 )
15121 {
15122 D(fprintf(stderr, "%*c+ starred_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' expression"));
15123 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15124 if (_token == NULL) {
15125 D(p->level--);
15126 return NULL;
15127 }
15128 int _end_lineno = _token->end_lineno;
15129 UNUSED(_end_lineno); // Only used by EXTRA macro
15130 int _end_col_offset = _token->end_col_offset;
15131 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015132 _res = _PyAST_Starred ( a , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015133 if (_res == NULL && PyErr_Occurred()) {
15134 p->error_indicator = 1;
15135 D(p->level--);
15136 return NULL;
15137 }
15138 goto done;
15139 }
15140 p->mark = _mark;
15141 D(fprintf(stderr, "%*c%s starred_expression[%d-%d]: %s failed!\n", p->level, ' ',
15142 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' expression"));
15143 }
15144 _res = NULL;
15145 done:
15146 D(p->level--);
15147 return _res;
15148}
15149
15150// kwarg_or_starred: NAME '=' expression | starred_expression | invalid_kwarg
15151static KeywordOrStarred*
15152kwarg_or_starred_rule(Parser *p)
15153{
15154 D(p->level++);
15155 if (p->error_indicator) {
15156 D(p->level--);
15157 return NULL;
15158 }
15159 KeywordOrStarred* _res = NULL;
15160 int _mark = p->mark;
15161 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
15162 p->error_indicator = 1;
15163 D(p->level--);
15164 return NULL;
15165 }
15166 int _start_lineno = p->tokens[_mark]->lineno;
15167 UNUSED(_start_lineno); // Only used by EXTRA macro
15168 int _start_col_offset = p->tokens[_mark]->col_offset;
15169 UNUSED(_start_col_offset); // Only used by EXTRA macro
15170 { // NAME '=' expression
15171 if (p->error_indicator) {
15172 D(p->level--);
15173 return NULL;
15174 }
15175 D(fprintf(stderr, "%*c> kwarg_or_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '=' expression"));
15176 Token * _literal;
15177 expr_ty a;
15178 expr_ty b;
15179 if (
15180 (a = _PyPegen_name_token(p)) // NAME
15181 &&
15182 (_literal = _PyPegen_expect_token(p, 22)) // token='='
15183 &&
15184 (b = expression_rule(p)) // expression
15185 )
15186 {
15187 D(fprintf(stderr, "%*c+ kwarg_or_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '=' expression"));
15188 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15189 if (_token == NULL) {
15190 D(p->level--);
15191 return NULL;
15192 }
15193 int _end_lineno = _token->end_lineno;
15194 UNUSED(_end_lineno); // Only used by EXTRA macro
15195 int _end_col_offset = _token->end_col_offset;
15196 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015197 _res = _PyPegen_keyword_or_starred ( p , CHECK ( keyword_ty , _PyAST_keyword ( a -> v . Name . id , b , EXTRA ) ) , 1 );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015198 if (_res == NULL && PyErr_Occurred()) {
15199 p->error_indicator = 1;
15200 D(p->level--);
15201 return NULL;
15202 }
15203 goto done;
15204 }
15205 p->mark = _mark;
15206 D(fprintf(stderr, "%*c%s kwarg_or_starred[%d-%d]: %s failed!\n", p->level, ' ',
15207 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' expression"));
15208 }
15209 { // starred_expression
15210 if (p->error_indicator) {
15211 D(p->level--);
15212 return NULL;
15213 }
15214 D(fprintf(stderr, "%*c> kwarg_or_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "starred_expression"));
15215 expr_ty a;
15216 if (
15217 (a = starred_expression_rule(p)) // starred_expression
15218 )
15219 {
15220 D(fprintf(stderr, "%*c+ kwarg_or_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "starred_expression"));
15221 _res = _PyPegen_keyword_or_starred ( p , a , 0 );
15222 if (_res == NULL && PyErr_Occurred()) {
15223 p->error_indicator = 1;
15224 D(p->level--);
15225 return NULL;
15226 }
15227 goto done;
15228 }
15229 p->mark = _mark;
15230 D(fprintf(stderr, "%*c%s kwarg_or_starred[%d-%d]: %s failed!\n", p->level, ' ',
15231 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "starred_expression"));
15232 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020015233 if (p->call_invalid_rules) { // invalid_kwarg
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015234 if (p->error_indicator) {
15235 D(p->level--);
15236 return NULL;
15237 }
15238 D(fprintf(stderr, "%*c> kwarg_or_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_kwarg"));
15239 void *invalid_kwarg_var;
15240 if (
15241 (invalid_kwarg_var = invalid_kwarg_rule(p)) // invalid_kwarg
15242 )
15243 {
15244 D(fprintf(stderr, "%*c+ kwarg_or_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_kwarg"));
15245 _res = invalid_kwarg_var;
15246 goto done;
15247 }
15248 p->mark = _mark;
15249 D(fprintf(stderr, "%*c%s kwarg_or_starred[%d-%d]: %s failed!\n", p->level, ' ',
15250 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_kwarg"));
15251 }
15252 _res = NULL;
15253 done:
15254 D(p->level--);
15255 return _res;
15256}
15257
15258// kwarg_or_double_starred: NAME '=' expression | '**' expression | invalid_kwarg
15259static KeywordOrStarred*
15260kwarg_or_double_starred_rule(Parser *p)
15261{
15262 D(p->level++);
15263 if (p->error_indicator) {
15264 D(p->level--);
15265 return NULL;
15266 }
15267 KeywordOrStarred* _res = NULL;
15268 int _mark = p->mark;
15269 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
15270 p->error_indicator = 1;
15271 D(p->level--);
15272 return NULL;
15273 }
15274 int _start_lineno = p->tokens[_mark]->lineno;
15275 UNUSED(_start_lineno); // Only used by EXTRA macro
15276 int _start_col_offset = p->tokens[_mark]->col_offset;
15277 UNUSED(_start_col_offset); // Only used by EXTRA macro
15278 { // NAME '=' expression
15279 if (p->error_indicator) {
15280 D(p->level--);
15281 return NULL;
15282 }
15283 D(fprintf(stderr, "%*c> kwarg_or_double_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '=' expression"));
15284 Token * _literal;
15285 expr_ty a;
15286 expr_ty b;
15287 if (
15288 (a = _PyPegen_name_token(p)) // NAME
15289 &&
15290 (_literal = _PyPegen_expect_token(p, 22)) // token='='
15291 &&
15292 (b = expression_rule(p)) // expression
15293 )
15294 {
15295 D(fprintf(stderr, "%*c+ kwarg_or_double_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '=' expression"));
15296 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15297 if (_token == NULL) {
15298 D(p->level--);
15299 return NULL;
15300 }
15301 int _end_lineno = _token->end_lineno;
15302 UNUSED(_end_lineno); // Only used by EXTRA macro
15303 int _end_col_offset = _token->end_col_offset;
15304 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015305 _res = _PyPegen_keyword_or_starred ( p , CHECK ( keyword_ty , _PyAST_keyword ( a -> v . Name . id , b , EXTRA ) ) , 1 );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015306 if (_res == NULL && PyErr_Occurred()) {
15307 p->error_indicator = 1;
15308 D(p->level--);
15309 return NULL;
15310 }
15311 goto done;
15312 }
15313 p->mark = _mark;
15314 D(fprintf(stderr, "%*c%s kwarg_or_double_starred[%d-%d]: %s failed!\n", p->level, ' ',
15315 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' expression"));
15316 }
15317 { // '**' expression
15318 if (p->error_indicator) {
15319 D(p->level--);
15320 return NULL;
15321 }
15322 D(fprintf(stderr, "%*c> kwarg_or_double_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' expression"));
15323 Token * _literal;
15324 expr_ty a;
15325 if (
15326 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
15327 &&
15328 (a = expression_rule(p)) // expression
15329 )
15330 {
15331 D(fprintf(stderr, "%*c+ kwarg_or_double_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' expression"));
15332 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15333 if (_token == NULL) {
15334 D(p->level--);
15335 return NULL;
15336 }
15337 int _end_lineno = _token->end_lineno;
15338 UNUSED(_end_lineno); // Only used by EXTRA macro
15339 int _end_col_offset = _token->end_col_offset;
15340 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015341 _res = _PyPegen_keyword_or_starred ( p , CHECK ( keyword_ty , _PyAST_keyword ( NULL , a , EXTRA ) ) , 1 );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015342 if (_res == NULL && PyErr_Occurred()) {
15343 p->error_indicator = 1;
15344 D(p->level--);
15345 return NULL;
15346 }
15347 goto done;
15348 }
15349 p->mark = _mark;
15350 D(fprintf(stderr, "%*c%s kwarg_or_double_starred[%d-%d]: %s failed!\n", p->level, ' ',
15351 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' expression"));
15352 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020015353 if (p->call_invalid_rules) { // invalid_kwarg
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015354 if (p->error_indicator) {
15355 D(p->level--);
15356 return NULL;
15357 }
15358 D(fprintf(stderr, "%*c> kwarg_or_double_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_kwarg"));
15359 void *invalid_kwarg_var;
15360 if (
15361 (invalid_kwarg_var = invalid_kwarg_rule(p)) // invalid_kwarg
15362 )
15363 {
15364 D(fprintf(stderr, "%*c+ kwarg_or_double_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_kwarg"));
15365 _res = invalid_kwarg_var;
15366 goto done;
15367 }
15368 p->mark = _mark;
15369 D(fprintf(stderr, "%*c%s kwarg_or_double_starred[%d-%d]: %s failed!\n", p->level, ' ',
15370 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_kwarg"));
15371 }
15372 _res = NULL;
15373 done:
15374 D(p->level--);
15375 return _res;
15376}
15377
15378// star_targets: star_target !',' | star_target ((',' star_target))* ','?
15379static expr_ty
15380star_targets_rule(Parser *p)
15381{
15382 D(p->level++);
15383 if (p->error_indicator) {
15384 D(p->level--);
15385 return NULL;
15386 }
15387 expr_ty _res = NULL;
15388 int _mark = p->mark;
15389 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
15390 p->error_indicator = 1;
15391 D(p->level--);
15392 return NULL;
15393 }
15394 int _start_lineno = p->tokens[_mark]->lineno;
15395 UNUSED(_start_lineno); // Only used by EXTRA macro
15396 int _start_col_offset = p->tokens[_mark]->col_offset;
15397 UNUSED(_start_col_offset); // Only used by EXTRA macro
15398 { // star_target !','
15399 if (p->error_indicator) {
15400 D(p->level--);
15401 return NULL;
15402 }
15403 D(fprintf(stderr, "%*c> star_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target !','"));
15404 expr_ty a;
15405 if (
15406 (a = star_target_rule(p)) // star_target
15407 &&
15408 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 12) // token=','
15409 )
15410 {
15411 D(fprintf(stderr, "%*c+ star_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target !','"));
15412 _res = a;
15413 if (_res == NULL && PyErr_Occurred()) {
15414 p->error_indicator = 1;
15415 D(p->level--);
15416 return NULL;
15417 }
15418 goto done;
15419 }
15420 p->mark = _mark;
15421 D(fprintf(stderr, "%*c%s star_targets[%d-%d]: %s failed!\n", p->level, ' ',
15422 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target !','"));
15423 }
15424 { // star_target ((',' star_target))* ','?
15425 if (p->error_indicator) {
15426 D(p->level--);
15427 return NULL;
15428 }
15429 D(fprintf(stderr, "%*c> star_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target ((',' star_target))* ','?"));
15430 void *_opt_var;
15431 UNUSED(_opt_var); // Silence compiler warnings
15432 expr_ty a;
15433 asdl_seq * b;
15434 if (
15435 (a = star_target_rule(p)) // star_target
15436 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080015437 (b = _loop0_133_rule(p)) // ((',' star_target))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015438 &&
15439 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
15440 )
15441 {
15442 D(fprintf(stderr, "%*c+ star_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target ((',' star_target))* ','?"));
15443 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15444 if (_token == NULL) {
15445 D(p->level--);
15446 return NULL;
15447 }
15448 int _end_lineno = _token->end_lineno;
15449 UNUSED(_end_lineno); // Only used by EXTRA macro
15450 int _end_col_offset = _token->end_col_offset;
15451 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015452 _res = _PyAST_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , a , b ) ) , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015453 if (_res == NULL && PyErr_Occurred()) {
15454 p->error_indicator = 1;
15455 D(p->level--);
15456 return NULL;
15457 }
15458 goto done;
15459 }
15460 p->mark = _mark;
15461 D(fprintf(stderr, "%*c%s star_targets[%d-%d]: %s failed!\n", p->level, ' ',
15462 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target ((',' star_target))* ','?"));
15463 }
15464 _res = NULL;
15465 done:
15466 D(p->level--);
15467 return _res;
15468}
15469
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015470// star_targets_list_seq: ','.star_target+ ','?
Pablo Galindoa5634c42020-09-16 19:42:00 +010015471static asdl_expr_seq*
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015472star_targets_list_seq_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015473{
15474 D(p->level++);
15475 if (p->error_indicator) {
15476 D(p->level--);
15477 return NULL;
15478 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010015479 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015480 int _mark = p->mark;
15481 { // ','.star_target+ ','?
15482 if (p->error_indicator) {
15483 D(p->level--);
15484 return NULL;
15485 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015486 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 +010015487 void *_opt_var;
15488 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +010015489 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015490 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080015491 (a = (asdl_expr_seq*)_gather_134_rule(p)) // ','.star_target+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015492 &&
15493 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
15494 )
15495 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015496 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 +010015497 _res = a;
15498 if (_res == NULL && PyErr_Occurred()) {
15499 p->error_indicator = 1;
15500 D(p->level--);
15501 return NULL;
15502 }
15503 goto done;
15504 }
15505 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015506 D(fprintf(stderr, "%*c%s star_targets_list_seq[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015507 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.star_target+ ','?"));
15508 }
15509 _res = NULL;
15510 done:
15511 D(p->level--);
15512 return _res;
15513}
15514
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015515// star_targets_tuple_seq: star_target ((',' star_target))+ ','? | star_target ','
15516static asdl_expr_seq*
15517star_targets_tuple_seq_rule(Parser *p)
15518{
15519 D(p->level++);
15520 if (p->error_indicator) {
15521 D(p->level--);
15522 return NULL;
15523 }
15524 asdl_expr_seq* _res = NULL;
15525 int _mark = p->mark;
15526 { // star_target ((',' star_target))+ ','?
15527 if (p->error_indicator) {
15528 D(p->level--);
15529 return NULL;
15530 }
15531 D(fprintf(stderr, "%*c> star_targets_tuple_seq[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target ((',' star_target))+ ','?"));
15532 void *_opt_var;
15533 UNUSED(_opt_var); // Silence compiler warnings
15534 expr_ty a;
15535 asdl_seq * b;
15536 if (
15537 (a = star_target_rule(p)) // star_target
15538 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080015539 (b = _loop1_136_rule(p)) // ((',' star_target))+
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015540 &&
15541 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
15542 )
15543 {
15544 D(fprintf(stderr, "%*c+ star_targets_tuple_seq[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target ((',' star_target))+ ','?"));
15545 _res = ( asdl_expr_seq * ) _PyPegen_seq_insert_in_front ( p , a , b );
15546 if (_res == NULL && PyErr_Occurred()) {
15547 p->error_indicator = 1;
15548 D(p->level--);
15549 return NULL;
15550 }
15551 goto done;
15552 }
15553 p->mark = _mark;
15554 D(fprintf(stderr, "%*c%s star_targets_tuple_seq[%d-%d]: %s failed!\n", p->level, ' ',
15555 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target ((',' star_target))+ ','?"));
15556 }
15557 { // star_target ','
15558 if (p->error_indicator) {
15559 D(p->level--);
15560 return NULL;
15561 }
15562 D(fprintf(stderr, "%*c> star_targets_tuple_seq[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target ','"));
15563 Token * _literal;
15564 expr_ty a;
15565 if (
15566 (a = star_target_rule(p)) // star_target
15567 &&
15568 (_literal = _PyPegen_expect_token(p, 12)) // token=','
15569 )
15570 {
15571 D(fprintf(stderr, "%*c+ star_targets_tuple_seq[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target ','"));
15572 _res = ( asdl_expr_seq * ) _PyPegen_singleton_seq ( p , a );
15573 if (_res == NULL && PyErr_Occurred()) {
15574 p->error_indicator = 1;
15575 D(p->level--);
15576 return NULL;
15577 }
15578 goto done;
15579 }
15580 p->mark = _mark;
15581 D(fprintf(stderr, "%*c%s star_targets_tuple_seq[%d-%d]: %s failed!\n", p->level, ' ',
15582 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target ','"));
15583 }
15584 _res = NULL;
15585 done:
15586 D(p->level--);
15587 return _res;
15588}
15589
15590// star_target: '*' (!'*' star_target) | target_with_star_atom
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015591static expr_ty
15592star_target_rule(Parser *p)
15593{
15594 D(p->level++);
15595 if (p->error_indicator) {
15596 D(p->level--);
15597 return NULL;
15598 }
15599 expr_ty _res = NULL;
15600 if (_PyPegen_is_memoized(p, star_target_type, &_res)) {
15601 D(p->level--);
15602 return _res;
15603 }
15604 int _mark = p->mark;
15605 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
15606 p->error_indicator = 1;
15607 D(p->level--);
15608 return NULL;
15609 }
15610 int _start_lineno = p->tokens[_mark]->lineno;
15611 UNUSED(_start_lineno); // Only used by EXTRA macro
15612 int _start_col_offset = p->tokens[_mark]->col_offset;
15613 UNUSED(_start_col_offset); // Only used by EXTRA macro
15614 { // '*' (!'*' star_target)
15615 if (p->error_indicator) {
15616 D(p->level--);
15617 return NULL;
15618 }
15619 D(fprintf(stderr, "%*c> star_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (!'*' star_target)"));
15620 Token * _literal;
15621 void *a;
15622 if (
15623 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
15624 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080015625 (a = _tmp_137_rule(p)) // !'*' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015626 )
15627 {
15628 D(fprintf(stderr, "%*c+ star_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (!'*' star_target)"));
15629 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15630 if (_token == NULL) {
15631 D(p->level--);
15632 return NULL;
15633 }
15634 int _end_lineno = _token->end_lineno;
15635 UNUSED(_end_lineno); // Only used by EXTRA macro
15636 int _end_col_offset = _token->end_col_offset;
15637 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015638 _res = _PyAST_Starred ( CHECK ( expr_ty , _PyPegen_set_expr_context ( p , a , Store ) ) , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015639 if (_res == NULL && PyErr_Occurred()) {
15640 p->error_indicator = 1;
15641 D(p->level--);
15642 return NULL;
15643 }
15644 goto done;
15645 }
15646 p->mark = _mark;
15647 D(fprintf(stderr, "%*c%s star_target[%d-%d]: %s failed!\n", p->level, ' ',
15648 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' (!'*' star_target)"));
15649 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015650 { // target_with_star_atom
15651 if (p->error_indicator) {
15652 D(p->level--);
15653 return NULL;
15654 }
15655 D(fprintf(stderr, "%*c> star_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "target_with_star_atom"));
15656 expr_ty target_with_star_atom_var;
15657 if (
15658 (target_with_star_atom_var = target_with_star_atom_rule(p)) // target_with_star_atom
15659 )
15660 {
15661 D(fprintf(stderr, "%*c+ star_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "target_with_star_atom"));
15662 _res = target_with_star_atom_var;
15663 goto done;
15664 }
15665 p->mark = _mark;
15666 D(fprintf(stderr, "%*c%s star_target[%d-%d]: %s failed!\n", p->level, ' ',
15667 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "target_with_star_atom"));
15668 }
15669 _res = NULL;
15670 done:
15671 _PyPegen_insert_memo(p, _mark, star_target_type, _res);
15672 D(p->level--);
15673 return _res;
15674}
15675
15676// target_with_star_atom:
15677// | t_primary '.' NAME !t_lookahead
15678// | t_primary '[' slices ']' !t_lookahead
15679// | star_atom
15680static expr_ty
15681target_with_star_atom_rule(Parser *p)
15682{
15683 D(p->level++);
15684 if (p->error_indicator) {
15685 D(p->level--);
15686 return NULL;
15687 }
15688 expr_ty _res = NULL;
15689 if (_PyPegen_is_memoized(p, target_with_star_atom_type, &_res)) {
15690 D(p->level--);
15691 return _res;
15692 }
15693 int _mark = p->mark;
15694 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
15695 p->error_indicator = 1;
15696 D(p->level--);
15697 return NULL;
15698 }
15699 int _start_lineno = p->tokens[_mark]->lineno;
15700 UNUSED(_start_lineno); // Only used by EXTRA macro
15701 int _start_col_offset = p->tokens[_mark]->col_offset;
15702 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015703 { // t_primary '.' NAME !t_lookahead
15704 if (p->error_indicator) {
15705 D(p->level--);
15706 return NULL;
15707 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015708 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 +010015709 Token * _literal;
15710 expr_ty a;
15711 expr_ty b;
15712 if (
15713 (a = t_primary_rule(p)) // t_primary
15714 &&
15715 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
15716 &&
15717 (b = _PyPegen_name_token(p)) // NAME
15718 &&
15719 _PyPegen_lookahead(0, t_lookahead_rule, p)
15720 )
15721 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015722 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 +010015723 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15724 if (_token == NULL) {
15725 D(p->level--);
15726 return NULL;
15727 }
15728 int _end_lineno = _token->end_lineno;
15729 UNUSED(_end_lineno); // Only used by EXTRA macro
15730 int _end_col_offset = _token->end_col_offset;
15731 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015732 _res = _PyAST_Attribute ( a , b -> v . Name . id , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015733 if (_res == NULL && PyErr_Occurred()) {
15734 p->error_indicator = 1;
15735 D(p->level--);
15736 return NULL;
15737 }
15738 goto done;
15739 }
15740 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015741 D(fprintf(stderr, "%*c%s target_with_star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015742 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
15743 }
15744 { // t_primary '[' slices ']' !t_lookahead
15745 if (p->error_indicator) {
15746 D(p->level--);
15747 return NULL;
15748 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015749 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 +010015750 Token * _literal;
15751 Token * _literal_1;
15752 expr_ty a;
15753 expr_ty b;
15754 if (
15755 (a = t_primary_rule(p)) // t_primary
15756 &&
15757 (_literal = _PyPegen_expect_token(p, 9)) // token='['
15758 &&
15759 (b = slices_rule(p)) // slices
15760 &&
15761 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
15762 &&
15763 _PyPegen_lookahead(0, t_lookahead_rule, p)
15764 )
15765 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015766 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 +010015767 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15768 if (_token == NULL) {
15769 D(p->level--);
15770 return NULL;
15771 }
15772 int _end_lineno = _token->end_lineno;
15773 UNUSED(_end_lineno); // Only used by EXTRA macro
15774 int _end_col_offset = _token->end_col_offset;
15775 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015776 _res = _PyAST_Subscript ( a , b , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015777 if (_res == NULL && PyErr_Occurred()) {
15778 p->error_indicator = 1;
15779 D(p->level--);
15780 return NULL;
15781 }
15782 goto done;
15783 }
15784 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015785 D(fprintf(stderr, "%*c%s target_with_star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015786 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
15787 }
15788 { // star_atom
15789 if (p->error_indicator) {
15790 D(p->level--);
15791 return NULL;
15792 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015793 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 +010015794 expr_ty star_atom_var;
15795 if (
15796 (star_atom_var = star_atom_rule(p)) // star_atom
15797 )
15798 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015799 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 +010015800 _res = star_atom_var;
15801 goto done;
15802 }
15803 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015804 D(fprintf(stderr, "%*c%s target_with_star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015805 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_atom"));
15806 }
15807 _res = NULL;
15808 done:
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015809 _PyPegen_insert_memo(p, _mark, target_with_star_atom_type, _res);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015810 D(p->level--);
15811 return _res;
15812}
15813
15814// star_atom:
15815// | NAME
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015816// | '(' target_with_star_atom ')'
15817// | '(' star_targets_tuple_seq? ')'
15818// | '[' star_targets_list_seq? ']'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015819static expr_ty
15820star_atom_rule(Parser *p)
15821{
15822 D(p->level++);
15823 if (p->error_indicator) {
15824 D(p->level--);
15825 return NULL;
15826 }
15827 expr_ty _res = NULL;
15828 int _mark = p->mark;
15829 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
15830 p->error_indicator = 1;
15831 D(p->level--);
15832 return NULL;
15833 }
15834 int _start_lineno = p->tokens[_mark]->lineno;
15835 UNUSED(_start_lineno); // Only used by EXTRA macro
15836 int _start_col_offset = p->tokens[_mark]->col_offset;
15837 UNUSED(_start_col_offset); // Only used by EXTRA macro
15838 { // NAME
15839 if (p->error_indicator) {
15840 D(p->level--);
15841 return NULL;
15842 }
15843 D(fprintf(stderr, "%*c> star_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
15844 expr_ty a;
15845 if (
15846 (a = _PyPegen_name_token(p)) // NAME
15847 )
15848 {
15849 D(fprintf(stderr, "%*c+ star_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
15850 _res = _PyPegen_set_expr_context ( p , a , Store );
15851 if (_res == NULL && PyErr_Occurred()) {
15852 p->error_indicator = 1;
15853 D(p->level--);
15854 return NULL;
15855 }
15856 goto done;
15857 }
15858 p->mark = _mark;
15859 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
15860 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
15861 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015862 { // '(' target_with_star_atom ')'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015863 if (p->error_indicator) {
15864 D(p->level--);
15865 return NULL;
15866 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015867 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 +010015868 Token * _literal;
15869 Token * _literal_1;
15870 expr_ty a;
15871 if (
15872 (_literal = _PyPegen_expect_token(p, 7)) // token='('
15873 &&
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015874 (a = target_with_star_atom_rule(p)) // target_with_star_atom
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015875 &&
15876 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
15877 )
15878 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015879 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 +010015880 _res = _PyPegen_set_expr_context ( p , a , Store );
15881 if (_res == NULL && PyErr_Occurred()) {
15882 p->error_indicator = 1;
15883 D(p->level--);
15884 return NULL;
15885 }
15886 goto done;
15887 }
15888 p->mark = _mark;
15889 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015890 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' target_with_star_atom ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015891 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015892 { // '(' star_targets_tuple_seq? ')'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015893 if (p->error_indicator) {
15894 D(p->level--);
15895 return NULL;
15896 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015897 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 +010015898 Token * _literal;
15899 Token * _literal_1;
15900 void *a;
15901 if (
15902 (_literal = _PyPegen_expect_token(p, 7)) // token='('
15903 &&
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015904 (a = star_targets_tuple_seq_rule(p), 1) // star_targets_tuple_seq?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015905 &&
15906 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
15907 )
15908 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015909 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 +010015910 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15911 if (_token == NULL) {
15912 D(p->level--);
15913 return NULL;
15914 }
15915 int _end_lineno = _token->end_lineno;
15916 UNUSED(_end_lineno); // Only used by EXTRA macro
15917 int _end_col_offset = _token->end_col_offset;
15918 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015919 _res = _PyAST_Tuple ( a , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015920 if (_res == NULL && PyErr_Occurred()) {
15921 p->error_indicator = 1;
15922 D(p->level--);
15923 return NULL;
15924 }
15925 goto done;
15926 }
15927 p->mark = _mark;
15928 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015929 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' star_targets_tuple_seq? ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015930 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015931 { // '[' star_targets_list_seq? ']'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015932 if (p->error_indicator) {
15933 D(p->level--);
15934 return NULL;
15935 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015936 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 +010015937 Token * _literal;
15938 Token * _literal_1;
15939 void *a;
15940 if (
15941 (_literal = _PyPegen_expect_token(p, 9)) // token='['
15942 &&
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015943 (a = star_targets_list_seq_rule(p), 1) // star_targets_list_seq?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015944 &&
15945 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
15946 )
15947 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015948 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 +010015949 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15950 if (_token == NULL) {
15951 D(p->level--);
15952 return NULL;
15953 }
15954 int _end_lineno = _token->end_lineno;
15955 UNUSED(_end_lineno); // Only used by EXTRA macro
15956 int _end_col_offset = _token->end_col_offset;
15957 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015958 _res = _PyAST_List ( a , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015959 if (_res == NULL && PyErr_Occurred()) {
15960 p->error_indicator = 1;
15961 D(p->level--);
15962 return NULL;
15963 }
15964 goto done;
15965 }
15966 p->mark = _mark;
15967 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015968 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' star_targets_list_seq? ']'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015969 }
15970 _res = NULL;
15971 done:
15972 D(p->level--);
15973 return _res;
15974}
15975
15976// single_target: single_subscript_attribute_target | NAME | '(' single_target ')'
15977static expr_ty
15978single_target_rule(Parser *p)
15979{
15980 D(p->level++);
15981 if (p->error_indicator) {
15982 D(p->level--);
15983 return NULL;
15984 }
15985 expr_ty _res = NULL;
15986 int _mark = p->mark;
15987 { // single_subscript_attribute_target
15988 if (p->error_indicator) {
15989 D(p->level--);
15990 return NULL;
15991 }
15992 D(fprintf(stderr, "%*c> single_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "single_subscript_attribute_target"));
15993 expr_ty single_subscript_attribute_target_var;
15994 if (
15995 (single_subscript_attribute_target_var = single_subscript_attribute_target_rule(p)) // single_subscript_attribute_target
15996 )
15997 {
15998 D(fprintf(stderr, "%*c+ single_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "single_subscript_attribute_target"));
15999 _res = single_subscript_attribute_target_var;
16000 goto done;
16001 }
16002 p->mark = _mark;
16003 D(fprintf(stderr, "%*c%s single_target[%d-%d]: %s failed!\n", p->level, ' ',
16004 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "single_subscript_attribute_target"));
16005 }
16006 { // NAME
16007 if (p->error_indicator) {
16008 D(p->level--);
16009 return NULL;
16010 }
16011 D(fprintf(stderr, "%*c> single_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
16012 expr_ty a;
16013 if (
16014 (a = _PyPegen_name_token(p)) // NAME
16015 )
16016 {
16017 D(fprintf(stderr, "%*c+ single_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
16018 _res = _PyPegen_set_expr_context ( p , a , Store );
16019 if (_res == NULL && PyErr_Occurred()) {
16020 p->error_indicator = 1;
16021 D(p->level--);
16022 return NULL;
16023 }
16024 goto done;
16025 }
16026 p->mark = _mark;
16027 D(fprintf(stderr, "%*c%s single_target[%d-%d]: %s failed!\n", p->level, ' ',
16028 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
16029 }
16030 { // '(' single_target ')'
16031 if (p->error_indicator) {
16032 D(p->level--);
16033 return NULL;
16034 }
16035 D(fprintf(stderr, "%*c> single_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
16036 Token * _literal;
16037 Token * _literal_1;
16038 expr_ty a;
16039 if (
16040 (_literal = _PyPegen_expect_token(p, 7)) // token='('
16041 &&
16042 (a = single_target_rule(p)) // single_target
16043 &&
16044 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
16045 )
16046 {
16047 D(fprintf(stderr, "%*c+ single_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
16048 _res = a;
16049 if (_res == NULL && PyErr_Occurred()) {
16050 p->error_indicator = 1;
16051 D(p->level--);
16052 return NULL;
16053 }
16054 goto done;
16055 }
16056 p->mark = _mark;
16057 D(fprintf(stderr, "%*c%s single_target[%d-%d]: %s failed!\n", p->level, ' ',
16058 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' single_target ')'"));
16059 }
16060 _res = NULL;
16061 done:
16062 D(p->level--);
16063 return _res;
16064}
16065
16066// single_subscript_attribute_target:
16067// | t_primary '.' NAME !t_lookahead
16068// | t_primary '[' slices ']' !t_lookahead
16069static expr_ty
16070single_subscript_attribute_target_rule(Parser *p)
16071{
16072 D(p->level++);
16073 if (p->error_indicator) {
16074 D(p->level--);
16075 return NULL;
16076 }
16077 expr_ty _res = NULL;
16078 int _mark = p->mark;
16079 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
16080 p->error_indicator = 1;
16081 D(p->level--);
16082 return NULL;
16083 }
16084 int _start_lineno = p->tokens[_mark]->lineno;
16085 UNUSED(_start_lineno); // Only used by EXTRA macro
16086 int _start_col_offset = p->tokens[_mark]->col_offset;
16087 UNUSED(_start_col_offset); // Only used by EXTRA macro
16088 { // t_primary '.' NAME !t_lookahead
16089 if (p->error_indicator) {
16090 D(p->level--);
16091 return NULL;
16092 }
16093 D(fprintf(stderr, "%*c> single_subscript_attribute_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
16094 Token * _literal;
16095 expr_ty a;
16096 expr_ty b;
16097 if (
16098 (a = t_primary_rule(p)) // t_primary
16099 &&
16100 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
16101 &&
16102 (b = _PyPegen_name_token(p)) // NAME
16103 &&
16104 _PyPegen_lookahead(0, t_lookahead_rule, p)
16105 )
16106 {
16107 D(fprintf(stderr, "%*c+ single_subscript_attribute_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
16108 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16109 if (_token == NULL) {
16110 D(p->level--);
16111 return NULL;
16112 }
16113 int _end_lineno = _token->end_lineno;
16114 UNUSED(_end_lineno); // Only used by EXTRA macro
16115 int _end_col_offset = _token->end_col_offset;
16116 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016117 _res = _PyAST_Attribute ( a , b -> v . Name . id , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016118 if (_res == NULL && PyErr_Occurred()) {
16119 p->error_indicator = 1;
16120 D(p->level--);
16121 return NULL;
16122 }
16123 goto done;
16124 }
16125 p->mark = _mark;
16126 D(fprintf(stderr, "%*c%s single_subscript_attribute_target[%d-%d]: %s failed!\n", p->level, ' ',
16127 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
16128 }
16129 { // t_primary '[' slices ']' !t_lookahead
16130 if (p->error_indicator) {
16131 D(p->level--);
16132 return NULL;
16133 }
16134 D(fprintf(stderr, "%*c> single_subscript_attribute_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
16135 Token * _literal;
16136 Token * _literal_1;
16137 expr_ty a;
16138 expr_ty b;
16139 if (
16140 (a = t_primary_rule(p)) // t_primary
16141 &&
16142 (_literal = _PyPegen_expect_token(p, 9)) // token='['
16143 &&
16144 (b = slices_rule(p)) // slices
16145 &&
16146 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
16147 &&
16148 _PyPegen_lookahead(0, t_lookahead_rule, p)
16149 )
16150 {
16151 D(fprintf(stderr, "%*c+ single_subscript_attribute_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
16152 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16153 if (_token == NULL) {
16154 D(p->level--);
16155 return NULL;
16156 }
16157 int _end_lineno = _token->end_lineno;
16158 UNUSED(_end_lineno); // Only used by EXTRA macro
16159 int _end_col_offset = _token->end_col_offset;
16160 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016161 _res = _PyAST_Subscript ( a , b , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016162 if (_res == NULL && PyErr_Occurred()) {
16163 p->error_indicator = 1;
16164 D(p->level--);
16165 return NULL;
16166 }
16167 goto done;
16168 }
16169 p->mark = _mark;
16170 D(fprintf(stderr, "%*c%s single_subscript_attribute_target[%d-%d]: %s failed!\n", p->level, ' ',
16171 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
16172 }
16173 _res = NULL;
16174 done:
16175 D(p->level--);
16176 return _res;
16177}
16178
16179// del_targets: ','.del_target+ ','?
Pablo Galindoa5634c42020-09-16 19:42:00 +010016180static asdl_expr_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016181del_targets_rule(Parser *p)
16182{
16183 D(p->level++);
16184 if (p->error_indicator) {
16185 D(p->level--);
16186 return NULL;
16187 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010016188 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016189 int _mark = p->mark;
16190 { // ','.del_target+ ','?
16191 if (p->error_indicator) {
16192 D(p->level--);
16193 return NULL;
16194 }
16195 D(fprintf(stderr, "%*c> del_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.del_target+ ','?"));
16196 void *_opt_var;
16197 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +010016198 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016199 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080016200 (a = (asdl_expr_seq*)_gather_138_rule(p)) // ','.del_target+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016201 &&
16202 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
16203 )
16204 {
16205 D(fprintf(stderr, "%*c+ del_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.del_target+ ','?"));
16206 _res = a;
16207 if (_res == NULL && PyErr_Occurred()) {
16208 p->error_indicator = 1;
16209 D(p->level--);
16210 return NULL;
16211 }
16212 goto done;
16213 }
16214 p->mark = _mark;
16215 D(fprintf(stderr, "%*c%s del_targets[%d-%d]: %s failed!\n", p->level, ' ',
16216 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.del_target+ ','?"));
16217 }
16218 _res = NULL;
16219 done:
16220 D(p->level--);
16221 return _res;
16222}
16223
16224// del_target:
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016225// | t_primary '.' NAME !t_lookahead
16226// | t_primary '[' slices ']' !t_lookahead
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016227// | del_t_atom
16228static expr_ty
16229del_target_rule(Parser *p)
16230{
16231 D(p->level++);
16232 if (p->error_indicator) {
16233 D(p->level--);
16234 return NULL;
16235 }
16236 expr_ty _res = NULL;
16237 if (_PyPegen_is_memoized(p, del_target_type, &_res)) {
16238 D(p->level--);
16239 return _res;
16240 }
16241 int _mark = p->mark;
16242 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
16243 p->error_indicator = 1;
16244 D(p->level--);
16245 return NULL;
16246 }
16247 int _start_lineno = p->tokens[_mark]->lineno;
16248 UNUSED(_start_lineno); // Only used by EXTRA macro
16249 int _start_col_offset = p->tokens[_mark]->col_offset;
16250 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016251 { // t_primary '.' NAME !t_lookahead
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016252 if (p->error_indicator) {
16253 D(p->level--);
16254 return NULL;
16255 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016256 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 +010016257 Token * _literal;
16258 expr_ty a;
16259 expr_ty b;
16260 if (
16261 (a = t_primary_rule(p)) // t_primary
16262 &&
16263 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
16264 &&
16265 (b = _PyPegen_name_token(p)) // NAME
16266 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016267 _PyPegen_lookahead(0, t_lookahead_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016268 )
16269 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016270 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 +010016271 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16272 if (_token == NULL) {
16273 D(p->level--);
16274 return NULL;
16275 }
16276 int _end_lineno = _token->end_lineno;
16277 UNUSED(_end_lineno); // Only used by EXTRA macro
16278 int _end_col_offset = _token->end_col_offset;
16279 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016280 _res = _PyAST_Attribute ( a , b -> v . Name . id , Del , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016281 if (_res == NULL && PyErr_Occurred()) {
16282 p->error_indicator = 1;
16283 D(p->level--);
16284 return NULL;
16285 }
16286 goto done;
16287 }
16288 p->mark = _mark;
16289 D(fprintf(stderr, "%*c%s del_target[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016290 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016291 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016292 { // t_primary '[' slices ']' !t_lookahead
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016293 if (p->error_indicator) {
16294 D(p->level--);
16295 return NULL;
16296 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016297 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 +010016298 Token * _literal;
16299 Token * _literal_1;
16300 expr_ty a;
16301 expr_ty b;
16302 if (
16303 (a = t_primary_rule(p)) // t_primary
16304 &&
16305 (_literal = _PyPegen_expect_token(p, 9)) // token='['
16306 &&
16307 (b = slices_rule(p)) // slices
16308 &&
16309 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
16310 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016311 _PyPegen_lookahead(0, t_lookahead_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016312 )
16313 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016314 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 +010016315 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16316 if (_token == NULL) {
16317 D(p->level--);
16318 return NULL;
16319 }
16320 int _end_lineno = _token->end_lineno;
16321 UNUSED(_end_lineno); // Only used by EXTRA macro
16322 int _end_col_offset = _token->end_col_offset;
16323 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016324 _res = _PyAST_Subscript ( a , b , Del , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016325 if (_res == NULL && PyErr_Occurred()) {
16326 p->error_indicator = 1;
16327 D(p->level--);
16328 return NULL;
16329 }
16330 goto done;
16331 }
16332 p->mark = _mark;
16333 D(fprintf(stderr, "%*c%s del_target[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016334 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016335 }
16336 { // del_t_atom
16337 if (p->error_indicator) {
16338 D(p->level--);
16339 return NULL;
16340 }
16341 D(fprintf(stderr, "%*c> del_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "del_t_atom"));
16342 expr_ty del_t_atom_var;
16343 if (
16344 (del_t_atom_var = del_t_atom_rule(p)) // del_t_atom
16345 )
16346 {
16347 D(fprintf(stderr, "%*c+ del_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "del_t_atom"));
16348 _res = del_t_atom_var;
16349 goto done;
16350 }
16351 p->mark = _mark;
16352 D(fprintf(stderr, "%*c%s del_target[%d-%d]: %s failed!\n", p->level, ' ',
16353 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "del_t_atom"));
16354 }
16355 _res = NULL;
16356 done:
16357 _PyPegen_insert_memo(p, _mark, del_target_type, _res);
16358 D(p->level--);
16359 return _res;
16360}
16361
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016362// del_t_atom: NAME | '(' del_target ')' | '(' del_targets? ')' | '[' del_targets? ']'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016363static expr_ty
16364del_t_atom_rule(Parser *p)
16365{
16366 D(p->level++);
16367 if (p->error_indicator) {
16368 D(p->level--);
16369 return NULL;
16370 }
16371 expr_ty _res = NULL;
16372 int _mark = p->mark;
16373 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
16374 p->error_indicator = 1;
16375 D(p->level--);
16376 return NULL;
16377 }
16378 int _start_lineno = p->tokens[_mark]->lineno;
16379 UNUSED(_start_lineno); // Only used by EXTRA macro
16380 int _start_col_offset = p->tokens[_mark]->col_offset;
16381 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016382 { // NAME
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016383 if (p->error_indicator) {
16384 D(p->level--);
16385 return NULL;
16386 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016387 D(fprintf(stderr, "%*c> del_t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016388 expr_ty a;
16389 if (
16390 (a = _PyPegen_name_token(p)) // NAME
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016391 )
16392 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016393 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 +010016394 _res = _PyPegen_set_expr_context ( p , a , Del );
16395 if (_res == NULL && PyErr_Occurred()) {
16396 p->error_indicator = 1;
16397 D(p->level--);
16398 return NULL;
16399 }
16400 goto done;
16401 }
16402 p->mark = _mark;
16403 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016404 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016405 }
16406 { // '(' del_target ')'
16407 if (p->error_indicator) {
16408 D(p->level--);
16409 return NULL;
16410 }
16411 D(fprintf(stderr, "%*c> del_t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' del_target ')'"));
16412 Token * _literal;
16413 Token * _literal_1;
16414 expr_ty a;
16415 if (
16416 (_literal = _PyPegen_expect_token(p, 7)) // token='('
16417 &&
16418 (a = del_target_rule(p)) // del_target
16419 &&
16420 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
16421 )
16422 {
16423 D(fprintf(stderr, "%*c+ del_t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' del_target ')'"));
16424 _res = _PyPegen_set_expr_context ( p , a , Del );
16425 if (_res == NULL && PyErr_Occurred()) {
16426 p->error_indicator = 1;
16427 D(p->level--);
16428 return NULL;
16429 }
16430 goto done;
16431 }
16432 p->mark = _mark;
16433 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
16434 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' del_target ')'"));
16435 }
16436 { // '(' del_targets? ')'
16437 if (p->error_indicator) {
16438 D(p->level--);
16439 return NULL;
16440 }
16441 D(fprintf(stderr, "%*c> del_t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' del_targets? ')'"));
16442 Token * _literal;
16443 Token * _literal_1;
16444 void *a;
16445 if (
16446 (_literal = _PyPegen_expect_token(p, 7)) // token='('
16447 &&
16448 (a = del_targets_rule(p), 1) // del_targets?
16449 &&
16450 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
16451 )
16452 {
16453 D(fprintf(stderr, "%*c+ del_t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' del_targets? ')'"));
16454 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16455 if (_token == NULL) {
16456 D(p->level--);
16457 return NULL;
16458 }
16459 int _end_lineno = _token->end_lineno;
16460 UNUSED(_end_lineno); // Only used by EXTRA macro
16461 int _end_col_offset = _token->end_col_offset;
16462 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016463 _res = _PyAST_Tuple ( a , Del , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016464 if (_res == NULL && PyErr_Occurred()) {
16465 p->error_indicator = 1;
16466 D(p->level--);
16467 return NULL;
16468 }
16469 goto done;
16470 }
16471 p->mark = _mark;
16472 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
16473 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' del_targets? ')'"));
16474 }
16475 { // '[' del_targets? ']'
16476 if (p->error_indicator) {
16477 D(p->level--);
16478 return NULL;
16479 }
16480 D(fprintf(stderr, "%*c> del_t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' del_targets? ']'"));
16481 Token * _literal;
16482 Token * _literal_1;
16483 void *a;
16484 if (
16485 (_literal = _PyPegen_expect_token(p, 9)) // token='['
16486 &&
16487 (a = del_targets_rule(p), 1) // del_targets?
16488 &&
16489 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
16490 )
16491 {
16492 D(fprintf(stderr, "%*c+ del_t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' del_targets? ']'"));
16493 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16494 if (_token == NULL) {
16495 D(p->level--);
16496 return NULL;
16497 }
16498 int _end_lineno = _token->end_lineno;
16499 UNUSED(_end_lineno); // Only used by EXTRA macro
16500 int _end_col_offset = _token->end_col_offset;
16501 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016502 _res = _PyAST_List ( a , Del , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016503 if (_res == NULL && PyErr_Occurred()) {
16504 p->error_indicator = 1;
16505 D(p->level--);
16506 return NULL;
16507 }
16508 goto done;
16509 }
16510 p->mark = _mark;
16511 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
16512 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' del_targets? ']'"));
16513 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016514 _res = NULL;
16515 done:
16516 D(p->level--);
16517 return _res;
16518}
16519
16520// targets: ','.target+ ','?
Pablo Galindoa5634c42020-09-16 19:42:00 +010016521static asdl_expr_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016522targets_rule(Parser *p)
16523{
16524 D(p->level++);
16525 if (p->error_indicator) {
16526 D(p->level--);
16527 return NULL;
16528 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010016529 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016530 int _mark = p->mark;
16531 { // ','.target+ ','?
16532 if (p->error_indicator) {
16533 D(p->level--);
16534 return NULL;
16535 }
16536 D(fprintf(stderr, "%*c> targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.target+ ','?"));
16537 void *_opt_var;
16538 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +010016539 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016540 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080016541 (a = (asdl_expr_seq*)_gather_140_rule(p)) // ','.target+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016542 &&
16543 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
16544 )
16545 {
16546 D(fprintf(stderr, "%*c+ targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.target+ ','?"));
16547 _res = a;
16548 if (_res == NULL && PyErr_Occurred()) {
16549 p->error_indicator = 1;
16550 D(p->level--);
16551 return NULL;
16552 }
16553 goto done;
16554 }
16555 p->mark = _mark;
16556 D(fprintf(stderr, "%*c%s targets[%d-%d]: %s failed!\n", p->level, ' ',
16557 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.target+ ','?"));
16558 }
16559 _res = NULL;
16560 done:
16561 D(p->level--);
16562 return _res;
16563}
16564
16565// target:
16566// | t_primary '.' NAME !t_lookahead
16567// | t_primary '[' slices ']' !t_lookahead
16568// | t_atom
16569static expr_ty
16570target_rule(Parser *p)
16571{
16572 D(p->level++);
16573 if (p->error_indicator) {
16574 D(p->level--);
16575 return NULL;
16576 }
16577 expr_ty _res = NULL;
16578 if (_PyPegen_is_memoized(p, target_type, &_res)) {
16579 D(p->level--);
16580 return _res;
16581 }
16582 int _mark = p->mark;
16583 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
16584 p->error_indicator = 1;
16585 D(p->level--);
16586 return NULL;
16587 }
16588 int _start_lineno = p->tokens[_mark]->lineno;
16589 UNUSED(_start_lineno); // Only used by EXTRA macro
16590 int _start_col_offset = p->tokens[_mark]->col_offset;
16591 UNUSED(_start_col_offset); // Only used by EXTRA macro
16592 { // t_primary '.' NAME !t_lookahead
16593 if (p->error_indicator) {
16594 D(p->level--);
16595 return NULL;
16596 }
16597 D(fprintf(stderr, "%*c> target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
16598 Token * _literal;
16599 expr_ty a;
16600 expr_ty b;
16601 if (
16602 (a = t_primary_rule(p)) // t_primary
16603 &&
16604 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
16605 &&
16606 (b = _PyPegen_name_token(p)) // NAME
16607 &&
16608 _PyPegen_lookahead(0, t_lookahead_rule, p)
16609 )
16610 {
16611 D(fprintf(stderr, "%*c+ target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
16612 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16613 if (_token == NULL) {
16614 D(p->level--);
16615 return NULL;
16616 }
16617 int _end_lineno = _token->end_lineno;
16618 UNUSED(_end_lineno); // Only used by EXTRA macro
16619 int _end_col_offset = _token->end_col_offset;
16620 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016621 _res = _PyAST_Attribute ( a , b -> v . Name . id , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016622 if (_res == NULL && PyErr_Occurred()) {
16623 p->error_indicator = 1;
16624 D(p->level--);
16625 return NULL;
16626 }
16627 goto done;
16628 }
16629 p->mark = _mark;
16630 D(fprintf(stderr, "%*c%s target[%d-%d]: %s failed!\n", p->level, ' ',
16631 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
16632 }
16633 { // t_primary '[' slices ']' !t_lookahead
16634 if (p->error_indicator) {
16635 D(p->level--);
16636 return NULL;
16637 }
16638 D(fprintf(stderr, "%*c> target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
16639 Token * _literal;
16640 Token * _literal_1;
16641 expr_ty a;
16642 expr_ty b;
16643 if (
16644 (a = t_primary_rule(p)) // t_primary
16645 &&
16646 (_literal = _PyPegen_expect_token(p, 9)) // token='['
16647 &&
16648 (b = slices_rule(p)) // slices
16649 &&
16650 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
16651 &&
16652 _PyPegen_lookahead(0, t_lookahead_rule, p)
16653 )
16654 {
16655 D(fprintf(stderr, "%*c+ target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
16656 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16657 if (_token == NULL) {
16658 D(p->level--);
16659 return NULL;
16660 }
16661 int _end_lineno = _token->end_lineno;
16662 UNUSED(_end_lineno); // Only used by EXTRA macro
16663 int _end_col_offset = _token->end_col_offset;
16664 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016665 _res = _PyAST_Subscript ( a , b , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016666 if (_res == NULL && PyErr_Occurred()) {
16667 p->error_indicator = 1;
16668 D(p->level--);
16669 return NULL;
16670 }
16671 goto done;
16672 }
16673 p->mark = _mark;
16674 D(fprintf(stderr, "%*c%s target[%d-%d]: %s failed!\n", p->level, ' ',
16675 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
16676 }
16677 { // t_atom
16678 if (p->error_indicator) {
16679 D(p->level--);
16680 return NULL;
16681 }
16682 D(fprintf(stderr, "%*c> target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_atom"));
16683 expr_ty t_atom_var;
16684 if (
16685 (t_atom_var = t_atom_rule(p)) // t_atom
16686 )
16687 {
16688 D(fprintf(stderr, "%*c+ target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_atom"));
16689 _res = t_atom_var;
16690 goto done;
16691 }
16692 p->mark = _mark;
16693 D(fprintf(stderr, "%*c%s target[%d-%d]: %s failed!\n", p->level, ' ',
16694 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_atom"));
16695 }
16696 _res = NULL;
16697 done:
16698 _PyPegen_insert_memo(p, _mark, target_type, _res);
16699 D(p->level--);
16700 return _res;
16701}
16702
16703// Left-recursive
16704// t_primary:
16705// | t_primary '.' NAME &t_lookahead
16706// | t_primary '[' slices ']' &t_lookahead
16707// | t_primary genexp &t_lookahead
16708// | t_primary '(' arguments? ')' &t_lookahead
16709// | atom &t_lookahead
16710static expr_ty t_primary_raw(Parser *);
16711static expr_ty
16712t_primary_rule(Parser *p)
16713{
16714 D(p->level++);
16715 expr_ty _res = NULL;
16716 if (_PyPegen_is_memoized(p, t_primary_type, &_res)) {
16717 D(p->level--);
16718 return _res;
16719 }
16720 int _mark = p->mark;
16721 int _resmark = p->mark;
16722 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080016723 int tmpvar_9 = _PyPegen_update_memo(p, _mark, t_primary_type, _res);
16724 if (tmpvar_9) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016725 D(p->level--);
16726 return _res;
16727 }
16728 p->mark = _mark;
16729 void *_raw = t_primary_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020016730 if (p->error_indicator)
16731 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016732 if (_raw == NULL || p->mark <= _resmark)
16733 break;
16734 _resmark = p->mark;
16735 _res = _raw;
16736 }
16737 p->mark = _resmark;
16738 D(p->level--);
16739 return _res;
16740}
16741static expr_ty
16742t_primary_raw(Parser *p)
16743{
16744 D(p->level++);
16745 if (p->error_indicator) {
16746 D(p->level--);
16747 return NULL;
16748 }
16749 expr_ty _res = NULL;
16750 int _mark = p->mark;
16751 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
16752 p->error_indicator = 1;
16753 D(p->level--);
16754 return NULL;
16755 }
16756 int _start_lineno = p->tokens[_mark]->lineno;
16757 UNUSED(_start_lineno); // Only used by EXTRA macro
16758 int _start_col_offset = p->tokens[_mark]->col_offset;
16759 UNUSED(_start_col_offset); // Only used by EXTRA macro
16760 { // t_primary '.' NAME &t_lookahead
16761 if (p->error_indicator) {
16762 D(p->level--);
16763 return NULL;
16764 }
16765 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME &t_lookahead"));
16766 Token * _literal;
16767 expr_ty a;
16768 expr_ty b;
16769 if (
16770 (a = t_primary_rule(p)) // t_primary
16771 &&
16772 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
16773 &&
16774 (b = _PyPegen_name_token(p)) // NAME
16775 &&
16776 _PyPegen_lookahead(1, t_lookahead_rule, p)
16777 )
16778 {
16779 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME &t_lookahead"));
16780 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16781 if (_token == NULL) {
16782 D(p->level--);
16783 return NULL;
16784 }
16785 int _end_lineno = _token->end_lineno;
16786 UNUSED(_end_lineno); // Only used by EXTRA macro
16787 int _end_col_offset = _token->end_col_offset;
16788 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016789 _res = _PyAST_Attribute ( a , b -> v . Name . id , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016790 if (_res == NULL && PyErr_Occurred()) {
16791 p->error_indicator = 1;
16792 D(p->level--);
16793 return NULL;
16794 }
16795 goto done;
16796 }
16797 p->mark = _mark;
16798 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
16799 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME &t_lookahead"));
16800 }
16801 { // t_primary '[' slices ']' &t_lookahead
16802 if (p->error_indicator) {
16803 D(p->level--);
16804 return NULL;
16805 }
16806 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' &t_lookahead"));
16807 Token * _literal;
16808 Token * _literal_1;
16809 expr_ty a;
16810 expr_ty b;
16811 if (
16812 (a = t_primary_rule(p)) // t_primary
16813 &&
16814 (_literal = _PyPegen_expect_token(p, 9)) // token='['
16815 &&
16816 (b = slices_rule(p)) // slices
16817 &&
16818 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
16819 &&
16820 _PyPegen_lookahead(1, t_lookahead_rule, p)
16821 )
16822 {
16823 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' &t_lookahead"));
16824 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16825 if (_token == NULL) {
16826 D(p->level--);
16827 return NULL;
16828 }
16829 int _end_lineno = _token->end_lineno;
16830 UNUSED(_end_lineno); // Only used by EXTRA macro
16831 int _end_col_offset = _token->end_col_offset;
16832 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016833 _res = _PyAST_Subscript ( a , b , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016834 if (_res == NULL && PyErr_Occurred()) {
16835 p->error_indicator = 1;
16836 D(p->level--);
16837 return NULL;
16838 }
16839 goto done;
16840 }
16841 p->mark = _mark;
16842 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
16843 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' &t_lookahead"));
16844 }
16845 { // t_primary genexp &t_lookahead
16846 if (p->error_indicator) {
16847 D(p->level--);
16848 return NULL;
16849 }
16850 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary genexp &t_lookahead"));
16851 expr_ty a;
16852 expr_ty b;
16853 if (
16854 (a = t_primary_rule(p)) // t_primary
16855 &&
16856 (b = genexp_rule(p)) // genexp
16857 &&
16858 _PyPegen_lookahead(1, t_lookahead_rule, p)
16859 )
16860 {
16861 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary genexp &t_lookahead"));
16862 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16863 if (_token == NULL) {
16864 D(p->level--);
16865 return NULL;
16866 }
16867 int _end_lineno = _token->end_lineno;
16868 UNUSED(_end_lineno); // Only used by EXTRA macro
16869 int _end_col_offset = _token->end_col_offset;
16870 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016871 _res = _PyAST_Call ( a , CHECK ( asdl_expr_seq * , ( asdl_expr_seq * ) _PyPegen_singleton_seq ( p , b ) ) , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016872 if (_res == NULL && PyErr_Occurred()) {
16873 p->error_indicator = 1;
16874 D(p->level--);
16875 return NULL;
16876 }
16877 goto done;
16878 }
16879 p->mark = _mark;
16880 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
16881 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary genexp &t_lookahead"));
16882 }
16883 { // t_primary '(' arguments? ')' &t_lookahead
16884 if (p->error_indicator) {
16885 D(p->level--);
16886 return NULL;
16887 }
16888 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '(' arguments? ')' &t_lookahead"));
16889 Token * _literal;
16890 Token * _literal_1;
16891 expr_ty a;
16892 void *b;
16893 if (
16894 (a = t_primary_rule(p)) // t_primary
16895 &&
16896 (_literal = _PyPegen_expect_token(p, 7)) // token='('
16897 &&
16898 (b = arguments_rule(p), 1) // arguments?
16899 &&
16900 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
16901 &&
16902 _PyPegen_lookahead(1, t_lookahead_rule, p)
16903 )
16904 {
16905 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '(' arguments? ')' &t_lookahead"));
16906 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16907 if (_token == NULL) {
16908 D(p->level--);
16909 return NULL;
16910 }
16911 int _end_lineno = _token->end_lineno;
16912 UNUSED(_end_lineno); // Only used by EXTRA macro
16913 int _end_col_offset = _token->end_col_offset;
16914 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016915 _res = _PyAST_Call ( a , ( b ) ? ( ( expr_ty ) b ) -> v . Call . args : NULL , ( b ) ? ( ( expr_ty ) b ) -> v . Call . keywords : NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016916 if (_res == NULL && PyErr_Occurred()) {
16917 p->error_indicator = 1;
16918 D(p->level--);
16919 return NULL;
16920 }
16921 goto done;
16922 }
16923 p->mark = _mark;
16924 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
16925 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '(' arguments? ')' &t_lookahead"));
16926 }
16927 { // atom &t_lookahead
16928 if (p->error_indicator) {
16929 D(p->level--);
16930 return NULL;
16931 }
16932 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "atom &t_lookahead"));
16933 expr_ty a;
16934 if (
16935 (a = atom_rule(p)) // atom
16936 &&
16937 _PyPegen_lookahead(1, t_lookahead_rule, p)
16938 )
16939 {
16940 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "atom &t_lookahead"));
16941 _res = a;
16942 if (_res == NULL && PyErr_Occurred()) {
16943 p->error_indicator = 1;
16944 D(p->level--);
16945 return NULL;
16946 }
16947 goto done;
16948 }
16949 p->mark = _mark;
16950 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
16951 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "atom &t_lookahead"));
16952 }
16953 _res = NULL;
16954 done:
16955 D(p->level--);
16956 return _res;
16957}
16958
16959// t_lookahead: '(' | '[' | '.'
16960static void *
16961t_lookahead_rule(Parser *p)
16962{
16963 D(p->level++);
16964 if (p->error_indicator) {
16965 D(p->level--);
16966 return NULL;
16967 }
16968 void * _res = NULL;
16969 int _mark = p->mark;
16970 { // '('
16971 if (p->error_indicator) {
16972 D(p->level--);
16973 return NULL;
16974 }
16975 D(fprintf(stderr, "%*c> t_lookahead[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('"));
16976 Token * _literal;
16977 if (
16978 (_literal = _PyPegen_expect_token(p, 7)) // token='('
16979 )
16980 {
16981 D(fprintf(stderr, "%*c+ t_lookahead[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('"));
16982 _res = _literal;
16983 goto done;
16984 }
16985 p->mark = _mark;
16986 D(fprintf(stderr, "%*c%s t_lookahead[%d-%d]: %s failed!\n", p->level, ' ',
16987 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('"));
16988 }
16989 { // '['
16990 if (p->error_indicator) {
16991 D(p->level--);
16992 return NULL;
16993 }
16994 D(fprintf(stderr, "%*c> t_lookahead[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['"));
16995 Token * _literal;
16996 if (
16997 (_literal = _PyPegen_expect_token(p, 9)) // token='['
16998 )
16999 {
17000 D(fprintf(stderr, "%*c+ t_lookahead[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['"));
17001 _res = _literal;
17002 goto done;
17003 }
17004 p->mark = _mark;
17005 D(fprintf(stderr, "%*c%s t_lookahead[%d-%d]: %s failed!\n", p->level, ' ',
17006 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['"));
17007 }
17008 { // '.'
17009 if (p->error_indicator) {
17010 D(p->level--);
17011 return NULL;
17012 }
17013 D(fprintf(stderr, "%*c> t_lookahead[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
17014 Token * _literal;
17015 if (
17016 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
17017 )
17018 {
17019 D(fprintf(stderr, "%*c+ t_lookahead[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
17020 _res = _literal;
17021 goto done;
17022 }
17023 p->mark = _mark;
17024 D(fprintf(stderr, "%*c%s t_lookahead[%d-%d]: %s failed!\n", p->level, ' ',
17025 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
17026 }
17027 _res = NULL;
17028 done:
17029 D(p->level--);
17030 return _res;
17031}
17032
17033// t_atom: NAME | '(' target ')' | '(' targets? ')' | '[' targets? ']'
17034static expr_ty
17035t_atom_rule(Parser *p)
17036{
17037 D(p->level++);
17038 if (p->error_indicator) {
17039 D(p->level--);
17040 return NULL;
17041 }
17042 expr_ty _res = NULL;
17043 int _mark = p->mark;
17044 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
17045 p->error_indicator = 1;
17046 D(p->level--);
17047 return NULL;
17048 }
17049 int _start_lineno = p->tokens[_mark]->lineno;
17050 UNUSED(_start_lineno); // Only used by EXTRA macro
17051 int _start_col_offset = p->tokens[_mark]->col_offset;
17052 UNUSED(_start_col_offset); // Only used by EXTRA macro
17053 { // NAME
17054 if (p->error_indicator) {
17055 D(p->level--);
17056 return NULL;
17057 }
17058 D(fprintf(stderr, "%*c> t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
17059 expr_ty a;
17060 if (
17061 (a = _PyPegen_name_token(p)) // NAME
17062 )
17063 {
17064 D(fprintf(stderr, "%*c+ t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
17065 _res = _PyPegen_set_expr_context ( p , a , Store );
17066 if (_res == NULL && PyErr_Occurred()) {
17067 p->error_indicator = 1;
17068 D(p->level--);
17069 return NULL;
17070 }
17071 goto done;
17072 }
17073 p->mark = _mark;
17074 D(fprintf(stderr, "%*c%s t_atom[%d-%d]: %s failed!\n", p->level, ' ',
17075 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
17076 }
17077 { // '(' target ')'
17078 if (p->error_indicator) {
17079 D(p->level--);
17080 return NULL;
17081 }
17082 D(fprintf(stderr, "%*c> t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' target ')'"));
17083 Token * _literal;
17084 Token * _literal_1;
17085 expr_ty a;
17086 if (
17087 (_literal = _PyPegen_expect_token(p, 7)) // token='('
17088 &&
17089 (a = target_rule(p)) // target
17090 &&
17091 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
17092 )
17093 {
17094 D(fprintf(stderr, "%*c+ t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' target ')'"));
17095 _res = _PyPegen_set_expr_context ( p , a , Store );
17096 if (_res == NULL && PyErr_Occurred()) {
17097 p->error_indicator = 1;
17098 D(p->level--);
17099 return NULL;
17100 }
17101 goto done;
17102 }
17103 p->mark = _mark;
17104 D(fprintf(stderr, "%*c%s t_atom[%d-%d]: %s failed!\n", p->level, ' ',
17105 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' target ')'"));
17106 }
17107 { // '(' targets? ')'
17108 if (p->error_indicator) {
17109 D(p->level--);
17110 return NULL;
17111 }
17112 D(fprintf(stderr, "%*c> t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' targets? ')'"));
17113 Token * _literal;
17114 Token * _literal_1;
17115 void *b;
17116 if (
17117 (_literal = _PyPegen_expect_token(p, 7)) // token='('
17118 &&
17119 (b = targets_rule(p), 1) // targets?
17120 &&
17121 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
17122 )
17123 {
17124 D(fprintf(stderr, "%*c+ t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' targets? ')'"));
17125 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17126 if (_token == NULL) {
17127 D(p->level--);
17128 return NULL;
17129 }
17130 int _end_lineno = _token->end_lineno;
17131 UNUSED(_end_lineno); // Only used by EXTRA macro
17132 int _end_col_offset = _token->end_col_offset;
17133 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017134 _res = _PyAST_Tuple ( b , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017135 if (_res == NULL && PyErr_Occurred()) {
17136 p->error_indicator = 1;
17137 D(p->level--);
17138 return NULL;
17139 }
17140 goto done;
17141 }
17142 p->mark = _mark;
17143 D(fprintf(stderr, "%*c%s t_atom[%d-%d]: %s failed!\n", p->level, ' ',
17144 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' targets? ')'"));
17145 }
17146 { // '[' targets? ']'
17147 if (p->error_indicator) {
17148 D(p->level--);
17149 return NULL;
17150 }
17151 D(fprintf(stderr, "%*c> t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' targets? ']'"));
17152 Token * _literal;
17153 Token * _literal_1;
17154 void *b;
17155 if (
17156 (_literal = _PyPegen_expect_token(p, 9)) // token='['
17157 &&
17158 (b = targets_rule(p), 1) // targets?
17159 &&
17160 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
17161 )
17162 {
17163 D(fprintf(stderr, "%*c+ t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' targets? ']'"));
17164 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17165 if (_token == NULL) {
17166 D(p->level--);
17167 return NULL;
17168 }
17169 int _end_lineno = _token->end_lineno;
17170 UNUSED(_end_lineno); // Only used by EXTRA macro
17171 int _end_col_offset = _token->end_col_offset;
17172 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017173 _res = _PyAST_List ( b , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017174 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 t_atom[%d-%d]: %s failed!\n", p->level, ' ',
17183 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' targets? ']'"));
17184 }
17185 _res = NULL;
17186 done:
17187 D(p->level--);
17188 return _res;
17189}
17190
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017191// invalid_arguments:
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017192// | args ',' '*'
17193// | expression for_if_clauses ',' [args | expression for_if_clauses]
17194// | args for_if_clauses
17195// | args ',' expression for_if_clauses
17196// | args ',' args
17197static void *
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017198invalid_arguments_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017199{
17200 D(p->level++);
17201 if (p->error_indicator) {
17202 D(p->level--);
17203 return NULL;
17204 }
17205 void * _res = NULL;
17206 int _mark = p->mark;
17207 { // args ',' '*'
17208 if (p->error_indicator) {
17209 D(p->level--);
17210 return NULL;
17211 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017212 D(fprintf(stderr, "%*c> invalid_arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args ',' '*'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017213 Token * _literal;
17214 Token * _literal_1;
17215 expr_ty args_var;
17216 if (
17217 (args_var = args_rule(p)) // args
17218 &&
17219 (_literal = _PyPegen_expect_token(p, 12)) // token=','
17220 &&
17221 (_literal_1 = _PyPegen_expect_token(p, 16)) // token='*'
17222 )
17223 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017224 D(fprintf(stderr, "%*c+ invalid_arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args ',' '*'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017225 _res = RAISE_SYNTAX_ERROR ( "iterable argument unpacking follows keyword argument unpacking" );
17226 if (_res == NULL && PyErr_Occurred()) {
17227 p->error_indicator = 1;
17228 D(p->level--);
17229 return NULL;
17230 }
17231 goto done;
17232 }
17233 p->mark = _mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017234 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017235 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ',' '*'"));
17236 }
17237 { // expression for_if_clauses ',' [args | expression for_if_clauses]
17238 if (p->error_indicator) {
17239 D(p->level--);
17240 return NULL;
17241 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017242 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 +010017243 Token * _literal;
17244 void *_opt_var;
17245 UNUSED(_opt_var); // Silence compiler warnings
17246 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010017247 asdl_comprehension_seq* for_if_clauses_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017248 if (
17249 (a = expression_rule(p)) // expression
17250 &&
17251 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
17252 &&
17253 (_literal = _PyPegen_expect_token(p, 12)) // token=','
17254 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080017255 (_opt_var = _tmp_142_rule(p), 1) // [args | expression for_if_clauses]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017256 )
17257 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017258 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 +010017259 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "Generator expression must be parenthesized" );
17260 if (_res == NULL && PyErr_Occurred()) {
17261 p->error_indicator = 1;
17262 D(p->level--);
17263 return NULL;
17264 }
17265 goto done;
17266 }
17267 p->mark = _mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017268 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017269 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression for_if_clauses ',' [args | expression for_if_clauses]"));
17270 }
17271 { // args for_if_clauses
17272 if (p->error_indicator) {
17273 D(p->level--);
17274 return NULL;
17275 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017276 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 +010017277 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010017278 asdl_comprehension_seq* for_if_clauses_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017279 if (
17280 (a = args_rule(p)) // args
17281 &&
17282 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
17283 )
17284 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017285 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 +010017286 _res = _PyPegen_nonparen_genexp_in_call ( p , a );
17287 if (_res == NULL && PyErr_Occurred()) {
17288 p->error_indicator = 1;
17289 D(p->level--);
17290 return NULL;
17291 }
17292 goto done;
17293 }
17294 p->mark = _mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017295 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017296 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args for_if_clauses"));
17297 }
17298 { // args ',' expression for_if_clauses
17299 if (p->error_indicator) {
17300 D(p->level--);
17301 return NULL;
17302 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017303 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 +010017304 Token * _literal;
17305 expr_ty a;
17306 expr_ty args_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +010017307 asdl_comprehension_seq* for_if_clauses_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017308 if (
17309 (args_var = args_rule(p)) // args
17310 &&
17311 (_literal = _PyPegen_expect_token(p, 12)) // token=','
17312 &&
17313 (a = expression_rule(p)) // expression
17314 &&
17315 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
17316 )
17317 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017318 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 +010017319 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "Generator expression must be parenthesized" );
17320 if (_res == NULL && PyErr_Occurred()) {
17321 p->error_indicator = 1;
17322 D(p->level--);
17323 return NULL;
17324 }
17325 goto done;
17326 }
17327 p->mark = _mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017328 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017329 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ',' expression for_if_clauses"));
17330 }
17331 { // args ',' args
17332 if (p->error_indicator) {
17333 D(p->level--);
17334 return NULL;
17335 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017336 D(fprintf(stderr, "%*c> invalid_arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args ',' args"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017337 Token * _literal;
17338 expr_ty a;
17339 expr_ty args_var;
17340 if (
17341 (a = args_rule(p)) // args
17342 &&
17343 (_literal = _PyPegen_expect_token(p, 12)) // token=','
17344 &&
17345 (args_var = args_rule(p)) // args
17346 )
17347 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017348 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 +010017349 _res = _PyPegen_arguments_parsing_error ( p , a );
17350 if (_res == NULL && PyErr_Occurred()) {
17351 p->error_indicator = 1;
17352 D(p->level--);
17353 return NULL;
17354 }
17355 goto done;
17356 }
17357 p->mark = _mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017358 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017359 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ',' args"));
17360 }
17361 _res = NULL;
17362 done:
17363 D(p->level--);
17364 return _res;
17365}
17366
17367// invalid_kwarg: expression '='
17368static void *
17369invalid_kwarg_rule(Parser *p)
17370{
17371 D(p->level++);
17372 if (p->error_indicator) {
17373 D(p->level--);
17374 return NULL;
17375 }
17376 void * _res = NULL;
17377 int _mark = p->mark;
17378 { // expression '='
17379 if (p->error_indicator) {
17380 D(p->level--);
17381 return NULL;
17382 }
17383 D(fprintf(stderr, "%*c> invalid_kwarg[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression '='"));
Pablo Galindo43c4fb62020-12-13 16:46:48 +000017384 Token * a;
17385 expr_ty expression_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017386 if (
Pablo Galindo43c4fb62020-12-13 16:46:48 +000017387 (expression_var = expression_rule(p)) // expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017388 &&
Pablo Galindo43c4fb62020-12-13 16:46:48 +000017389 (a = _PyPegen_expect_token(p, 22)) // token='='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017390 )
17391 {
17392 D(fprintf(stderr, "%*c+ invalid_kwarg[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression '='"));
17393 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "expression cannot contain assignment, perhaps you meant \"==\"?" );
17394 if (_res == NULL && PyErr_Occurred()) {
17395 p->error_indicator = 1;
17396 D(p->level--);
17397 return NULL;
17398 }
17399 goto done;
17400 }
17401 p->mark = _mark;
17402 D(fprintf(stderr, "%*c%s invalid_kwarg[%d-%d]: %s failed!\n", p->level, ' ',
17403 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression '='"));
17404 }
17405 _res = NULL;
17406 done:
17407 D(p->level--);
17408 return _res;
17409}
17410
Pablo Galindob86ed8e2021-04-12 16:59:30 +010017411// invalid_named_expression:
17412// | expression ':=' expression
17413// | NAME '=' bitwise_or !('=' | ':=' | ',')
17414// | !(list | tuple | genexp | 'True' | 'None' | 'False') bitwise_or '=' bitwise_or !('=' | ':=' | ',')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017415static void *
17416invalid_named_expression_rule(Parser *p)
17417{
17418 D(p->level++);
17419 if (p->error_indicator) {
17420 D(p->level--);
17421 return NULL;
17422 }
17423 void * _res = NULL;
17424 int _mark = p->mark;
17425 { // expression ':=' expression
17426 if (p->error_indicator) {
17427 D(p->level--);
17428 return NULL;
17429 }
17430 D(fprintf(stderr, "%*c> invalid_named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':=' expression"));
17431 Token * _literal;
17432 expr_ty a;
17433 expr_ty expression_var;
17434 if (
17435 (a = expression_rule(p)) // expression
17436 &&
17437 (_literal = _PyPegen_expect_token(p, 53)) // token=':='
17438 &&
17439 (expression_var = expression_rule(p)) // expression
17440 )
17441 {
17442 D(fprintf(stderr, "%*c+ invalid_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':=' expression"));
17443 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "cannot use assignment expressions with %s" , _PyPegen_get_expr_name ( a ) );
17444 if (_res == NULL && PyErr_Occurred()) {
17445 p->error_indicator = 1;
17446 D(p->level--);
17447 return NULL;
17448 }
17449 goto done;
17450 }
17451 p->mark = _mark;
17452 D(fprintf(stderr, "%*c%s invalid_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
17453 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':=' expression"));
17454 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010017455 { // NAME '=' bitwise_or !('=' | ':=' | ',')
17456 if (p->error_indicator) {
17457 D(p->level--);
17458 return NULL;
17459 }
17460 D(fprintf(stderr, "%*c> invalid_named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '=' bitwise_or !('=' | ':=' | ',')"));
17461 expr_ty a;
17462 Token * b;
17463 expr_ty bitwise_or_var;
17464 if (
17465 (a = _PyPegen_name_token(p)) // NAME
17466 &&
17467 (b = _PyPegen_expect_token(p, 22)) // token='='
17468 &&
17469 (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or
17470 &&
17471 _PyPegen_lookahead(0, _tmp_143_rule, p)
17472 )
17473 {
17474 D(fprintf(stderr, "%*c+ invalid_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '=' bitwise_or !('=' | ':=' | ',')"));
17475 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( b , "invalid syntax. Maybe you meant '==' or ':=' instead of '='?" );
17476 if (_res == NULL && PyErr_Occurred()) {
17477 p->error_indicator = 1;
17478 D(p->level--);
17479 return NULL;
17480 }
17481 goto done;
17482 }
17483 p->mark = _mark;
17484 D(fprintf(stderr, "%*c%s invalid_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
17485 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' bitwise_or !('=' | ':=' | ',')"));
17486 }
17487 { // !(list | tuple | genexp | 'True' | 'None' | 'False') bitwise_or '=' bitwise_or !('=' | ':=' | ',')
17488 if (p->error_indicator) {
17489 D(p->level--);
17490 return NULL;
17491 }
17492 D(fprintf(stderr, "%*c> invalid_named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "!(list | tuple | genexp | 'True' | 'None' | 'False') bitwise_or '=' bitwise_or !('=' | ':=' | ',')"));
17493 expr_ty a;
17494 Token * b;
17495 expr_ty bitwise_or_var;
17496 if (
17497 _PyPegen_lookahead(0, _tmp_144_rule, p)
17498 &&
17499 (a = bitwise_or_rule(p)) // bitwise_or
17500 &&
17501 (b = _PyPegen_expect_token(p, 22)) // token='='
17502 &&
17503 (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or
17504 &&
17505 _PyPegen_lookahead(0, _tmp_145_rule, p)
17506 )
17507 {
17508 D(fprintf(stderr, "%*c+ invalid_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "!(list | tuple | genexp | 'True' | 'None' | 'False') bitwise_or '=' bitwise_or !('=' | ':=' | ',')"));
17509 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( b , "cannot assign to %s here. Maybe you meant '==' instead of '='?" , _PyPegen_get_expr_name ( a ) );
17510 if (_res == NULL && PyErr_Occurred()) {
17511 p->error_indicator = 1;
17512 D(p->level--);
17513 return NULL;
17514 }
17515 goto done;
17516 }
17517 p->mark = _mark;
17518 D(fprintf(stderr, "%*c%s invalid_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
17519 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "!(list | tuple | genexp | 'True' | 'None' | 'False') bitwise_or '=' bitwise_or !('=' | ':=' | ',')"));
17520 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017521 _res = NULL;
17522 done:
17523 D(p->level--);
17524 return _res;
17525}
17526
17527// invalid_assignment:
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030017528// | invalid_ann_assign_target ':' expression
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030017529// | star_named_expression ',' star_named_expressions* ':' expression
17530// | expression ':' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017531// | ((star_targets '='))* star_expressions '='
17532// | ((star_targets '='))* yield_expr '='
17533// | star_expressions augassign (yield_expr | star_expressions)
17534static void *
17535invalid_assignment_rule(Parser *p)
17536{
17537 D(p->level++);
17538 if (p->error_indicator) {
17539 D(p->level--);
17540 return NULL;
17541 }
17542 void * _res = NULL;
17543 int _mark = p->mark;
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030017544 { // invalid_ann_assign_target ':' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017545 if (p->error_indicator) {
17546 D(p->level--);
17547 return NULL;
17548 }
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030017549 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 +010017550 Token * _literal;
17551 expr_ty a;
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030017552 expr_ty expression_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017553 if (
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030017554 (a = invalid_ann_assign_target_rule(p)) // invalid_ann_assign_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017555 &&
17556 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030017557 &&
17558 (expression_var = expression_rule(p)) // expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017559 )
17560 {
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030017561 D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_ann_assign_target ':' expression"));
17562 _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 +010017563 if (_res == NULL && PyErr_Occurred()) {
17564 p->error_indicator = 1;
17565 D(p->level--);
17566 return NULL;
17567 }
17568 goto done;
17569 }
17570 p->mark = _mark;
17571 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030017572 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_ann_assign_target ':' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017573 }
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030017574 { // star_named_expression ',' star_named_expressions* ':' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017575 if (p->error_indicator) {
17576 D(p->level--);
17577 return NULL;
17578 }
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030017579 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 +010017580 Token * _literal;
17581 Token * _literal_1;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010017582 asdl_seq * _loop0_146_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017583 expr_ty a;
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030017584 expr_ty expression_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017585 if (
17586 (a = star_named_expression_rule(p)) // star_named_expression
17587 &&
17588 (_literal = _PyPegen_expect_token(p, 12)) // token=','
17589 &&
Pablo Galindob86ed8e2021-04-12 16:59:30 +010017590 (_loop0_146_var = _loop0_146_rule(p)) // star_named_expressions*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017591 &&
17592 (_literal_1 = _PyPegen_expect_token(p, 11)) // token=':'
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030017593 &&
17594 (expression_var = expression_rule(p)) // expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017595 )
17596 {
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030017597 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 +010017598 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "only single target (not tuple) can be annotated" );
17599 if (_res == NULL && PyErr_Occurred()) {
17600 p->error_indicator = 1;
17601 D(p->level--);
17602 return NULL;
17603 }
17604 goto done;
17605 }
17606 p->mark = _mark;
17607 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030017608 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression ',' star_named_expressions* ':' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017609 }
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030017610 { // expression ':' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017611 if (p->error_indicator) {
17612 D(p->level--);
17613 return NULL;
17614 }
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030017615 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017616 Token * _literal;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017617 expr_ty a;
17618 expr_ty expression_var;
17619 if (
17620 (a = expression_rule(p)) // expression
17621 &&
17622 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
17623 &&
17624 (expression_var = expression_rule(p)) // expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017625 )
17626 {
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030017627 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 +010017628 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "illegal target for annotation" );
17629 if (_res == NULL && PyErr_Occurred()) {
17630 p->error_indicator = 1;
17631 D(p->level--);
17632 return NULL;
17633 }
17634 goto done;
17635 }
17636 p->mark = _mark;
17637 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030017638 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017639 }
17640 { // ((star_targets '='))* star_expressions '='
17641 if (p->error_indicator) {
17642 D(p->level--);
17643 return NULL;
17644 }
17645 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "((star_targets '='))* star_expressions '='"));
17646 Token * _literal;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010017647 asdl_seq * _loop0_147_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017648 expr_ty a;
17649 if (
Pablo Galindob86ed8e2021-04-12 16:59:30 +010017650 (_loop0_147_var = _loop0_147_rule(p)) // ((star_targets '='))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017651 &&
17652 (a = star_expressions_rule(p)) // star_expressions
17653 &&
17654 (_literal = _PyPegen_expect_token(p, 22)) // token='='
17655 )
17656 {
17657 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 +030017658 _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( STAR_TARGETS , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017659 if (_res == NULL && PyErr_Occurred()) {
17660 p->error_indicator = 1;
17661 D(p->level--);
17662 return NULL;
17663 }
17664 goto done;
17665 }
17666 p->mark = _mark;
17667 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
17668 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "((star_targets '='))* star_expressions '='"));
17669 }
17670 { // ((star_targets '='))* yield_expr '='
17671 if (p->error_indicator) {
17672 D(p->level--);
17673 return NULL;
17674 }
17675 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "((star_targets '='))* yield_expr '='"));
17676 Token * _literal;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010017677 asdl_seq * _loop0_148_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017678 expr_ty a;
17679 if (
Pablo Galindob86ed8e2021-04-12 16:59:30 +010017680 (_loop0_148_var = _loop0_148_rule(p)) // ((star_targets '='))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017681 &&
17682 (a = yield_expr_rule(p)) // yield_expr
17683 &&
17684 (_literal = _PyPegen_expect_token(p, 22)) // token='='
17685 )
17686 {
17687 D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "((star_targets '='))* yield_expr '='"));
17688 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "assignment to yield expression not possible" );
17689 if (_res == NULL && PyErr_Occurred()) {
17690 p->error_indicator = 1;
17691 D(p->level--);
17692 return NULL;
17693 }
17694 goto done;
17695 }
17696 p->mark = _mark;
17697 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
17698 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "((star_targets '='))* yield_expr '='"));
17699 }
17700 { // star_expressions augassign (yield_expr | star_expressions)
17701 if (p->error_indicator) {
17702 D(p->level--);
17703 return NULL;
17704 }
17705 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions augassign (yield_expr | star_expressions)"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010017706 void *_tmp_149_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017707 expr_ty a;
17708 AugOperator* augassign_var;
17709 if (
17710 (a = star_expressions_rule(p)) // star_expressions
17711 &&
17712 (augassign_var = augassign_rule(p)) // augassign
17713 &&
Pablo Galindob86ed8e2021-04-12 16:59:30 +010017714 (_tmp_149_var = _tmp_149_rule(p)) // yield_expr | star_expressions
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017715 )
17716 {
17717 D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions augassign (yield_expr | star_expressions)"));
17718 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "'%s' is an illegal expression for augmented assignment" , _PyPegen_get_expr_name ( a ) );
17719 if (_res == NULL && PyErr_Occurred()) {
17720 p->error_indicator = 1;
17721 D(p->level--);
17722 return NULL;
17723 }
17724 goto done;
17725 }
17726 p->mark = _mark;
17727 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
17728 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions augassign (yield_expr | star_expressions)"));
17729 }
17730 _res = NULL;
17731 done:
17732 D(p->level--);
17733 return _res;
17734}
17735
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030017736// invalid_ann_assign_target: list | tuple | '(' invalid_ann_assign_target ')'
17737static expr_ty
17738invalid_ann_assign_target_rule(Parser *p)
17739{
17740 D(p->level++);
17741 if (p->error_indicator) {
17742 D(p->level--);
17743 return NULL;
17744 }
17745 expr_ty _res = NULL;
17746 int _mark = p->mark;
17747 { // list
17748 if (p->error_indicator) {
17749 D(p->level--);
17750 return NULL;
17751 }
17752 D(fprintf(stderr, "%*c> invalid_ann_assign_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "list"));
17753 expr_ty list_var;
17754 if (
17755 (list_var = list_rule(p)) // list
17756 )
17757 {
17758 D(fprintf(stderr, "%*c+ invalid_ann_assign_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "list"));
17759 _res = list_var;
17760 goto done;
17761 }
17762 p->mark = _mark;
17763 D(fprintf(stderr, "%*c%s invalid_ann_assign_target[%d-%d]: %s failed!\n", p->level, ' ',
17764 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "list"));
17765 }
17766 { // tuple
17767 if (p->error_indicator) {
17768 D(p->level--);
17769 return NULL;
17770 }
17771 D(fprintf(stderr, "%*c> invalid_ann_assign_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "tuple"));
17772 expr_ty tuple_var;
17773 if (
17774 (tuple_var = tuple_rule(p)) // tuple
17775 )
17776 {
17777 D(fprintf(stderr, "%*c+ invalid_ann_assign_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "tuple"));
17778 _res = tuple_var;
17779 goto done;
17780 }
17781 p->mark = _mark;
17782 D(fprintf(stderr, "%*c%s invalid_ann_assign_target[%d-%d]: %s failed!\n", p->level, ' ',
17783 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "tuple"));
17784 }
17785 { // '(' invalid_ann_assign_target ')'
17786 if (p->error_indicator) {
17787 D(p->level--);
17788 return NULL;
17789 }
17790 D(fprintf(stderr, "%*c> invalid_ann_assign_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' invalid_ann_assign_target ')'"));
17791 Token * _literal;
17792 Token * _literal_1;
17793 expr_ty a;
17794 if (
17795 (_literal = _PyPegen_expect_token(p, 7)) // token='('
17796 &&
17797 (a = invalid_ann_assign_target_rule(p)) // invalid_ann_assign_target
17798 &&
17799 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
17800 )
17801 {
17802 D(fprintf(stderr, "%*c+ invalid_ann_assign_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' invalid_ann_assign_target ')'"));
17803 _res = a;
17804 if (_res == NULL && PyErr_Occurred()) {
17805 p->error_indicator = 1;
17806 D(p->level--);
17807 return NULL;
17808 }
17809 goto done;
17810 }
17811 p->mark = _mark;
17812 D(fprintf(stderr, "%*c%s invalid_ann_assign_target[%d-%d]: %s failed!\n", p->level, ' ',
17813 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' invalid_ann_assign_target ')'"));
17814 }
17815 _res = NULL;
17816 done:
17817 D(p->level--);
17818 return _res;
17819}
17820
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017821// invalid_del_stmt: 'del' star_expressions
17822static void *
17823invalid_del_stmt_rule(Parser *p)
17824{
17825 D(p->level++);
17826 if (p->error_indicator) {
17827 D(p->level--);
17828 return NULL;
17829 }
17830 void * _res = NULL;
17831 int _mark = p->mark;
17832 { // 'del' star_expressions
17833 if (p->error_indicator) {
17834 D(p->level--);
17835 return NULL;
17836 }
17837 D(fprintf(stderr, "%*c> invalid_del_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'del' star_expressions"));
17838 Token * _keyword;
17839 expr_ty a;
17840 if (
17841 (_keyword = _PyPegen_expect_token(p, 503)) // token='del'
17842 &&
17843 (a = star_expressions_rule(p)) // star_expressions
17844 )
17845 {
17846 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 +030017847 _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( DEL_TARGETS , a );
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017848 if (_res == NULL && PyErr_Occurred()) {
17849 p->error_indicator = 1;
17850 D(p->level--);
17851 return NULL;
17852 }
17853 goto done;
17854 }
17855 p->mark = _mark;
17856 D(fprintf(stderr, "%*c%s invalid_del_stmt[%d-%d]: %s failed!\n", p->level, ' ',
17857 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'del' star_expressions"));
17858 }
17859 _res = NULL;
17860 done:
17861 D(p->level--);
17862 return _res;
17863}
17864
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017865// invalid_block: NEWLINE !INDENT
17866static void *
17867invalid_block_rule(Parser *p)
17868{
17869 D(p->level++);
17870 if (p->error_indicator) {
17871 D(p->level--);
17872 return NULL;
17873 }
17874 void * _res = NULL;
17875 int _mark = p->mark;
17876 { // NEWLINE !INDENT
17877 if (p->error_indicator) {
17878 D(p->level--);
17879 return NULL;
17880 }
17881 D(fprintf(stderr, "%*c> invalid_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE !INDENT"));
17882 Token * newline_var;
17883 if (
17884 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
17885 &&
17886 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
17887 )
17888 {
17889 D(fprintf(stderr, "%*c+ invalid_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE !INDENT"));
17890 _res = RAISE_INDENTATION_ERROR ( "expected an indented block" );
17891 if (_res == NULL && PyErr_Occurred()) {
17892 p->error_indicator = 1;
17893 D(p->level--);
17894 return NULL;
17895 }
17896 goto done;
17897 }
17898 p->mark = _mark;
17899 D(fprintf(stderr, "%*c%s invalid_block[%d-%d]: %s failed!\n", p->level, ' ',
17900 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE !INDENT"));
17901 }
17902 _res = NULL;
17903 done:
17904 D(p->level--);
17905 return _res;
17906}
17907
Lysandros Nikolaou15acc4e2020-10-27 20:54:20 +020017908// Left-recursive
17909// invalid_primary: primary '{'
17910static void *
17911invalid_primary_rule(Parser *p)
17912{
17913 D(p->level++);
17914 if (p->error_indicator) {
17915 D(p->level--);
17916 return NULL;
17917 }
17918 void * _res = NULL;
17919 int _mark = p->mark;
17920 { // primary '{'
17921 if (p->error_indicator) {
17922 D(p->level--);
17923 return NULL;
17924 }
17925 D(fprintf(stderr, "%*c> invalid_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '{'"));
17926 Token * a;
17927 expr_ty primary_var;
17928 if (
17929 (primary_var = primary_rule(p)) // primary
17930 &&
17931 (a = _PyPegen_expect_token(p, 25)) // token='{'
17932 )
17933 {
17934 D(fprintf(stderr, "%*c+ invalid_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '{'"));
17935 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "invalid syntax" );
17936 if (_res == NULL && PyErr_Occurred()) {
17937 p->error_indicator = 1;
17938 D(p->level--);
17939 return NULL;
17940 }
17941 goto done;
17942 }
17943 p->mark = _mark;
17944 D(fprintf(stderr, "%*c%s invalid_primary[%d-%d]: %s failed!\n", p->level, ' ',
17945 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '{'"));
17946 }
17947 _res = NULL;
17948 done:
17949 D(p->level--);
17950 return _res;
17951}
17952
Pablo Galindo835f14f2021-01-31 22:52:56 +000017953// invalid_comprehension:
17954// | ('[' | '(' | '{') starred_expression for_if_clauses
Pablo Galindod4e6ed72021-02-03 23:29:26 +000017955// | ('[' | '{') star_named_expression ',' star_named_expressions? for_if_clauses
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017956static void *
17957invalid_comprehension_rule(Parser *p)
17958{
17959 D(p->level++);
17960 if (p->error_indicator) {
17961 D(p->level--);
17962 return NULL;
17963 }
17964 void * _res = NULL;
17965 int _mark = p->mark;
17966 { // ('[' | '(' | '{') starred_expression for_if_clauses
17967 if (p->error_indicator) {
17968 D(p->level--);
17969 return NULL;
17970 }
17971 D(fprintf(stderr, "%*c> invalid_comprehension[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('[' | '(' | '{') starred_expression for_if_clauses"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010017972 void *_tmp_150_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017973 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010017974 asdl_comprehension_seq* for_if_clauses_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017975 if (
Pablo Galindob86ed8e2021-04-12 16:59:30 +010017976 (_tmp_150_var = _tmp_150_rule(p)) // '[' | '(' | '{'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017977 &&
17978 (a = starred_expression_rule(p)) // starred_expression
17979 &&
17980 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
17981 )
17982 {
17983 D(fprintf(stderr, "%*c+ invalid_comprehension[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "('[' | '(' | '{') starred_expression for_if_clauses"));
17984 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "iterable unpacking cannot be used in comprehension" );
17985 if (_res == NULL && PyErr_Occurred()) {
17986 p->error_indicator = 1;
17987 D(p->level--);
17988 return NULL;
17989 }
17990 goto done;
17991 }
17992 p->mark = _mark;
17993 D(fprintf(stderr, "%*c%s invalid_comprehension[%d-%d]: %s failed!\n", p->level, ' ',
17994 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('[' | '(' | '{') starred_expression for_if_clauses"));
17995 }
Pablo Galindod4e6ed72021-02-03 23:29:26 +000017996 { // ('[' | '{') star_named_expression ',' star_named_expressions? for_if_clauses
Pablo Galindo835f14f2021-01-31 22:52:56 +000017997 if (p->error_indicator) {
17998 D(p->level--);
17999 return NULL;
18000 }
Pablo Galindod4e6ed72021-02-03 23:29:26 +000018001 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 +000018002 Token * _literal;
18003 void *_opt_var;
18004 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018005 void *_tmp_151_var;
Pablo Galindo835f14f2021-01-31 22:52:56 +000018006 expr_ty a;
Pablo Galindod4e6ed72021-02-03 23:29:26 +000018007 asdl_comprehension_seq* for_if_clauses_var;
Pablo Galindo835f14f2021-01-31 22:52:56 +000018008 if (
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018009 (_tmp_151_var = _tmp_151_rule(p)) // '[' | '{'
Pablo Galindo835f14f2021-01-31 22:52:56 +000018010 &&
18011 (a = star_named_expression_rule(p)) // star_named_expression
18012 &&
18013 (_literal = _PyPegen_expect_token(p, 12)) // token=','
18014 &&
18015 (_opt_var = star_named_expressions_rule(p), 1) // star_named_expressions?
Pablo Galindod4e6ed72021-02-03 23:29:26 +000018016 &&
18017 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
Pablo Galindo835f14f2021-01-31 22:52:56 +000018018 )
18019 {
Pablo Galindod4e6ed72021-02-03 23:29:26 +000018020 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 +000018021 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "did you forget parentheses around the comprehension target?" );
18022 if (_res == NULL && PyErr_Occurred()) {
18023 p->error_indicator = 1;
18024 D(p->level--);
18025 return NULL;
18026 }
18027 goto done;
18028 }
18029 p->mark = _mark;
18030 D(fprintf(stderr, "%*c%s invalid_comprehension[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindod4e6ed72021-02-03 23:29:26 +000018031 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('[' | '{') star_named_expression ',' star_named_expressions? for_if_clauses"));
Pablo Galindo835f14f2021-01-31 22:52:56 +000018032 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018033 _res = NULL;
18034 done:
18035 D(p->level--);
18036 return _res;
18037}
18038
18039// invalid_dict_comprehension: '{' '**' bitwise_or for_if_clauses '}'
18040static void *
18041invalid_dict_comprehension_rule(Parser *p)
18042{
18043 D(p->level++);
18044 if (p->error_indicator) {
18045 D(p->level--);
18046 return NULL;
18047 }
18048 void * _res = NULL;
18049 int _mark = p->mark;
18050 { // '{' '**' bitwise_or for_if_clauses '}'
18051 if (p->error_indicator) {
18052 D(p->level--);
18053 return NULL;
18054 }
18055 D(fprintf(stderr, "%*c> invalid_dict_comprehension[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' '**' bitwise_or for_if_clauses '}'"));
18056 Token * _literal;
18057 Token * _literal_1;
18058 Token * a;
18059 expr_ty bitwise_or_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +010018060 asdl_comprehension_seq* for_if_clauses_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018061 if (
18062 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
18063 &&
18064 (a = _PyPegen_expect_token(p, 35)) // token='**'
18065 &&
18066 (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or
18067 &&
18068 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
18069 &&
18070 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
18071 )
18072 {
18073 D(fprintf(stderr, "%*c+ invalid_dict_comprehension[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' '**' bitwise_or for_if_clauses '}'"));
18074 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "dict unpacking cannot be used in dict comprehension" );
18075 if (_res == NULL && PyErr_Occurred()) {
18076 p->error_indicator = 1;
18077 D(p->level--);
18078 return NULL;
18079 }
18080 goto done;
18081 }
18082 p->mark = _mark;
18083 D(fprintf(stderr, "%*c%s invalid_dict_comprehension[%d-%d]: %s failed!\n", p->level, ' ',
18084 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' '**' bitwise_or for_if_clauses '}'"));
18085 }
18086 _res = NULL;
18087 done:
18088 D(p->level--);
18089 return _res;
18090}
18091
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020018092// invalid_parameters: param_no_default* invalid_parameters_helper param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018093static void *
18094invalid_parameters_rule(Parser *p)
18095{
18096 D(p->level++);
18097 if (p->error_indicator) {
18098 D(p->level--);
18099 return NULL;
18100 }
18101 void * _res = NULL;
18102 int _mark = p->mark;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020018103 { // param_no_default* invalid_parameters_helper param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018104 if (p->error_indicator) {
18105 D(p->level--);
18106 return NULL;
18107 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020018108 D(fprintf(stderr, "%*c> invalid_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default* invalid_parameters_helper param_no_default"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018109 asdl_seq * _loop0_152_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020018110 void *invalid_parameters_helper_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018111 arg_ty param_no_default_var;
18112 if (
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018113 (_loop0_152_var = _loop0_152_rule(p)) // param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018114 &&
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020018115 (invalid_parameters_helper_var = invalid_parameters_helper_rule(p)) // invalid_parameters_helper
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018116 &&
18117 (param_no_default_var = param_no_default_rule(p)) // param_no_default
18118 )
18119 {
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020018120 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 +010018121 _res = RAISE_SYNTAX_ERROR ( "non-default argument follows default argument" );
18122 if (_res == NULL && PyErr_Occurred()) {
18123 p->error_indicator = 1;
18124 D(p->level--);
18125 return NULL;
18126 }
18127 goto done;
18128 }
18129 p->mark = _mark;
18130 D(fprintf(stderr, "%*c%s invalid_parameters[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020018131 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default* invalid_parameters_helper param_no_default"));
18132 }
18133 _res = NULL;
18134 done:
18135 D(p->level--);
18136 return _res;
18137}
18138
18139// invalid_parameters_helper: slash_with_default | param_with_default+
18140static void *
18141invalid_parameters_helper_rule(Parser *p)
18142{
18143 D(p->level++);
18144 if (p->error_indicator) {
18145 D(p->level--);
18146 return NULL;
18147 }
18148 void * _res = NULL;
18149 int _mark = p->mark;
18150 { // slash_with_default
18151 if (p->error_indicator) {
18152 D(p->level--);
18153 return NULL;
18154 }
18155 D(fprintf(stderr, "%*c> invalid_parameters_helper[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slash_with_default"));
18156 SlashWithDefault* a;
18157 if (
18158 (a = slash_with_default_rule(p)) // slash_with_default
18159 )
18160 {
18161 D(fprintf(stderr, "%*c+ invalid_parameters_helper[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slash_with_default"));
18162 _res = _PyPegen_singleton_seq ( p , a );
18163 if (_res == NULL && PyErr_Occurred()) {
18164 p->error_indicator = 1;
18165 D(p->level--);
18166 return NULL;
18167 }
18168 goto done;
18169 }
18170 p->mark = _mark;
18171 D(fprintf(stderr, "%*c%s invalid_parameters_helper[%d-%d]: %s failed!\n", p->level, ' ',
18172 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_with_default"));
18173 }
18174 { // param_with_default+
18175 if (p->error_indicator) {
18176 D(p->level--);
18177 return NULL;
18178 }
18179 D(fprintf(stderr, "%*c> invalid_parameters_helper[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default+"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018180 asdl_seq * _loop1_153_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020018181 if (
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018182 (_loop1_153_var = _loop1_153_rule(p)) // param_with_default+
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020018183 )
18184 {
18185 D(fprintf(stderr, "%*c+ invalid_parameters_helper[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_with_default+"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018186 _res = _loop1_153_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020018187 goto done;
18188 }
18189 p->mark = _mark;
18190 D(fprintf(stderr, "%*c%s invalid_parameters_helper[%d-%d]: %s failed!\n", p->level, ' ',
18191 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default+"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018192 }
18193 _res = NULL;
18194 done:
18195 D(p->level--);
18196 return _res;
18197}
18198
18199// invalid_lambda_parameters:
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020018200// | lambda_param_no_default* invalid_lambda_parameters_helper lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018201static void *
18202invalid_lambda_parameters_rule(Parser *p)
18203{
18204 D(p->level++);
18205 if (p->error_indicator) {
18206 D(p->level--);
18207 return NULL;
18208 }
18209 void * _res = NULL;
18210 int _mark = p->mark;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020018211 { // lambda_param_no_default* invalid_lambda_parameters_helper lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018212 if (p->error_indicator) {
18213 D(p->level--);
18214 return NULL;
18215 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020018216 D(fprintf(stderr, "%*c> invalid_lambda_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default* invalid_lambda_parameters_helper lambda_param_no_default"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018217 asdl_seq * _loop0_154_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020018218 void *invalid_lambda_parameters_helper_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018219 arg_ty lambda_param_no_default_var;
18220 if (
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018221 (_loop0_154_var = _loop0_154_rule(p)) // lambda_param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018222 &&
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020018223 (invalid_lambda_parameters_helper_var = invalid_lambda_parameters_helper_rule(p)) // invalid_lambda_parameters_helper
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018224 &&
18225 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
18226 )
18227 {
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020018228 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 +010018229 _res = RAISE_SYNTAX_ERROR ( "non-default argument follows default argument" );
18230 if (_res == NULL && PyErr_Occurred()) {
18231 p->error_indicator = 1;
18232 D(p->level--);
18233 return NULL;
18234 }
18235 goto done;
18236 }
18237 p->mark = _mark;
18238 D(fprintf(stderr, "%*c%s invalid_lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020018239 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default* invalid_lambda_parameters_helper lambda_param_no_default"));
18240 }
18241 _res = NULL;
18242 done:
18243 D(p->level--);
18244 return _res;
18245}
18246
18247// invalid_lambda_parameters_helper:
18248// | lambda_slash_with_default
18249// | lambda_param_with_default+
18250static void *
18251invalid_lambda_parameters_helper_rule(Parser *p)
18252{
18253 D(p->level++);
18254 if (p->error_indicator) {
18255 D(p->level--);
18256 return NULL;
18257 }
18258 void * _res = NULL;
18259 int _mark = p->mark;
18260 { // lambda_slash_with_default
18261 if (p->error_indicator) {
18262 D(p->level--);
18263 return NULL;
18264 }
18265 D(fprintf(stderr, "%*c> invalid_lambda_parameters_helper[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_slash_with_default"));
18266 SlashWithDefault* a;
18267 if (
18268 (a = lambda_slash_with_default_rule(p)) // lambda_slash_with_default
18269 )
18270 {
18271 D(fprintf(stderr, "%*c+ invalid_lambda_parameters_helper[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_slash_with_default"));
18272 _res = _PyPegen_singleton_seq ( p , a );
18273 if (_res == NULL && PyErr_Occurred()) {
18274 p->error_indicator = 1;
18275 D(p->level--);
18276 return NULL;
18277 }
18278 goto done;
18279 }
18280 p->mark = _mark;
18281 D(fprintf(stderr, "%*c%s invalid_lambda_parameters_helper[%d-%d]: %s failed!\n", p->level, ' ',
18282 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_slash_with_default"));
18283 }
18284 { // lambda_param_with_default+
18285 if (p->error_indicator) {
18286 D(p->level--);
18287 return NULL;
18288 }
18289 D(fprintf(stderr, "%*c> invalid_lambda_parameters_helper[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018290 asdl_seq * _loop1_155_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020018291 if (
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018292 (_loop1_155_var = _loop1_155_rule(p)) // lambda_param_with_default+
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020018293 )
18294 {
18295 D(fprintf(stderr, "%*c+ invalid_lambda_parameters_helper[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018296 _res = _loop1_155_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020018297 goto done;
18298 }
18299 p->mark = _mark;
18300 D(fprintf(stderr, "%*c%s invalid_lambda_parameters_helper[%d-%d]: %s failed!\n", p->level, ' ',
18301 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default+"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018302 }
18303 _res = NULL;
18304 done:
18305 D(p->level--);
18306 return _res;
18307}
18308
18309// invalid_star_etc: '*' (')' | ',' (')' | '**')) | '*' ',' TYPE_COMMENT
18310static void *
18311invalid_star_etc_rule(Parser *p)
18312{
18313 D(p->level++);
18314 if (p->error_indicator) {
18315 D(p->level--);
18316 return NULL;
18317 }
18318 void * _res = NULL;
18319 int _mark = p->mark;
18320 { // '*' (')' | ',' (')' | '**'))
18321 if (p->error_indicator) {
18322 D(p->level--);
18323 return NULL;
18324 }
18325 D(fprintf(stderr, "%*c> invalid_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (')' | ',' (')' | '**'))"));
18326 Token * _literal;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018327 void *_tmp_156_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018328 if (
18329 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
18330 &&
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018331 (_tmp_156_var = _tmp_156_rule(p)) // ')' | ',' (')' | '**')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018332 )
18333 {
18334 D(fprintf(stderr, "%*c+ invalid_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (')' | ',' (')' | '**'))"));
18335 _res = RAISE_SYNTAX_ERROR ( "named arguments must follow bare *" );
18336 if (_res == NULL && PyErr_Occurred()) {
18337 p->error_indicator = 1;
18338 D(p->level--);
18339 return NULL;
18340 }
18341 goto done;
18342 }
18343 p->mark = _mark;
18344 D(fprintf(stderr, "%*c%s invalid_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
18345 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' (')' | ',' (')' | '**'))"));
18346 }
18347 { // '*' ',' TYPE_COMMENT
18348 if (p->error_indicator) {
18349 D(p->level--);
18350 return NULL;
18351 }
18352 D(fprintf(stderr, "%*c> invalid_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' ',' TYPE_COMMENT"));
18353 Token * _literal;
18354 Token * _literal_1;
18355 Token * type_comment_var;
18356 if (
18357 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
18358 &&
18359 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
18360 &&
18361 (type_comment_var = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
18362 )
18363 {
18364 D(fprintf(stderr, "%*c+ invalid_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' ',' TYPE_COMMENT"));
18365 _res = RAISE_SYNTAX_ERROR ( "bare * has associated type comment" );
18366 if (_res == NULL && PyErr_Occurred()) {
18367 p->error_indicator = 1;
18368 D(p->level--);
18369 return NULL;
18370 }
18371 goto done;
18372 }
18373 p->mark = _mark;
18374 D(fprintf(stderr, "%*c%s invalid_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
18375 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' ',' TYPE_COMMENT"));
18376 }
18377 _res = NULL;
18378 done:
18379 D(p->level--);
18380 return _res;
18381}
18382
18383// invalid_lambda_star_etc: '*' (':' | ',' (':' | '**'))
18384static void *
18385invalid_lambda_star_etc_rule(Parser *p)
18386{
18387 D(p->level++);
18388 if (p->error_indicator) {
18389 D(p->level--);
18390 return NULL;
18391 }
18392 void * _res = NULL;
18393 int _mark = p->mark;
18394 { // '*' (':' | ',' (':' | '**'))
18395 if (p->error_indicator) {
18396 D(p->level--);
18397 return NULL;
18398 }
18399 D(fprintf(stderr, "%*c> invalid_lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (':' | ',' (':' | '**'))"));
18400 Token * _literal;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018401 void *_tmp_157_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018402 if (
18403 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
18404 &&
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018405 (_tmp_157_var = _tmp_157_rule(p)) // ':' | ',' (':' | '**')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018406 )
18407 {
18408 D(fprintf(stderr, "%*c+ invalid_lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (':' | ',' (':' | '**'))"));
18409 _res = RAISE_SYNTAX_ERROR ( "named arguments must follow bare *" );
18410 if (_res == NULL && PyErr_Occurred()) {
18411 p->error_indicator = 1;
18412 D(p->level--);
18413 return NULL;
18414 }
18415 goto done;
18416 }
18417 p->mark = _mark;
18418 D(fprintf(stderr, "%*c%s invalid_lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
18419 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' (':' | ',' (':' | '**'))"));
18420 }
18421 _res = NULL;
18422 done:
18423 D(p->level--);
18424 return _res;
18425}
18426
18427// invalid_double_type_comments: TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT
18428static void *
18429invalid_double_type_comments_rule(Parser *p)
18430{
18431 D(p->level++);
18432 if (p->error_indicator) {
18433 D(p->level--);
18434 return NULL;
18435 }
18436 void * _res = NULL;
18437 int _mark = p->mark;
18438 { // TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT
18439 if (p->error_indicator) {
18440 D(p->level--);
18441 return NULL;
18442 }
18443 D(fprintf(stderr, "%*c> invalid_double_type_comments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT"));
18444 Token * indent_var;
18445 Token * newline_var;
18446 Token * newline_var_1;
18447 Token * type_comment_var;
18448 Token * type_comment_var_1;
18449 if (
18450 (type_comment_var = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
18451 &&
18452 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
18453 &&
18454 (type_comment_var_1 = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
18455 &&
18456 (newline_var_1 = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
18457 &&
18458 (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
18459 )
18460 {
18461 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"));
18462 _res = RAISE_SYNTAX_ERROR ( "Cannot have two type comments on def" );
18463 if (_res == NULL && PyErr_Occurred()) {
18464 p->error_indicator = 1;
18465 D(p->level--);
18466 return NULL;
18467 }
18468 goto done;
18469 }
18470 p->mark = _mark;
18471 D(fprintf(stderr, "%*c%s invalid_double_type_comments[%d-%d]: %s failed!\n", p->level, ' ',
18472 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT"));
18473 }
18474 _res = NULL;
18475 done:
18476 D(p->level--);
18477 return _res;
18478}
18479
Pablo Galindo58fb1562021-02-02 19:54:22 +000018480// invalid_with_item: expression 'as' expression &(',' | ')' | ':')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018481static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018482invalid_with_item_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018483{
18484 D(p->level++);
18485 if (p->error_indicator) {
18486 D(p->level--);
18487 return NULL;
18488 }
18489 void * _res = NULL;
18490 int _mark = p->mark;
Pablo Galindo58fb1562021-02-02 19:54:22 +000018491 { // expression 'as' expression &(',' | ')' | ':')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018492 if (p->error_indicator) {
18493 D(p->level--);
18494 return NULL;
18495 }
Pablo Galindo58fb1562021-02-02 19:54:22 +000018496 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 +030018497 Token * _keyword;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018498 expr_ty a;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018499 expr_ty expression_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018500 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018501 (expression_var = expression_rule(p)) // expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018502 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018503 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
18504 &&
18505 (a = expression_rule(p)) // expression
Pablo Galindo58fb1562021-02-02 19:54:22 +000018506 &&
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018507 _PyPegen_lookahead(1, _tmp_158_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018508 )
18509 {
Pablo Galindo58fb1562021-02-02 19:54:22 +000018510 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 +030018511 _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( STAR_TARGETS , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018512 if (_res == NULL && PyErr_Occurred()) {
18513 p->error_indicator = 1;
18514 D(p->level--);
18515 return NULL;
18516 }
18517 goto done;
18518 }
18519 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018520 D(fprintf(stderr, "%*c%s invalid_with_item[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +000018521 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression 'as' expression &(',' | ')' | ':')"));
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018522 }
18523 _res = NULL;
18524 done:
18525 D(p->level--);
18526 return _res;
18527}
18528
18529// invalid_for_target: ASYNC? 'for' star_expressions
18530static void *
18531invalid_for_target_rule(Parser *p)
18532{
18533 D(p->level++);
18534 if (p->error_indicator) {
18535 D(p->level--);
18536 return NULL;
18537 }
18538 void * _res = NULL;
18539 int _mark = p->mark;
18540 { // ASYNC? 'for' star_expressions
18541 if (p->error_indicator) {
18542 D(p->level--);
18543 return NULL;
18544 }
18545 D(fprintf(stderr, "%*c> invalid_for_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'for' star_expressions"));
18546 Token * _keyword;
18547 void *_opt_var;
18548 UNUSED(_opt_var); // Silence compiler warnings
18549 expr_ty a;
18550 if (
18551 (_opt_var = _PyPegen_expect_token(p, ASYNC), 1) // ASYNC?
18552 &&
18553 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
18554 &&
18555 (a = star_expressions_rule(p)) // star_expressions
18556 )
18557 {
18558 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 +030018559 _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( FOR_TARGETS , a );
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018560 if (_res == NULL && PyErr_Occurred()) {
18561 p->error_indicator = 1;
18562 D(p->level--);
18563 return NULL;
18564 }
18565 goto done;
18566 }
18567 p->mark = _mark;
18568 D(fprintf(stderr, "%*c%s invalid_for_target[%d-%d]: %s failed!\n", p->level, ' ',
18569 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'for' star_expressions"));
18570 }
18571 _res = NULL;
18572 done:
18573 D(p->level--);
18574 return _res;
18575}
18576
Pablo Galindo8efad612021-03-24 19:34:17 +000018577// invalid_group: '(' starred_expression ')' | '(' '**' expression ')'
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018578static void *
18579invalid_group_rule(Parser *p)
18580{
18581 D(p->level++);
18582 if (p->error_indicator) {
18583 D(p->level--);
18584 return NULL;
18585 }
18586 void * _res = NULL;
18587 int _mark = p->mark;
18588 { // '(' starred_expression ')'
18589 if (p->error_indicator) {
18590 D(p->level--);
18591 return NULL;
18592 }
18593 D(fprintf(stderr, "%*c> invalid_group[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' starred_expression ')'"));
18594 Token * _literal;
18595 Token * _literal_1;
18596 expr_ty a;
18597 if (
18598 (_literal = _PyPegen_expect_token(p, 7)) // token='('
18599 &&
18600 (a = starred_expression_rule(p)) // starred_expression
18601 &&
18602 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
18603 )
18604 {
18605 D(fprintf(stderr, "%*c+ invalid_group[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' starred_expression ')'"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018606 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "cannot use starred expression here" );
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018607 if (_res == NULL && PyErr_Occurred()) {
18608 p->error_indicator = 1;
18609 D(p->level--);
18610 return NULL;
18611 }
18612 goto done;
18613 }
18614 p->mark = _mark;
18615 D(fprintf(stderr, "%*c%s invalid_group[%d-%d]: %s failed!\n", p->level, ' ',
18616 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' starred_expression ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018617 }
Pablo Galindo8efad612021-03-24 19:34:17 +000018618 { // '(' '**' expression ')'
18619 if (p->error_indicator) {
18620 D(p->level--);
18621 return NULL;
18622 }
18623 D(fprintf(stderr, "%*c> invalid_group[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' '**' expression ')'"));
18624 Token * _literal;
18625 Token * _literal_1;
18626 Token * a;
18627 expr_ty expression_var;
18628 if (
18629 (_literal = _PyPegen_expect_token(p, 7)) // token='('
18630 &&
18631 (a = _PyPegen_expect_token(p, 35)) // token='**'
18632 &&
18633 (expression_var = expression_rule(p)) // expression
18634 &&
18635 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
18636 )
18637 {
18638 D(fprintf(stderr, "%*c+ invalid_group[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' '**' expression ')'"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018639 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "cannot use double starred expression here" );
Pablo Galindo8efad612021-03-24 19:34:17 +000018640 if (_res == NULL && PyErr_Occurred()) {
18641 p->error_indicator = 1;
18642 D(p->level--);
18643 return NULL;
18644 }
18645 goto done;
18646 }
18647 p->mark = _mark;
18648 D(fprintf(stderr, "%*c%s invalid_group[%d-%d]: %s failed!\n", p->level, ' ',
18649 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' '**' expression ')'"));
18650 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018651 _res = NULL;
18652 done:
18653 D(p->level--);
18654 return _res;
18655}
18656
18657// invalid_import_from_targets: import_from_as_names ','
18658static void *
18659invalid_import_from_targets_rule(Parser *p)
18660{
18661 D(p->level++);
18662 if (p->error_indicator) {
18663 D(p->level--);
18664 return NULL;
18665 }
18666 void * _res = NULL;
18667 int _mark = p->mark;
18668 { // import_from_as_names ','
18669 if (p->error_indicator) {
18670 D(p->level--);
18671 return NULL;
18672 }
18673 D(fprintf(stderr, "%*c> invalid_import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "import_from_as_names ','"));
18674 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +010018675 asdl_alias_seq* import_from_as_names_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018676 if (
18677 (import_from_as_names_var = import_from_as_names_rule(p)) // import_from_as_names
18678 &&
18679 (_literal = _PyPegen_expect_token(p, 12)) // token=','
18680 )
18681 {
18682 D(fprintf(stderr, "%*c+ invalid_import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_from_as_names ','"));
18683 _res = RAISE_SYNTAX_ERROR ( "trailing comma not allowed without surrounding parentheses" );
18684 if (_res == NULL && PyErr_Occurred()) {
18685 p->error_indicator = 1;
18686 D(p->level--);
18687 return NULL;
18688 }
18689 goto done;
18690 }
18691 p->mark = _mark;
18692 D(fprintf(stderr, "%*c%s invalid_import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
18693 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from_as_names ','"));
18694 }
18695 _res = NULL;
18696 done:
18697 D(p->level--);
18698 return _res;
18699}
18700
Pablo Galindo58fb1562021-02-02 19:54:22 +000018701// invalid_with_stmt:
18702// | ASYNC? 'with' ','.(expression ['as' star_target])+ &&':'
18703// | ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' &&':'
18704static void *
18705invalid_with_stmt_rule(Parser *p)
18706{
18707 D(p->level++);
18708 if (p->error_indicator) {
18709 D(p->level--);
18710 return NULL;
18711 }
18712 void * _res = NULL;
18713 int _mark = p->mark;
18714 { // ASYNC? 'with' ','.(expression ['as' star_target])+ &&':'
18715 if (p->error_indicator) {
18716 D(p->level--);
18717 return NULL;
18718 }
18719 D(fprintf(stderr, "%*c> invalid_with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' ','.(expression ['as' star_target])+ &&':'"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018720 asdl_seq * _gather_159_var;
Pablo Galindo58fb1562021-02-02 19:54:22 +000018721 Token * _keyword;
18722 Token * _literal;
18723 void *_opt_var;
18724 UNUSED(_opt_var); // Silence compiler warnings
18725 if (
18726 (_opt_var = _PyPegen_expect_token(p, ASYNC), 1) // ASYNC?
18727 &&
18728 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
18729 &&
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018730 (_gather_159_var = _gather_159_rule(p)) // ','.(expression ['as' star_target])+
Pablo Galindo58fb1562021-02-02 19:54:22 +000018731 &&
18732 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
18733 )
18734 {
18735 D(fprintf(stderr, "%*c+ invalid_with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' ','.(expression ['as' star_target])+ &&':'"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018736 _res = _PyPegen_dummy_name(p, _opt_var, _keyword, _gather_159_var, _literal);
Pablo Galindo58fb1562021-02-02 19:54:22 +000018737 goto done;
18738 }
18739 p->mark = _mark;
18740 D(fprintf(stderr, "%*c%s invalid_with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
18741 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'with' ','.(expression ['as' star_target])+ &&':'"));
18742 }
18743 { // ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' &&':'
18744 if (p->error_indicator) {
18745 D(p->level--);
18746 return NULL;
18747 }
18748 D(fprintf(stderr, "%*c> invalid_with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' &&':'"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018749 asdl_seq * _gather_161_var;
Pablo Galindo58fb1562021-02-02 19:54:22 +000018750 Token * _keyword;
18751 Token * _literal;
18752 Token * _literal_1;
18753 Token * _literal_2;
18754 void *_opt_var;
18755 UNUSED(_opt_var); // Silence compiler warnings
18756 void *_opt_var_1;
18757 UNUSED(_opt_var_1); // Silence compiler warnings
18758 if (
18759 (_opt_var = _PyPegen_expect_token(p, ASYNC), 1) // ASYNC?
18760 &&
18761 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
18762 &&
18763 (_literal = _PyPegen_expect_token(p, 7)) // token='('
18764 &&
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018765 (_gather_161_var = _gather_161_rule(p)) // ','.(expressions ['as' star_target])+
Pablo Galindo58fb1562021-02-02 19:54:22 +000018766 &&
18767 (_opt_var_1 = _PyPegen_expect_token(p, 12), 1) // ','?
18768 &&
18769 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
18770 &&
18771 (_literal_2 = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
18772 )
18773 {
18774 D(fprintf(stderr, "%*c+ invalid_with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' &&':'"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018775 _res = _PyPegen_dummy_name(p, _opt_var, _keyword, _literal, _gather_161_var, _opt_var_1, _literal_1, _literal_2);
Pablo Galindo58fb1562021-02-02 19:54:22 +000018776 goto done;
18777 }
18778 p->mark = _mark;
18779 D(fprintf(stderr, "%*c%s invalid_with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
18780 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' &&':'"));
18781 }
18782 _res = NULL;
18783 done:
18784 D(p->level--);
18785 return _res;
18786}
18787
Pablo Galindo206cbda2021-02-07 18:42:21 +000018788// invalid_except_block:
18789// | 'except' expression ',' expressions ['as' NAME] ':'
18790// | 'except' expression ['as' NAME] &&':'
18791// | 'except' &&':'
18792static void *
18793invalid_except_block_rule(Parser *p)
18794{
18795 D(p->level++);
18796 if (p->error_indicator) {
18797 D(p->level--);
18798 return NULL;
18799 }
18800 void * _res = NULL;
18801 int _mark = p->mark;
18802 { // 'except' expression ',' expressions ['as' NAME] ':'
18803 if (p->error_indicator) {
18804 D(p->level--);
18805 return NULL;
18806 }
18807 D(fprintf(stderr, "%*c> invalid_except_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' expression ',' expressions ['as' NAME] ':'"));
18808 Token * _keyword;
18809 Token * _literal;
18810 Token * _literal_1;
18811 void *_opt_var;
18812 UNUSED(_opt_var); // Silence compiler warnings
18813 expr_ty a;
18814 expr_ty expressions_var;
18815 if (
18816 (_keyword = _PyPegen_expect_token(p, 521)) // token='except'
18817 &&
18818 (a = expression_rule(p)) // expression
18819 &&
18820 (_literal = _PyPegen_expect_token(p, 12)) // token=','
18821 &&
18822 (expressions_var = expressions_rule(p)) // expressions
18823 &&
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018824 (_opt_var = _tmp_163_rule(p), 1) // ['as' NAME]
Pablo Galindo206cbda2021-02-07 18:42:21 +000018825 &&
18826 (_literal_1 = _PyPegen_expect_token(p, 11)) // token=':'
18827 )
18828 {
18829 D(fprintf(stderr, "%*c+ invalid_except_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' expression ',' expressions ['as' NAME] ':'"));
18830 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "exception group must be parenthesized" );
18831 if (_res == NULL && PyErr_Occurred()) {
18832 p->error_indicator = 1;
18833 D(p->level--);
18834 return NULL;
18835 }
18836 goto done;
18837 }
18838 p->mark = _mark;
18839 D(fprintf(stderr, "%*c%s invalid_except_block[%d-%d]: %s failed!\n", p->level, ' ',
18840 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' expression ',' expressions ['as' NAME] ':'"));
18841 }
18842 { // 'except' expression ['as' NAME] &&':'
18843 if (p->error_indicator) {
18844 D(p->level--);
18845 return NULL;
18846 }
18847 D(fprintf(stderr, "%*c> invalid_except_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' expression ['as' NAME] &&':'"));
18848 Token * _keyword;
18849 Token * _literal;
18850 void *_opt_var;
18851 UNUSED(_opt_var); // Silence compiler warnings
18852 expr_ty expression_var;
18853 if (
18854 (_keyword = _PyPegen_expect_token(p, 521)) // token='except'
18855 &&
18856 (expression_var = expression_rule(p)) // expression
18857 &&
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018858 (_opt_var = _tmp_164_rule(p), 1) // ['as' NAME]
Pablo Galindo206cbda2021-02-07 18:42:21 +000018859 &&
18860 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
18861 )
18862 {
18863 D(fprintf(stderr, "%*c+ invalid_except_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' expression ['as' NAME] &&':'"));
18864 _res = _PyPegen_dummy_name(p, _keyword, expression_var, _opt_var, _literal);
18865 goto done;
18866 }
18867 p->mark = _mark;
18868 D(fprintf(stderr, "%*c%s invalid_except_block[%d-%d]: %s failed!\n", p->level, ' ',
18869 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' expression ['as' NAME] &&':'"));
18870 }
18871 { // 'except' &&':'
18872 if (p->error_indicator) {
18873 D(p->level--);
18874 return NULL;
18875 }
18876 D(fprintf(stderr, "%*c> invalid_except_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' &&':'"));
18877 Token * _keyword;
18878 Token * _literal;
18879 if (
18880 (_keyword = _PyPegen_expect_token(p, 521)) // token='except'
18881 &&
18882 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
18883 )
18884 {
18885 D(fprintf(stderr, "%*c+ invalid_except_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' &&':'"));
18886 _res = _PyPegen_dummy_name(p, _keyword, _literal);
18887 goto done;
18888 }
18889 p->mark = _mark;
18890 D(fprintf(stderr, "%*c%s invalid_except_block[%d-%d]: %s failed!\n", p->level, ' ',
18891 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' &&':'"));
18892 }
18893 _res = NULL;
18894 done:
18895 D(p->level--);
18896 return _res;
18897}
18898
Pablo Galindo08fb8ac2021-03-18 01:03:11 +000018899// invalid_match_stmt: "match" subject_expr !':'
18900static void *
18901invalid_match_stmt_rule(Parser *p)
18902{
18903 D(p->level++);
18904 if (p->error_indicator) {
18905 D(p->level--);
18906 return NULL;
18907 }
18908 void * _res = NULL;
18909 int _mark = p->mark;
18910 { // "match" subject_expr !':'
18911 if (p->error_indicator) {
18912 D(p->level--);
18913 return NULL;
18914 }
18915 D(fprintf(stderr, "%*c> invalid_match_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"match\" subject_expr !':'"));
18916 expr_ty _keyword;
18917 expr_ty subject_expr_var;
18918 if (
18919 (_keyword = _PyPegen_expect_soft_keyword(p, "match")) // soft_keyword='"match"'
18920 &&
18921 (subject_expr_var = subject_expr_rule(p)) // subject_expr
18922 &&
18923 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 11) // token=':'
18924 )
18925 {
18926 D(fprintf(stderr, "%*c+ invalid_match_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"match\" subject_expr !':'"));
18927 _res = CHECK_VERSION ( void * , 10 , "Pattern matching is" , RAISE_SYNTAX_ERROR ( "expected ':'" ) );
18928 if (_res == NULL && PyErr_Occurred()) {
18929 p->error_indicator = 1;
18930 D(p->level--);
18931 return NULL;
18932 }
18933 goto done;
18934 }
18935 p->mark = _mark;
18936 D(fprintf(stderr, "%*c%s invalid_match_stmt[%d-%d]: %s failed!\n", p->level, ' ',
18937 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"match\" subject_expr !':'"));
18938 }
18939 _res = NULL;
18940 done:
18941 D(p->level--);
18942 return _res;
18943}
18944
18945// invalid_case_block: "case" patterns guard? !':'
18946static void *
18947invalid_case_block_rule(Parser *p)
18948{
18949 D(p->level++);
18950 if (p->error_indicator) {
18951 D(p->level--);
18952 return NULL;
18953 }
18954 void * _res = NULL;
18955 int _mark = p->mark;
18956 { // "case" patterns guard? !':'
18957 if (p->error_indicator) {
18958 D(p->level--);
18959 return NULL;
18960 }
18961 D(fprintf(stderr, "%*c> invalid_case_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"case\" patterns guard? !':'"));
18962 expr_ty _keyword;
18963 void *_opt_var;
18964 UNUSED(_opt_var); // Silence compiler warnings
18965 expr_ty patterns_var;
18966 if (
18967 (_keyword = _PyPegen_expect_soft_keyword(p, "case")) // soft_keyword='"case"'
18968 &&
18969 (patterns_var = patterns_rule(p)) // patterns
18970 &&
18971 (_opt_var = guard_rule(p), 1) // guard?
18972 &&
18973 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 11) // token=':'
18974 )
18975 {
18976 D(fprintf(stderr, "%*c+ invalid_case_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"case\" patterns guard? !':'"));
18977 _res = RAISE_SYNTAX_ERROR ( "expected ':'" );
18978 if (_res == NULL && PyErr_Occurred()) {
18979 p->error_indicator = 1;
18980 D(p->level--);
18981 return NULL;
18982 }
18983 goto done;
18984 }
18985 p->mark = _mark;
18986 D(fprintf(stderr, "%*c%s invalid_case_block[%d-%d]: %s failed!\n", p->level, ' ',
18987 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"case\" patterns guard? !':'"));
18988 }
18989 _res = NULL;
18990 done:
18991 D(p->level--);
18992 return _res;
18993}
18994
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018995// invalid_if_stmt: 'if' named_expression NEWLINE
18996static void *
18997invalid_if_stmt_rule(Parser *p)
18998{
18999 D(p->level++);
19000 if (p->error_indicator) {
19001 D(p->level--);
19002 return NULL;
19003 }
19004 void * _res = NULL;
19005 int _mark = p->mark;
19006 { // 'if' named_expression NEWLINE
19007 if (p->error_indicator) {
19008 D(p->level--);
19009 return NULL;
19010 }
19011 D(fprintf(stderr, "%*c> invalid_if_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' named_expression NEWLINE"));
19012 Token * _keyword;
19013 expr_ty named_expression_var;
19014 Token * newline_var;
19015 if (
19016 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
19017 &&
19018 (named_expression_var = named_expression_rule(p)) // named_expression
19019 &&
19020 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
19021 )
19022 {
19023 D(fprintf(stderr, "%*c+ invalid_if_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' named_expression NEWLINE"));
19024 _res = RAISE_SYNTAX_ERROR ( "expected ':'" );
19025 if (_res == NULL && PyErr_Occurred()) {
19026 p->error_indicator = 1;
19027 D(p->level--);
19028 return NULL;
19029 }
19030 goto done;
19031 }
19032 p->mark = _mark;
19033 D(fprintf(stderr, "%*c%s invalid_if_stmt[%d-%d]: %s failed!\n", p->level, ' ',
19034 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression NEWLINE"));
19035 }
19036 _res = NULL;
19037 done:
19038 D(p->level--);
19039 return _res;
19040}
19041
19042// invalid_elif_stmt: 'elif' named_expression NEWLINE
19043static void *
19044invalid_elif_stmt_rule(Parser *p)
19045{
19046 D(p->level++);
19047 if (p->error_indicator) {
19048 D(p->level--);
19049 return NULL;
19050 }
19051 void * _res = NULL;
19052 int _mark = p->mark;
19053 { // 'elif' named_expression NEWLINE
19054 if (p->error_indicator) {
19055 D(p->level--);
19056 return NULL;
19057 }
19058 D(fprintf(stderr, "%*c> invalid_elif_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'elif' named_expression NEWLINE"));
19059 Token * _keyword;
19060 expr_ty named_expression_var;
19061 Token * newline_var;
19062 if (
19063 (_keyword = _PyPegen_expect_token(p, 515)) // token='elif'
19064 &&
19065 (named_expression_var = named_expression_rule(p)) // named_expression
19066 &&
19067 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
19068 )
19069 {
19070 D(fprintf(stderr, "%*c+ invalid_elif_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'elif' named_expression NEWLINE"));
19071 _res = RAISE_SYNTAX_ERROR ( "expected ':'" );
19072 if (_res == NULL && PyErr_Occurred()) {
19073 p->error_indicator = 1;
19074 D(p->level--);
19075 return NULL;
19076 }
19077 goto done;
19078 }
19079 p->mark = _mark;
19080 D(fprintf(stderr, "%*c%s invalid_elif_stmt[%d-%d]: %s failed!\n", p->level, ' ',
19081 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'elif' named_expression NEWLINE"));
19082 }
19083 _res = NULL;
19084 done:
19085 D(p->level--);
19086 return _res;
19087}
19088
19089// invalid_while_stmt: 'while' named_expression NEWLINE
19090static void *
19091invalid_while_stmt_rule(Parser *p)
19092{
19093 D(p->level++);
19094 if (p->error_indicator) {
19095 D(p->level--);
19096 return NULL;
19097 }
19098 void * _res = NULL;
19099 int _mark = p->mark;
19100 { // 'while' named_expression NEWLINE
19101 if (p->error_indicator) {
19102 D(p->level--);
19103 return NULL;
19104 }
19105 D(fprintf(stderr, "%*c> invalid_while_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'while' named_expression NEWLINE"));
19106 Token * _keyword;
19107 expr_ty named_expression_var;
19108 Token * newline_var;
19109 if (
19110 (_keyword = _PyPegen_expect_token(p, 512)) // token='while'
19111 &&
19112 (named_expression_var = named_expression_rule(p)) // named_expression
19113 &&
19114 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
19115 )
19116 {
19117 D(fprintf(stderr, "%*c+ invalid_while_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'while' named_expression NEWLINE"));
19118 _res = RAISE_SYNTAX_ERROR ( "expected ':'" );
19119 if (_res == NULL && PyErr_Occurred()) {
19120 p->error_indicator = 1;
19121 D(p->level--);
19122 return NULL;
19123 }
19124 goto done;
19125 }
19126 p->mark = _mark;
19127 D(fprintf(stderr, "%*c%s invalid_while_stmt[%d-%d]: %s failed!\n", p->level, ' ',
19128 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'while' named_expression NEWLINE"));
19129 }
19130 _res = NULL;
19131 done:
19132 D(p->level--);
19133 return _res;
19134}
19135
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019136// _loop0_1: NEWLINE
19137static asdl_seq *
19138_loop0_1_rule(Parser *p)
19139{
19140 D(p->level++);
19141 if (p->error_indicator) {
19142 D(p->level--);
19143 return NULL;
19144 }
19145 void *_res = NULL;
19146 int _mark = p->mark;
19147 int _start_mark = p->mark;
19148 void **_children = PyMem_Malloc(sizeof(void *));
19149 if (!_children) {
19150 p->error_indicator = 1;
19151 PyErr_NoMemory();
19152 D(p->level--);
19153 return NULL;
19154 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010019155 Py_ssize_t _children_capacity = 1;
19156 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019157 { // NEWLINE
19158 if (p->error_indicator) {
19159 D(p->level--);
19160 return NULL;
19161 }
19162 D(fprintf(stderr, "%*c> _loop0_1[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
19163 Token * newline_var;
19164 while (
19165 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
19166 )
19167 {
19168 _res = newline_var;
19169 if (_n == _children_capacity) {
19170 _children_capacity *= 2;
19171 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19172 if (!_new_children) {
19173 p->error_indicator = 1;
19174 PyErr_NoMemory();
19175 D(p->level--);
19176 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000019177 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019178 _children = _new_children;
19179 }
19180 _children[_n++] = _res;
19181 _mark = p->mark;
19182 }
19183 p->mark = _mark;
19184 D(fprintf(stderr, "%*c%s _loop0_1[%d-%d]: %s failed!\n", p->level, ' ',
19185 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
19186 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019187 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019188 if (!_seq) {
19189 PyMem_Free(_children);
19190 p->error_indicator = 1;
19191 PyErr_NoMemory();
19192 D(p->level--);
19193 return NULL;
19194 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019195 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019196 PyMem_Free(_children);
19197 _PyPegen_insert_memo(p, _start_mark, _loop0_1_type, _seq);
19198 D(p->level--);
19199 return _seq;
19200}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000019201
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019202// _loop0_2: NEWLINE
19203static asdl_seq *
19204_loop0_2_rule(Parser *p)
19205{
19206 D(p->level++);
19207 if (p->error_indicator) {
19208 D(p->level--);
19209 return NULL;
19210 }
19211 void *_res = NULL;
19212 int _mark = p->mark;
19213 int _start_mark = p->mark;
19214 void **_children = PyMem_Malloc(sizeof(void *));
19215 if (!_children) {
19216 p->error_indicator = 1;
19217 PyErr_NoMemory();
19218 D(p->level--);
19219 return NULL;
19220 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010019221 Py_ssize_t _children_capacity = 1;
19222 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019223 { // NEWLINE
19224 if (p->error_indicator) {
19225 D(p->level--);
19226 return NULL;
19227 }
19228 D(fprintf(stderr, "%*c> _loop0_2[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
19229 Token * newline_var;
19230 while (
19231 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
19232 )
19233 {
19234 _res = newline_var;
19235 if (_n == _children_capacity) {
19236 _children_capacity *= 2;
19237 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19238 if (!_new_children) {
19239 p->error_indicator = 1;
19240 PyErr_NoMemory();
19241 D(p->level--);
19242 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000019243 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019244 _children = _new_children;
19245 }
19246 _children[_n++] = _res;
19247 _mark = p->mark;
19248 }
19249 p->mark = _mark;
19250 D(fprintf(stderr, "%*c%s _loop0_2[%d-%d]: %s failed!\n", p->level, ' ',
19251 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
19252 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019253 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019254 if (!_seq) {
19255 PyMem_Free(_children);
19256 p->error_indicator = 1;
19257 PyErr_NoMemory();
19258 D(p->level--);
19259 return NULL;
19260 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019261 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019262 PyMem_Free(_children);
19263 _PyPegen_insert_memo(p, _start_mark, _loop0_2_type, _seq);
19264 D(p->level--);
19265 return _seq;
19266}
19267
19268// _loop0_4: ',' expression
19269static asdl_seq *
19270_loop0_4_rule(Parser *p)
19271{
19272 D(p->level++);
19273 if (p->error_indicator) {
19274 D(p->level--);
19275 return NULL;
19276 }
19277 void *_res = NULL;
19278 int _mark = p->mark;
19279 int _start_mark = p->mark;
19280 void **_children = PyMem_Malloc(sizeof(void *));
19281 if (!_children) {
19282 p->error_indicator = 1;
19283 PyErr_NoMemory();
19284 D(p->level--);
19285 return NULL;
19286 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010019287 Py_ssize_t _children_capacity = 1;
19288 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019289 { // ',' expression
19290 if (p->error_indicator) {
19291 D(p->level--);
19292 return NULL;
19293 }
19294 D(fprintf(stderr, "%*c> _loop0_4[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
19295 Token * _literal;
19296 expr_ty elem;
19297 while (
19298 (_literal = _PyPegen_expect_token(p, 12)) // token=','
19299 &&
19300 (elem = expression_rule(p)) // expression
19301 )
19302 {
19303 _res = elem;
19304 if (_res == NULL && PyErr_Occurred()) {
19305 p->error_indicator = 1;
19306 PyMem_Free(_children);
19307 D(p->level--);
19308 return NULL;
19309 }
19310 if (_n == _children_capacity) {
19311 _children_capacity *= 2;
19312 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19313 if (!_new_children) {
19314 p->error_indicator = 1;
19315 PyErr_NoMemory();
19316 D(p->level--);
19317 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000019318 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019319 _children = _new_children;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000019320 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019321 _children[_n++] = _res;
19322 _mark = p->mark;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000019323 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019324 p->mark = _mark;
19325 D(fprintf(stderr, "%*c%s _loop0_4[%d-%d]: %s failed!\n", p->level, ' ',
19326 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000019327 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019328 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019329 if (!_seq) {
19330 PyMem_Free(_children);
19331 p->error_indicator = 1;
19332 PyErr_NoMemory();
19333 D(p->level--);
19334 return NULL;
19335 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019336 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019337 PyMem_Free(_children);
19338 _PyPegen_insert_memo(p, _start_mark, _loop0_4_type, _seq);
19339 D(p->level--);
19340 return _seq;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000019341}
19342
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019343// _gather_3: expression _loop0_4
19344static asdl_seq *
19345_gather_3_rule(Parser *p)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000019346{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019347 D(p->level++);
19348 if (p->error_indicator) {
19349 D(p->level--);
19350 return NULL;
19351 }
19352 asdl_seq * _res = NULL;
19353 int _mark = p->mark;
19354 { // expression _loop0_4
19355 if (p->error_indicator) {
19356 D(p->level--);
19357 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000019358 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019359 D(fprintf(stderr, "%*c> _gather_3[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_4"));
19360 expr_ty elem;
19361 asdl_seq * seq;
19362 if (
19363 (elem = expression_rule(p)) // expression
19364 &&
19365 (seq = _loop0_4_rule(p)) // _loop0_4
19366 )
19367 {
19368 D(fprintf(stderr, "%*c+ _gather_3[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_4"));
19369 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
19370 goto done;
19371 }
19372 p->mark = _mark;
19373 D(fprintf(stderr, "%*c%s _gather_3[%d-%d]: %s failed!\n", p->level, ' ',
19374 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_4"));
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000019375 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019376 _res = NULL;
19377 done:
19378 D(p->level--);
19379 return _res;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000019380}
19381
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019382// _loop0_6: ',' expression
19383static asdl_seq *
19384_loop0_6_rule(Parser *p)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000019385{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019386 D(p->level++);
19387 if (p->error_indicator) {
19388 D(p->level--);
19389 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000019390 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019391 void *_res = NULL;
19392 int _mark = p->mark;
19393 int _start_mark = p->mark;
19394 void **_children = PyMem_Malloc(sizeof(void *));
19395 if (!_children) {
19396 p->error_indicator = 1;
19397 PyErr_NoMemory();
19398 D(p->level--);
19399 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000019400 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010019401 Py_ssize_t _children_capacity = 1;
19402 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019403 { // ',' expression
19404 if (p->error_indicator) {
19405 D(p->level--);
19406 return NULL;
19407 }
19408 D(fprintf(stderr, "%*c> _loop0_6[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
19409 Token * _literal;
19410 expr_ty elem;
19411 while (
19412 (_literal = _PyPegen_expect_token(p, 12)) // token=','
19413 &&
19414 (elem = expression_rule(p)) // expression
19415 )
19416 {
19417 _res = elem;
19418 if (_res == NULL && PyErr_Occurred()) {
19419 p->error_indicator = 1;
19420 PyMem_Free(_children);
19421 D(p->level--);
19422 return NULL;
19423 }
19424 if (_n == _children_capacity) {
19425 _children_capacity *= 2;
19426 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19427 if (!_new_children) {
19428 p->error_indicator = 1;
19429 PyErr_NoMemory();
19430 D(p->level--);
19431 return NULL;
19432 }
19433 _children = _new_children;
19434 }
19435 _children[_n++] = _res;
19436 _mark = p->mark;
19437 }
19438 p->mark = _mark;
19439 D(fprintf(stderr, "%*c%s _loop0_6[%d-%d]: %s failed!\n", p->level, ' ',
19440 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
19441 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019442 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019443 if (!_seq) {
19444 PyMem_Free(_children);
19445 p->error_indicator = 1;
19446 PyErr_NoMemory();
19447 D(p->level--);
19448 return NULL;
19449 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019450 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019451 PyMem_Free(_children);
19452 _PyPegen_insert_memo(p, _start_mark, _loop0_6_type, _seq);
19453 D(p->level--);
19454 return _seq;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000019455}
19456
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019457// _gather_5: expression _loop0_6
19458static asdl_seq *
19459_gather_5_rule(Parser *p)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000019460{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019461 D(p->level++);
19462 if (p->error_indicator) {
19463 D(p->level--);
19464 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000019465 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019466 asdl_seq * _res = NULL;
19467 int _mark = p->mark;
19468 { // expression _loop0_6
19469 if (p->error_indicator) {
19470 D(p->level--);
19471 return NULL;
19472 }
19473 D(fprintf(stderr, "%*c> _gather_5[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_6"));
19474 expr_ty elem;
19475 asdl_seq * seq;
19476 if (
19477 (elem = expression_rule(p)) // expression
19478 &&
19479 (seq = _loop0_6_rule(p)) // _loop0_6
19480 )
19481 {
19482 D(fprintf(stderr, "%*c+ _gather_5[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_6"));
19483 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
19484 goto done;
19485 }
19486 p->mark = _mark;
19487 D(fprintf(stderr, "%*c%s _gather_5[%d-%d]: %s failed!\n", p->level, ' ',
19488 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_6"));
19489 }
19490 _res = NULL;
19491 done:
19492 D(p->level--);
19493 return _res;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000019494}
19495
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019496// _loop0_8: ',' expression
19497static asdl_seq *
19498_loop0_8_rule(Parser *p)
19499{
19500 D(p->level++);
19501 if (p->error_indicator) {
19502 D(p->level--);
19503 return NULL;
19504 }
19505 void *_res = NULL;
19506 int _mark = p->mark;
19507 int _start_mark = p->mark;
19508 void **_children = PyMem_Malloc(sizeof(void *));
19509 if (!_children) {
19510 p->error_indicator = 1;
19511 PyErr_NoMemory();
19512 D(p->level--);
19513 return NULL;
19514 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010019515 Py_ssize_t _children_capacity = 1;
19516 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019517 { // ',' expression
19518 if (p->error_indicator) {
19519 D(p->level--);
19520 return NULL;
19521 }
19522 D(fprintf(stderr, "%*c> _loop0_8[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
19523 Token * _literal;
19524 expr_ty elem;
19525 while (
19526 (_literal = _PyPegen_expect_token(p, 12)) // token=','
19527 &&
19528 (elem = expression_rule(p)) // expression
19529 )
19530 {
19531 _res = elem;
19532 if (_res == NULL && PyErr_Occurred()) {
19533 p->error_indicator = 1;
19534 PyMem_Free(_children);
19535 D(p->level--);
19536 return NULL;
19537 }
19538 if (_n == _children_capacity) {
19539 _children_capacity *= 2;
19540 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19541 if (!_new_children) {
19542 p->error_indicator = 1;
19543 PyErr_NoMemory();
19544 D(p->level--);
19545 return NULL;
19546 }
19547 _children = _new_children;
19548 }
19549 _children[_n++] = _res;
19550 _mark = p->mark;
19551 }
19552 p->mark = _mark;
19553 D(fprintf(stderr, "%*c%s _loop0_8[%d-%d]: %s failed!\n", p->level, ' ',
19554 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
19555 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019556 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019557 if (!_seq) {
19558 PyMem_Free(_children);
19559 p->error_indicator = 1;
19560 PyErr_NoMemory();
19561 D(p->level--);
19562 return NULL;
19563 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019564 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019565 PyMem_Free(_children);
19566 _PyPegen_insert_memo(p, _start_mark, _loop0_8_type, _seq);
19567 D(p->level--);
19568 return _seq;
19569}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000019570
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019571// _gather_7: expression _loop0_8
19572static asdl_seq *
19573_gather_7_rule(Parser *p)
19574{
19575 D(p->level++);
19576 if (p->error_indicator) {
19577 D(p->level--);
19578 return NULL;
19579 }
19580 asdl_seq * _res = NULL;
19581 int _mark = p->mark;
19582 { // expression _loop0_8
19583 if (p->error_indicator) {
19584 D(p->level--);
19585 return NULL;
19586 }
19587 D(fprintf(stderr, "%*c> _gather_7[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_8"));
19588 expr_ty elem;
19589 asdl_seq * seq;
19590 if (
19591 (elem = expression_rule(p)) // expression
19592 &&
19593 (seq = _loop0_8_rule(p)) // _loop0_8
19594 )
19595 {
19596 D(fprintf(stderr, "%*c+ _gather_7[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_8"));
19597 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
19598 goto done;
19599 }
19600 p->mark = _mark;
19601 D(fprintf(stderr, "%*c%s _gather_7[%d-%d]: %s failed!\n", p->level, ' ',
19602 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_8"));
19603 }
19604 _res = NULL;
19605 done:
19606 D(p->level--);
19607 return _res;
19608}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000019609
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019610// _loop0_10: ',' expression
19611static asdl_seq *
19612_loop0_10_rule(Parser *p)
19613{
19614 D(p->level++);
19615 if (p->error_indicator) {
19616 D(p->level--);
19617 return NULL;
19618 }
19619 void *_res = NULL;
19620 int _mark = p->mark;
19621 int _start_mark = p->mark;
19622 void **_children = PyMem_Malloc(sizeof(void *));
19623 if (!_children) {
19624 p->error_indicator = 1;
19625 PyErr_NoMemory();
19626 D(p->level--);
19627 return NULL;
19628 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010019629 Py_ssize_t _children_capacity = 1;
19630 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019631 { // ',' expression
19632 if (p->error_indicator) {
19633 D(p->level--);
19634 return NULL;
19635 }
19636 D(fprintf(stderr, "%*c> _loop0_10[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
19637 Token * _literal;
19638 expr_ty elem;
19639 while (
19640 (_literal = _PyPegen_expect_token(p, 12)) // token=','
19641 &&
19642 (elem = expression_rule(p)) // expression
19643 )
19644 {
19645 _res = elem;
19646 if (_res == NULL && PyErr_Occurred()) {
19647 p->error_indicator = 1;
19648 PyMem_Free(_children);
19649 D(p->level--);
19650 return NULL;
19651 }
19652 if (_n == _children_capacity) {
19653 _children_capacity *= 2;
19654 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19655 if (!_new_children) {
19656 p->error_indicator = 1;
19657 PyErr_NoMemory();
19658 D(p->level--);
19659 return NULL;
19660 }
19661 _children = _new_children;
19662 }
19663 _children[_n++] = _res;
19664 _mark = p->mark;
19665 }
19666 p->mark = _mark;
19667 D(fprintf(stderr, "%*c%s _loop0_10[%d-%d]: %s failed!\n", p->level, ' ',
19668 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
19669 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019670 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019671 if (!_seq) {
19672 PyMem_Free(_children);
19673 p->error_indicator = 1;
19674 PyErr_NoMemory();
19675 D(p->level--);
19676 return NULL;
19677 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019678 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019679 PyMem_Free(_children);
19680 _PyPegen_insert_memo(p, _start_mark, _loop0_10_type, _seq);
19681 D(p->level--);
19682 return _seq;
19683}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000019684
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019685// _gather_9: expression _loop0_10
19686static asdl_seq *
19687_gather_9_rule(Parser *p)
19688{
19689 D(p->level++);
19690 if (p->error_indicator) {
19691 D(p->level--);
19692 return NULL;
19693 }
19694 asdl_seq * _res = NULL;
19695 int _mark = p->mark;
19696 { // expression _loop0_10
19697 if (p->error_indicator) {
19698 D(p->level--);
19699 return NULL;
19700 }
19701 D(fprintf(stderr, "%*c> _gather_9[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_10"));
19702 expr_ty elem;
19703 asdl_seq * seq;
19704 if (
19705 (elem = expression_rule(p)) // expression
19706 &&
19707 (seq = _loop0_10_rule(p)) // _loop0_10
19708 )
19709 {
19710 D(fprintf(stderr, "%*c+ _gather_9[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_10"));
19711 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
19712 goto done;
19713 }
19714 p->mark = _mark;
19715 D(fprintf(stderr, "%*c%s _gather_9[%d-%d]: %s failed!\n", p->level, ' ',
19716 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_10"));
19717 }
19718 _res = NULL;
19719 done:
19720 D(p->level--);
19721 return _res;
19722}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000019723
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019724// _loop1_11: statement
19725static asdl_seq *
19726_loop1_11_rule(Parser *p)
19727{
19728 D(p->level++);
19729 if (p->error_indicator) {
19730 D(p->level--);
19731 return NULL;
19732 }
19733 void *_res = NULL;
19734 int _mark = p->mark;
19735 int _start_mark = p->mark;
19736 void **_children = PyMem_Malloc(sizeof(void *));
19737 if (!_children) {
19738 p->error_indicator = 1;
19739 PyErr_NoMemory();
19740 D(p->level--);
19741 return NULL;
19742 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010019743 Py_ssize_t _children_capacity = 1;
19744 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019745 { // statement
19746 if (p->error_indicator) {
19747 D(p->level--);
19748 return NULL;
19749 }
19750 D(fprintf(stderr, "%*c> _loop1_11[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statement"));
Pablo Galindoa5634c42020-09-16 19:42:00 +010019751 asdl_stmt_seq* statement_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019752 while (
19753 (statement_var = statement_rule(p)) // statement
19754 )
19755 {
19756 _res = statement_var;
19757 if (_n == _children_capacity) {
19758 _children_capacity *= 2;
19759 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19760 if (!_new_children) {
19761 p->error_indicator = 1;
19762 PyErr_NoMemory();
19763 D(p->level--);
19764 return NULL;
19765 }
19766 _children = _new_children;
19767 }
19768 _children[_n++] = _res;
19769 _mark = p->mark;
19770 }
19771 p->mark = _mark;
19772 D(fprintf(stderr, "%*c%s _loop1_11[%d-%d]: %s failed!\n", p->level, ' ',
19773 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statement"));
19774 }
19775 if (_n == 0 || p->error_indicator) {
19776 PyMem_Free(_children);
19777 D(p->level--);
19778 return NULL;
19779 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019780 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019781 if (!_seq) {
19782 PyMem_Free(_children);
19783 p->error_indicator = 1;
19784 PyErr_NoMemory();
19785 D(p->level--);
19786 return NULL;
19787 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019788 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019789 PyMem_Free(_children);
19790 _PyPegen_insert_memo(p, _start_mark, _loop1_11_type, _seq);
19791 D(p->level--);
19792 return _seq;
19793}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000019794
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000019795// _loop0_13: ';' simple_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019796static asdl_seq *
19797_loop0_13_rule(Parser *p)
19798{
19799 D(p->level++);
19800 if (p->error_indicator) {
19801 D(p->level--);
19802 return NULL;
19803 }
19804 void *_res = NULL;
19805 int _mark = p->mark;
19806 int _start_mark = p->mark;
19807 void **_children = PyMem_Malloc(sizeof(void *));
19808 if (!_children) {
19809 p->error_indicator = 1;
19810 PyErr_NoMemory();
19811 D(p->level--);
19812 return NULL;
19813 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010019814 Py_ssize_t _children_capacity = 1;
19815 Py_ssize_t _n = 0;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000019816 { // ';' simple_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019817 if (p->error_indicator) {
19818 D(p->level--);
19819 return NULL;
19820 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000019821 D(fprintf(stderr, "%*c> _loop0_13[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "';' simple_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019822 Token * _literal;
19823 stmt_ty elem;
19824 while (
19825 (_literal = _PyPegen_expect_token(p, 13)) // token=';'
19826 &&
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000019827 (elem = simple_stmt_rule(p)) // simple_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019828 )
19829 {
19830 _res = elem;
19831 if (_res == NULL && PyErr_Occurred()) {
19832 p->error_indicator = 1;
19833 PyMem_Free(_children);
19834 D(p->level--);
19835 return NULL;
19836 }
19837 if (_n == _children_capacity) {
19838 _children_capacity *= 2;
19839 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19840 if (!_new_children) {
19841 p->error_indicator = 1;
19842 PyErr_NoMemory();
19843 D(p->level--);
19844 return NULL;
19845 }
19846 _children = _new_children;
19847 }
19848 _children[_n++] = _res;
19849 _mark = p->mark;
19850 }
19851 p->mark = _mark;
19852 D(fprintf(stderr, "%*c%s _loop0_13[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000019853 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "';' simple_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019854 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019855 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019856 if (!_seq) {
19857 PyMem_Free(_children);
19858 p->error_indicator = 1;
19859 PyErr_NoMemory();
19860 D(p->level--);
19861 return NULL;
19862 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019863 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019864 PyMem_Free(_children);
19865 _PyPegen_insert_memo(p, _start_mark, _loop0_13_type, _seq);
19866 D(p->level--);
19867 return _seq;
19868}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000019869
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000019870// _gather_12: simple_stmt _loop0_13
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019871static asdl_seq *
19872_gather_12_rule(Parser *p)
19873{
19874 D(p->level++);
19875 if (p->error_indicator) {
19876 D(p->level--);
19877 return NULL;
19878 }
19879 asdl_seq * _res = NULL;
19880 int _mark = p->mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000019881 { // simple_stmt _loop0_13
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019882 if (p->error_indicator) {
19883 D(p->level--);
19884 return NULL;
19885 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000019886 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 +010019887 stmt_ty elem;
19888 asdl_seq * seq;
19889 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000019890 (elem = simple_stmt_rule(p)) // simple_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019891 &&
19892 (seq = _loop0_13_rule(p)) // _loop0_13
19893 )
19894 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000019895 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 +010019896 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
19897 goto done;
19898 }
19899 p->mark = _mark;
19900 D(fprintf(stderr, "%*c%s _gather_12[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000019901 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmt _loop0_13"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019902 }
19903 _res = NULL;
19904 done:
19905 D(p->level--);
19906 return _res;
19907}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000019908
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019909// _tmp_14: 'import' | 'from'
19910static void *
19911_tmp_14_rule(Parser *p)
19912{
19913 D(p->level++);
19914 if (p->error_indicator) {
19915 D(p->level--);
19916 return NULL;
19917 }
19918 void * _res = NULL;
19919 int _mark = p->mark;
19920 { // 'import'
19921 if (p->error_indicator) {
19922 D(p->level--);
19923 return NULL;
19924 }
19925 D(fprintf(stderr, "%*c> _tmp_14[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'import'"));
19926 Token * _keyword;
19927 if (
19928 (_keyword = _PyPegen_expect_token(p, 513)) // token='import'
19929 )
19930 {
19931 D(fprintf(stderr, "%*c+ _tmp_14[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'import'"));
19932 _res = _keyword;
19933 goto done;
19934 }
19935 p->mark = _mark;
19936 D(fprintf(stderr, "%*c%s _tmp_14[%d-%d]: %s failed!\n", p->level, ' ',
19937 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'import'"));
19938 }
19939 { // 'from'
19940 if (p->error_indicator) {
19941 D(p->level--);
19942 return NULL;
19943 }
19944 D(fprintf(stderr, "%*c> _tmp_14[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from'"));
19945 Token * _keyword;
19946 if (
19947 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
19948 )
19949 {
19950 D(fprintf(stderr, "%*c+ _tmp_14[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'from'"));
19951 _res = _keyword;
19952 goto done;
19953 }
19954 p->mark = _mark;
19955 D(fprintf(stderr, "%*c%s _tmp_14[%d-%d]: %s failed!\n", p->level, ' ',
19956 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from'"));
19957 }
19958 _res = NULL;
19959 done:
19960 D(p->level--);
19961 return _res;
19962}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000019963
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019964// _tmp_15: 'def' | '@' | ASYNC
19965static void *
19966_tmp_15_rule(Parser *p)
19967{
19968 D(p->level++);
19969 if (p->error_indicator) {
19970 D(p->level--);
19971 return NULL;
19972 }
19973 void * _res = NULL;
19974 int _mark = p->mark;
19975 { // 'def'
19976 if (p->error_indicator) {
19977 D(p->level--);
19978 return NULL;
19979 }
19980 D(fprintf(stderr, "%*c> _tmp_15[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'def'"));
19981 Token * _keyword;
19982 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080019983 (_keyword = _PyPegen_expect_token(p, 526)) // token='def'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019984 )
19985 {
19986 D(fprintf(stderr, "%*c+ _tmp_15[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'def'"));
19987 _res = _keyword;
19988 goto done;
19989 }
19990 p->mark = _mark;
19991 D(fprintf(stderr, "%*c%s _tmp_15[%d-%d]: %s failed!\n", p->level, ' ',
19992 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'def'"));
19993 }
19994 { // '@'
19995 if (p->error_indicator) {
19996 D(p->level--);
19997 return NULL;
19998 }
19999 D(fprintf(stderr, "%*c> _tmp_15[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@'"));
20000 Token * _literal;
20001 if (
20002 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
20003 )
20004 {
20005 D(fprintf(stderr, "%*c+ _tmp_15[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@'"));
20006 _res = _literal;
20007 goto done;
20008 }
20009 p->mark = _mark;
20010 D(fprintf(stderr, "%*c%s _tmp_15[%d-%d]: %s failed!\n", p->level, ' ',
20011 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@'"));
20012 }
20013 { // ASYNC
20014 if (p->error_indicator) {
20015 D(p->level--);
20016 return NULL;
20017 }
20018 D(fprintf(stderr, "%*c> _tmp_15[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC"));
20019 Token * async_var;
20020 if (
20021 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
20022 )
20023 {
20024 D(fprintf(stderr, "%*c+ _tmp_15[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC"));
20025 _res = async_var;
20026 goto done;
20027 }
20028 p->mark = _mark;
20029 D(fprintf(stderr, "%*c%s _tmp_15[%d-%d]: %s failed!\n", p->level, ' ',
20030 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC"));
20031 }
20032 _res = NULL;
20033 done:
20034 D(p->level--);
20035 return _res;
20036}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000020037
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020038// _tmp_16: 'class' | '@'
20039static void *
20040_tmp_16_rule(Parser *p)
20041{
20042 D(p->level++);
20043 if (p->error_indicator) {
20044 D(p->level--);
20045 return NULL;
20046 }
20047 void * _res = NULL;
20048 int _mark = p->mark;
20049 { // 'class'
20050 if (p->error_indicator) {
20051 D(p->level--);
20052 return NULL;
20053 }
20054 D(fprintf(stderr, "%*c> _tmp_16[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'class'"));
20055 Token * _keyword;
20056 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080020057 (_keyword = _PyPegen_expect_token(p, 527)) // token='class'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020058 )
20059 {
20060 D(fprintf(stderr, "%*c+ _tmp_16[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'class'"));
20061 _res = _keyword;
20062 goto done;
20063 }
20064 p->mark = _mark;
20065 D(fprintf(stderr, "%*c%s _tmp_16[%d-%d]: %s failed!\n", p->level, ' ',
20066 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'class'"));
20067 }
20068 { // '@'
20069 if (p->error_indicator) {
20070 D(p->level--);
20071 return NULL;
20072 }
20073 D(fprintf(stderr, "%*c> _tmp_16[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@'"));
20074 Token * _literal;
20075 if (
20076 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
20077 )
20078 {
20079 D(fprintf(stderr, "%*c+ _tmp_16[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@'"));
20080 _res = _literal;
20081 goto done;
20082 }
20083 p->mark = _mark;
20084 D(fprintf(stderr, "%*c%s _tmp_16[%d-%d]: %s failed!\n", p->level, ' ',
20085 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@'"));
20086 }
20087 _res = NULL;
20088 done:
20089 D(p->level--);
20090 return _res;
20091}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000020092
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020093// _tmp_17: 'with' | ASYNC
20094static void *
20095_tmp_17_rule(Parser *p)
20096{
20097 D(p->level++);
20098 if (p->error_indicator) {
20099 D(p->level--);
20100 return NULL;
20101 }
20102 void * _res = NULL;
20103 int _mark = p->mark;
20104 { // 'with'
20105 if (p->error_indicator) {
20106 D(p->level--);
20107 return NULL;
20108 }
20109 D(fprintf(stderr, "%*c> _tmp_17[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'with'"));
20110 Token * _keyword;
20111 if (
20112 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
20113 )
20114 {
20115 D(fprintf(stderr, "%*c+ _tmp_17[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'with'"));
20116 _res = _keyword;
20117 goto done;
20118 }
20119 p->mark = _mark;
20120 D(fprintf(stderr, "%*c%s _tmp_17[%d-%d]: %s failed!\n", p->level, ' ',
20121 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'with'"));
20122 }
20123 { // ASYNC
20124 if (p->error_indicator) {
20125 D(p->level--);
20126 return NULL;
20127 }
20128 D(fprintf(stderr, "%*c> _tmp_17[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC"));
20129 Token * async_var;
20130 if (
20131 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
20132 )
20133 {
20134 D(fprintf(stderr, "%*c+ _tmp_17[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC"));
20135 _res = async_var;
20136 goto done;
20137 }
20138 p->mark = _mark;
20139 D(fprintf(stderr, "%*c%s _tmp_17[%d-%d]: %s failed!\n", p->level, ' ',
20140 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC"));
20141 }
20142 _res = NULL;
20143 done:
20144 D(p->level--);
20145 return _res;
20146}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000020147
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020148// _tmp_18: 'for' | ASYNC
20149static void *
20150_tmp_18_rule(Parser *p)
20151{
20152 D(p->level++);
20153 if (p->error_indicator) {
20154 D(p->level--);
20155 return NULL;
20156 }
20157 void * _res = NULL;
20158 int _mark = p->mark;
20159 { // 'for'
20160 if (p->error_indicator) {
20161 D(p->level--);
20162 return NULL;
20163 }
20164 D(fprintf(stderr, "%*c> _tmp_18[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'for'"));
20165 Token * _keyword;
20166 if (
20167 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
20168 )
20169 {
20170 D(fprintf(stderr, "%*c+ _tmp_18[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'for'"));
20171 _res = _keyword;
20172 goto done;
20173 }
20174 p->mark = _mark;
20175 D(fprintf(stderr, "%*c%s _tmp_18[%d-%d]: %s failed!\n", p->level, ' ',
20176 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'for'"));
20177 }
20178 { // ASYNC
20179 if (p->error_indicator) {
20180 D(p->level--);
20181 return NULL;
20182 }
20183 D(fprintf(stderr, "%*c> _tmp_18[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC"));
20184 Token * async_var;
20185 if (
20186 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
20187 )
20188 {
20189 D(fprintf(stderr, "%*c+ _tmp_18[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC"));
20190 _res = async_var;
20191 goto done;
20192 }
20193 p->mark = _mark;
20194 D(fprintf(stderr, "%*c%s _tmp_18[%d-%d]: %s failed!\n", p->level, ' ',
20195 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC"));
20196 }
20197 _res = NULL;
20198 done:
20199 D(p->level--);
20200 return _res;
20201}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000020202
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020203// _tmp_19: '=' annotated_rhs
20204static void *
20205_tmp_19_rule(Parser *p)
20206{
20207 D(p->level++);
20208 if (p->error_indicator) {
20209 D(p->level--);
20210 return NULL;
20211 }
20212 void * _res = NULL;
20213 int _mark = p->mark;
20214 { // '=' annotated_rhs
20215 if (p->error_indicator) {
20216 D(p->level--);
20217 return NULL;
20218 }
20219 D(fprintf(stderr, "%*c> _tmp_19[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
20220 Token * _literal;
20221 expr_ty d;
20222 if (
20223 (_literal = _PyPegen_expect_token(p, 22)) // token='='
20224 &&
20225 (d = annotated_rhs_rule(p)) // annotated_rhs
20226 )
20227 {
20228 D(fprintf(stderr, "%*c+ _tmp_19[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
20229 _res = d;
20230 if (_res == NULL && PyErr_Occurred()) {
20231 p->error_indicator = 1;
20232 D(p->level--);
20233 return NULL;
20234 }
20235 goto done;
20236 }
20237 p->mark = _mark;
20238 D(fprintf(stderr, "%*c%s _tmp_19[%d-%d]: %s failed!\n", p->level, ' ',
20239 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'=' annotated_rhs"));
20240 }
20241 _res = NULL;
20242 done:
20243 D(p->level--);
20244 return _res;
20245}
20246
20247// _tmp_20: '(' single_target ')' | single_subscript_attribute_target
20248static void *
20249_tmp_20_rule(Parser *p)
20250{
20251 D(p->level++);
20252 if (p->error_indicator) {
20253 D(p->level--);
20254 return NULL;
20255 }
20256 void * _res = NULL;
20257 int _mark = p->mark;
20258 { // '(' single_target ')'
20259 if (p->error_indicator) {
20260 D(p->level--);
20261 return NULL;
20262 }
20263 D(fprintf(stderr, "%*c> _tmp_20[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
20264 Token * _literal;
20265 Token * _literal_1;
20266 expr_ty b;
20267 if (
20268 (_literal = _PyPegen_expect_token(p, 7)) // token='('
20269 &&
20270 (b = single_target_rule(p)) // single_target
20271 &&
20272 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
20273 )
20274 {
20275 D(fprintf(stderr, "%*c+ _tmp_20[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
20276 _res = b;
20277 if (_res == NULL && PyErr_Occurred()) {
20278 p->error_indicator = 1;
20279 D(p->level--);
20280 return NULL;
20281 }
20282 goto done;
20283 }
20284 p->mark = _mark;
20285 D(fprintf(stderr, "%*c%s _tmp_20[%d-%d]: %s failed!\n", p->level, ' ',
20286 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' single_target ')'"));
20287 }
20288 { // single_subscript_attribute_target
20289 if (p->error_indicator) {
20290 D(p->level--);
20291 return NULL;
20292 }
20293 D(fprintf(stderr, "%*c> _tmp_20[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "single_subscript_attribute_target"));
20294 expr_ty single_subscript_attribute_target_var;
20295 if (
20296 (single_subscript_attribute_target_var = single_subscript_attribute_target_rule(p)) // single_subscript_attribute_target
20297 )
20298 {
20299 D(fprintf(stderr, "%*c+ _tmp_20[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "single_subscript_attribute_target"));
20300 _res = single_subscript_attribute_target_var;
20301 goto done;
20302 }
20303 p->mark = _mark;
20304 D(fprintf(stderr, "%*c%s _tmp_20[%d-%d]: %s failed!\n", p->level, ' ',
20305 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "single_subscript_attribute_target"));
20306 }
20307 _res = NULL;
20308 done:
20309 D(p->level--);
20310 return _res;
20311}
20312
20313// _tmp_21: '=' annotated_rhs
20314static void *
20315_tmp_21_rule(Parser *p)
20316{
20317 D(p->level++);
20318 if (p->error_indicator) {
20319 D(p->level--);
20320 return NULL;
20321 }
20322 void * _res = NULL;
20323 int _mark = p->mark;
20324 { // '=' annotated_rhs
20325 if (p->error_indicator) {
20326 D(p->level--);
20327 return NULL;
20328 }
20329 D(fprintf(stderr, "%*c> _tmp_21[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
20330 Token * _literal;
20331 expr_ty d;
20332 if (
20333 (_literal = _PyPegen_expect_token(p, 22)) // token='='
20334 &&
20335 (d = annotated_rhs_rule(p)) // annotated_rhs
20336 )
20337 {
20338 D(fprintf(stderr, "%*c+ _tmp_21[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
20339 _res = d;
20340 if (_res == NULL && PyErr_Occurred()) {
20341 p->error_indicator = 1;
20342 D(p->level--);
20343 return NULL;
20344 }
20345 goto done;
20346 }
20347 p->mark = _mark;
20348 D(fprintf(stderr, "%*c%s _tmp_21[%d-%d]: %s failed!\n", p->level, ' ',
20349 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'=' annotated_rhs"));
20350 }
20351 _res = NULL;
20352 done:
20353 D(p->level--);
20354 return _res;
20355}
20356
20357// _loop1_22: (star_targets '=')
20358static asdl_seq *
20359_loop1_22_rule(Parser *p)
20360{
20361 D(p->level++);
20362 if (p->error_indicator) {
20363 D(p->level--);
20364 return NULL;
20365 }
20366 void *_res = NULL;
20367 int _mark = p->mark;
20368 int _start_mark = p->mark;
20369 void **_children = PyMem_Malloc(sizeof(void *));
20370 if (!_children) {
20371 p->error_indicator = 1;
20372 PyErr_NoMemory();
20373 D(p->level--);
20374 return NULL;
20375 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010020376 Py_ssize_t _children_capacity = 1;
20377 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020378 { // (star_targets '=')
20379 if (p->error_indicator) {
20380 D(p->level--);
20381 return NULL;
20382 }
20383 D(fprintf(stderr, "%*c> _loop1_22[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010020384 void *_tmp_165_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020385 while (
Pablo Galindob86ed8e2021-04-12 16:59:30 +010020386 (_tmp_165_var = _tmp_165_rule(p)) // star_targets '='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020387 )
20388 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +010020389 _res = _tmp_165_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020390 if (_n == _children_capacity) {
20391 _children_capacity *= 2;
20392 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20393 if (!_new_children) {
20394 p->error_indicator = 1;
20395 PyErr_NoMemory();
20396 D(p->level--);
20397 return NULL;
20398 }
20399 _children = _new_children;
20400 }
20401 _children[_n++] = _res;
20402 _mark = p->mark;
20403 }
20404 p->mark = _mark;
20405 D(fprintf(stderr, "%*c%s _loop1_22[%d-%d]: %s failed!\n", p->level, ' ',
20406 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(star_targets '=')"));
20407 }
20408 if (_n == 0 || p->error_indicator) {
20409 PyMem_Free(_children);
20410 D(p->level--);
20411 return NULL;
20412 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020413 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020414 if (!_seq) {
20415 PyMem_Free(_children);
20416 p->error_indicator = 1;
20417 PyErr_NoMemory();
20418 D(p->level--);
20419 return NULL;
20420 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020421 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020422 PyMem_Free(_children);
20423 _PyPegen_insert_memo(p, _start_mark, _loop1_22_type, _seq);
20424 D(p->level--);
20425 return _seq;
20426}
20427
20428// _tmp_23: yield_expr | star_expressions
20429static void *
20430_tmp_23_rule(Parser *p)
20431{
20432 D(p->level++);
20433 if (p->error_indicator) {
20434 D(p->level--);
20435 return NULL;
20436 }
20437 void * _res = NULL;
20438 int _mark = p->mark;
20439 { // yield_expr
20440 if (p->error_indicator) {
20441 D(p->level--);
20442 return NULL;
20443 }
20444 D(fprintf(stderr, "%*c> _tmp_23[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
20445 expr_ty yield_expr_var;
20446 if (
20447 (yield_expr_var = yield_expr_rule(p)) // yield_expr
20448 )
20449 {
20450 D(fprintf(stderr, "%*c+ _tmp_23[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
20451 _res = yield_expr_var;
20452 goto done;
20453 }
20454 p->mark = _mark;
20455 D(fprintf(stderr, "%*c%s _tmp_23[%d-%d]: %s failed!\n", p->level, ' ',
20456 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
20457 }
20458 { // star_expressions
20459 if (p->error_indicator) {
20460 D(p->level--);
20461 return NULL;
20462 }
20463 D(fprintf(stderr, "%*c> _tmp_23[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
20464 expr_ty star_expressions_var;
20465 if (
20466 (star_expressions_var = star_expressions_rule(p)) // star_expressions
20467 )
20468 {
20469 D(fprintf(stderr, "%*c+ _tmp_23[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
20470 _res = star_expressions_var;
20471 goto done;
20472 }
20473 p->mark = _mark;
20474 D(fprintf(stderr, "%*c%s _tmp_23[%d-%d]: %s failed!\n", p->level, ' ',
20475 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
20476 }
20477 _res = NULL;
20478 done:
20479 D(p->level--);
20480 return _res;
20481}
20482
20483// _tmp_24: yield_expr | star_expressions
20484static void *
20485_tmp_24_rule(Parser *p)
20486{
20487 D(p->level++);
20488 if (p->error_indicator) {
20489 D(p->level--);
20490 return NULL;
20491 }
20492 void * _res = NULL;
20493 int _mark = p->mark;
20494 { // yield_expr
20495 if (p->error_indicator) {
20496 D(p->level--);
20497 return NULL;
20498 }
20499 D(fprintf(stderr, "%*c> _tmp_24[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
20500 expr_ty yield_expr_var;
20501 if (
20502 (yield_expr_var = yield_expr_rule(p)) // yield_expr
20503 )
20504 {
20505 D(fprintf(stderr, "%*c+ _tmp_24[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
20506 _res = yield_expr_var;
20507 goto done;
20508 }
20509 p->mark = _mark;
20510 D(fprintf(stderr, "%*c%s _tmp_24[%d-%d]: %s failed!\n", p->level, ' ',
20511 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
20512 }
20513 { // star_expressions
20514 if (p->error_indicator) {
20515 D(p->level--);
20516 return NULL;
20517 }
20518 D(fprintf(stderr, "%*c> _tmp_24[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
20519 expr_ty star_expressions_var;
20520 if (
20521 (star_expressions_var = star_expressions_rule(p)) // star_expressions
20522 )
20523 {
20524 D(fprintf(stderr, "%*c+ _tmp_24[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
20525 _res = star_expressions_var;
20526 goto done;
20527 }
20528 p->mark = _mark;
20529 D(fprintf(stderr, "%*c%s _tmp_24[%d-%d]: %s failed!\n", p->level, ' ',
20530 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
20531 }
20532 _res = NULL;
20533 done:
20534 D(p->level--);
20535 return _res;
20536}
20537
20538// _loop0_26: ',' NAME
20539static asdl_seq *
20540_loop0_26_rule(Parser *p)
20541{
20542 D(p->level++);
20543 if (p->error_indicator) {
20544 D(p->level--);
20545 return NULL;
20546 }
20547 void *_res = NULL;
20548 int _mark = p->mark;
20549 int _start_mark = p->mark;
20550 void **_children = PyMem_Malloc(sizeof(void *));
20551 if (!_children) {
20552 p->error_indicator = 1;
20553 PyErr_NoMemory();
20554 D(p->level--);
20555 return NULL;
20556 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010020557 Py_ssize_t _children_capacity = 1;
20558 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020559 { // ',' NAME
20560 if (p->error_indicator) {
20561 D(p->level--);
20562 return NULL;
20563 }
20564 D(fprintf(stderr, "%*c> _loop0_26[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' NAME"));
20565 Token * _literal;
20566 expr_ty elem;
20567 while (
20568 (_literal = _PyPegen_expect_token(p, 12)) // token=','
20569 &&
20570 (elem = _PyPegen_name_token(p)) // NAME
20571 )
20572 {
20573 _res = elem;
20574 if (_res == NULL && PyErr_Occurred()) {
20575 p->error_indicator = 1;
20576 PyMem_Free(_children);
20577 D(p->level--);
20578 return NULL;
20579 }
20580 if (_n == _children_capacity) {
20581 _children_capacity *= 2;
20582 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20583 if (!_new_children) {
20584 p->error_indicator = 1;
20585 PyErr_NoMemory();
20586 D(p->level--);
20587 return NULL;
20588 }
20589 _children = _new_children;
20590 }
20591 _children[_n++] = _res;
20592 _mark = p->mark;
20593 }
20594 p->mark = _mark;
20595 D(fprintf(stderr, "%*c%s _loop0_26[%d-%d]: %s failed!\n", p->level, ' ',
20596 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' NAME"));
20597 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020598 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020599 if (!_seq) {
20600 PyMem_Free(_children);
20601 p->error_indicator = 1;
20602 PyErr_NoMemory();
20603 D(p->level--);
20604 return NULL;
20605 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020606 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020607 PyMem_Free(_children);
20608 _PyPegen_insert_memo(p, _start_mark, _loop0_26_type, _seq);
20609 D(p->level--);
20610 return _seq;
20611}
20612
20613// _gather_25: NAME _loop0_26
20614static asdl_seq *
20615_gather_25_rule(Parser *p)
20616{
20617 D(p->level++);
20618 if (p->error_indicator) {
20619 D(p->level--);
20620 return NULL;
20621 }
20622 asdl_seq * _res = NULL;
20623 int _mark = p->mark;
20624 { // NAME _loop0_26
20625 if (p->error_indicator) {
20626 D(p->level--);
20627 return NULL;
20628 }
20629 D(fprintf(stderr, "%*c> _gather_25[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME _loop0_26"));
20630 expr_ty elem;
20631 asdl_seq * seq;
20632 if (
20633 (elem = _PyPegen_name_token(p)) // NAME
20634 &&
20635 (seq = _loop0_26_rule(p)) // _loop0_26
20636 )
20637 {
20638 D(fprintf(stderr, "%*c+ _gather_25[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME _loop0_26"));
20639 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
20640 goto done;
20641 }
20642 p->mark = _mark;
20643 D(fprintf(stderr, "%*c%s _gather_25[%d-%d]: %s failed!\n", p->level, ' ',
20644 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME _loop0_26"));
20645 }
20646 _res = NULL;
20647 done:
20648 D(p->level--);
20649 return _res;
20650}
20651
20652// _loop0_28: ',' NAME
20653static asdl_seq *
20654_loop0_28_rule(Parser *p)
20655{
20656 D(p->level++);
20657 if (p->error_indicator) {
20658 D(p->level--);
20659 return NULL;
20660 }
20661 void *_res = NULL;
20662 int _mark = p->mark;
20663 int _start_mark = p->mark;
20664 void **_children = PyMem_Malloc(sizeof(void *));
20665 if (!_children) {
20666 p->error_indicator = 1;
20667 PyErr_NoMemory();
20668 D(p->level--);
20669 return NULL;
20670 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010020671 Py_ssize_t _children_capacity = 1;
20672 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020673 { // ',' NAME
20674 if (p->error_indicator) {
20675 D(p->level--);
20676 return NULL;
20677 }
20678 D(fprintf(stderr, "%*c> _loop0_28[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' NAME"));
20679 Token * _literal;
20680 expr_ty elem;
20681 while (
20682 (_literal = _PyPegen_expect_token(p, 12)) // token=','
20683 &&
20684 (elem = _PyPegen_name_token(p)) // NAME
20685 )
20686 {
20687 _res = elem;
20688 if (_res == NULL && PyErr_Occurred()) {
20689 p->error_indicator = 1;
20690 PyMem_Free(_children);
20691 D(p->level--);
20692 return NULL;
20693 }
20694 if (_n == _children_capacity) {
20695 _children_capacity *= 2;
20696 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20697 if (!_new_children) {
20698 p->error_indicator = 1;
20699 PyErr_NoMemory();
20700 D(p->level--);
20701 return NULL;
20702 }
20703 _children = _new_children;
20704 }
20705 _children[_n++] = _res;
20706 _mark = p->mark;
20707 }
20708 p->mark = _mark;
20709 D(fprintf(stderr, "%*c%s _loop0_28[%d-%d]: %s failed!\n", p->level, ' ',
20710 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' NAME"));
20711 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020712 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020713 if (!_seq) {
20714 PyMem_Free(_children);
20715 p->error_indicator = 1;
20716 PyErr_NoMemory();
20717 D(p->level--);
20718 return NULL;
20719 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020720 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020721 PyMem_Free(_children);
20722 _PyPegen_insert_memo(p, _start_mark, _loop0_28_type, _seq);
20723 D(p->level--);
20724 return _seq;
20725}
20726
20727// _gather_27: NAME _loop0_28
20728static asdl_seq *
20729_gather_27_rule(Parser *p)
20730{
20731 D(p->level++);
20732 if (p->error_indicator) {
20733 D(p->level--);
20734 return NULL;
20735 }
20736 asdl_seq * _res = NULL;
20737 int _mark = p->mark;
20738 { // NAME _loop0_28
20739 if (p->error_indicator) {
20740 D(p->level--);
20741 return NULL;
20742 }
20743 D(fprintf(stderr, "%*c> _gather_27[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME _loop0_28"));
20744 expr_ty elem;
20745 asdl_seq * seq;
20746 if (
20747 (elem = _PyPegen_name_token(p)) // NAME
20748 &&
20749 (seq = _loop0_28_rule(p)) // _loop0_28
20750 )
20751 {
20752 D(fprintf(stderr, "%*c+ _gather_27[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME _loop0_28"));
20753 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
20754 goto done;
20755 }
20756 p->mark = _mark;
20757 D(fprintf(stderr, "%*c%s _gather_27[%d-%d]: %s failed!\n", p->level, ' ',
20758 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME _loop0_28"));
20759 }
20760 _res = NULL;
20761 done:
20762 D(p->level--);
20763 return _res;
20764}
20765
20766// _tmp_29: ',' expression
20767static void *
20768_tmp_29_rule(Parser *p)
20769{
20770 D(p->level++);
20771 if (p->error_indicator) {
20772 D(p->level--);
20773 return NULL;
20774 }
20775 void * _res = NULL;
20776 int _mark = p->mark;
20777 { // ',' expression
20778 if (p->error_indicator) {
20779 D(p->level--);
20780 return NULL;
20781 }
20782 D(fprintf(stderr, "%*c> _tmp_29[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
20783 Token * _literal;
20784 expr_ty z;
20785 if (
20786 (_literal = _PyPegen_expect_token(p, 12)) // token=','
20787 &&
20788 (z = expression_rule(p)) // expression
20789 )
20790 {
20791 D(fprintf(stderr, "%*c+ _tmp_29[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' expression"));
20792 _res = z;
20793 if (_res == NULL && PyErr_Occurred()) {
20794 p->error_indicator = 1;
20795 D(p->level--);
20796 return NULL;
20797 }
20798 goto done;
20799 }
20800 p->mark = _mark;
20801 D(fprintf(stderr, "%*c%s _tmp_29[%d-%d]: %s failed!\n", p->level, ' ',
20802 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
20803 }
20804 _res = NULL;
20805 done:
20806 D(p->level--);
20807 return _res;
20808}
20809
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020810// _tmp_30: ';' | NEWLINE
20811static void *
20812_tmp_30_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020813{
20814 D(p->level++);
20815 if (p->error_indicator) {
20816 D(p->level--);
20817 return NULL;
20818 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020819 void * _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020820 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020821 { // ';'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020822 if (p->error_indicator) {
20823 D(p->level--);
20824 return NULL;
20825 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020826 D(fprintf(stderr, "%*c> _tmp_30[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "';'"));
20827 Token * _literal;
20828 if (
20829 (_literal = _PyPegen_expect_token(p, 13)) // token=';'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020830 )
20831 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020832 D(fprintf(stderr, "%*c+ _tmp_30[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "';'"));
20833 _res = _literal;
20834 goto done;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020835 }
20836 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020837 D(fprintf(stderr, "%*c%s _tmp_30[%d-%d]: %s failed!\n", p->level, ' ',
20838 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "';'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020839 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020840 { // NEWLINE
20841 if (p->error_indicator) {
20842 D(p->level--);
20843 return NULL;
20844 }
20845 D(fprintf(stderr, "%*c> _tmp_30[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
20846 Token * newline_var;
20847 if (
20848 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20849 )
20850 {
20851 D(fprintf(stderr, "%*c+ _tmp_30[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
20852 _res = newline_var;
20853 goto done;
20854 }
20855 p->mark = _mark;
20856 D(fprintf(stderr, "%*c%s _tmp_30[%d-%d]: %s failed!\n", p->level, ' ',
20857 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020858 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020859 _res = NULL;
20860 done:
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020861 D(p->level--);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020862 return _res;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020863}
20864
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020865// _loop0_31: ('.' | '...')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020866static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020867_loop0_31_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020868{
20869 D(p->level++);
20870 if (p->error_indicator) {
20871 D(p->level--);
20872 return NULL;
20873 }
20874 void *_res = NULL;
20875 int _mark = p->mark;
20876 int _start_mark = p->mark;
20877 void **_children = PyMem_Malloc(sizeof(void *));
20878 if (!_children) {
20879 p->error_indicator = 1;
20880 PyErr_NoMemory();
20881 D(p->level--);
20882 return NULL;
20883 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010020884 Py_ssize_t _children_capacity = 1;
20885 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020886 { // ('.' | '...')
20887 if (p->error_indicator) {
20888 D(p->level--);
20889 return NULL;
20890 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020891 D(fprintf(stderr, "%*c> _loop0_31[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('.' | '...')"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010020892 void *_tmp_166_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020893 while (
Pablo Galindob86ed8e2021-04-12 16:59:30 +010020894 (_tmp_166_var = _tmp_166_rule(p)) // '.' | '...'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020895 )
20896 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +010020897 _res = _tmp_166_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020898 if (_n == _children_capacity) {
20899 _children_capacity *= 2;
20900 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20901 if (!_new_children) {
20902 p->error_indicator = 1;
20903 PyErr_NoMemory();
20904 D(p->level--);
20905 return NULL;
20906 }
20907 _children = _new_children;
20908 }
20909 _children[_n++] = _res;
20910 _mark = p->mark;
20911 }
20912 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020913 D(fprintf(stderr, "%*c%s _loop0_31[%d-%d]: %s failed!\n", p->level, ' ',
20914 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('.' | '...')"));
20915 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020916 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020917 if (!_seq) {
20918 PyMem_Free(_children);
20919 p->error_indicator = 1;
20920 PyErr_NoMemory();
20921 D(p->level--);
20922 return NULL;
20923 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020924 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020925 PyMem_Free(_children);
20926 _PyPegen_insert_memo(p, _start_mark, _loop0_31_type, _seq);
20927 D(p->level--);
20928 return _seq;
20929}
20930
20931// _loop1_32: ('.' | '...')
20932static asdl_seq *
20933_loop1_32_rule(Parser *p)
20934{
20935 D(p->level++);
20936 if (p->error_indicator) {
20937 D(p->level--);
20938 return NULL;
20939 }
20940 void *_res = NULL;
20941 int _mark = p->mark;
20942 int _start_mark = p->mark;
20943 void **_children = PyMem_Malloc(sizeof(void *));
20944 if (!_children) {
20945 p->error_indicator = 1;
20946 PyErr_NoMemory();
20947 D(p->level--);
20948 return NULL;
20949 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010020950 Py_ssize_t _children_capacity = 1;
20951 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020952 { // ('.' | '...')
20953 if (p->error_indicator) {
20954 D(p->level--);
20955 return NULL;
20956 }
20957 D(fprintf(stderr, "%*c> _loop1_32[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('.' | '...')"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010020958 void *_tmp_167_var;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020959 while (
Pablo Galindob86ed8e2021-04-12 16:59:30 +010020960 (_tmp_167_var = _tmp_167_rule(p)) // '.' | '...'
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020961 )
20962 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +010020963 _res = _tmp_167_var;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020964 if (_n == _children_capacity) {
20965 _children_capacity *= 2;
20966 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20967 if (!_new_children) {
20968 p->error_indicator = 1;
20969 PyErr_NoMemory();
20970 D(p->level--);
20971 return NULL;
20972 }
20973 _children = _new_children;
20974 }
20975 _children[_n++] = _res;
20976 _mark = p->mark;
20977 }
20978 p->mark = _mark;
20979 D(fprintf(stderr, "%*c%s _loop1_32[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020980 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('.' | '...')"));
20981 }
20982 if (_n == 0 || p->error_indicator) {
20983 PyMem_Free(_children);
20984 D(p->level--);
20985 return NULL;
20986 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020987 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020988 if (!_seq) {
20989 PyMem_Free(_children);
20990 p->error_indicator = 1;
20991 PyErr_NoMemory();
20992 D(p->level--);
20993 return NULL;
20994 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020995 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020996 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020997 _PyPegen_insert_memo(p, _start_mark, _loop1_32_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020998 D(p->level--);
20999 return _seq;
21000}
21001
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021002// _loop0_34: ',' import_from_as_name
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021003static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021004_loop0_34_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 { // ',' import_from_as_name
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_34[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' import_from_as_name"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021029 Token * _literal;
21030 alias_ty elem;
21031 while (
21032 (_literal = _PyPegen_expect_token(p, 12)) // token=','
21033 &&
21034 (elem = import_from_as_name_rule(p)) // import_from_as_name
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_34[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021060 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' import_from_as_name"));
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_34_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_33: import_from_as_name _loop0_34
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021078static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021079_gather_33_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 { // import_from_as_name _loop0_34
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_33[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "import_from_as_name _loop0_34"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021094 alias_ty elem;
21095 asdl_seq * seq;
21096 if (
21097 (elem = import_from_as_name_rule(p)) // import_from_as_name
21098 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021099 (seq = _loop0_34_rule(p)) // _loop0_34
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021100 )
21101 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021102 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 +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_33[%d-%d]: %s failed!\n", p->level, ' ',
21108 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from_as_name _loop0_34"));
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// _tmp_35: 'as' NAME
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021117static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021118_tmp_35_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 { // 'as' NAME
21128 if (p->error_indicator) {
21129 D(p->level--);
21130 return NULL;
21131 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021132 D(fprintf(stderr, "%*c> _tmp_35[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021133 Token * _keyword;
21134 expr_ty z;
21135 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021136 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021137 &&
21138 (z = _PyPegen_name_token(p)) // NAME
21139 )
21140 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021141 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 +010021142 _res = z;
21143 if (_res == NULL && PyErr_Occurred()) {
21144 p->error_indicator = 1;
21145 D(p->level--);
21146 return NULL;
21147 }
21148 goto done;
21149 }
21150 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021151 D(fprintf(stderr, "%*c%s _tmp_35[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021152 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
21153 }
21154 _res = NULL;
21155 done:
21156 D(p->level--);
21157 return _res;
21158}
21159
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021160// _loop0_37: ',' dotted_as_name
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021161static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021162_loop0_37_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021163{
21164 D(p->level++);
21165 if (p->error_indicator) {
21166 D(p->level--);
21167 return NULL;
21168 }
21169 void *_res = NULL;
21170 int _mark = p->mark;
21171 int _start_mark = p->mark;
21172 void **_children = PyMem_Malloc(sizeof(void *));
21173 if (!_children) {
21174 p->error_indicator = 1;
21175 PyErr_NoMemory();
21176 D(p->level--);
21177 return NULL;
21178 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010021179 Py_ssize_t _children_capacity = 1;
21180 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021181 { // ',' dotted_as_name
21182 if (p->error_indicator) {
21183 D(p->level--);
21184 return NULL;
21185 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021186 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 +010021187 Token * _literal;
21188 alias_ty elem;
21189 while (
21190 (_literal = _PyPegen_expect_token(p, 12)) // token=','
21191 &&
21192 (elem = dotted_as_name_rule(p)) // dotted_as_name
21193 )
21194 {
21195 _res = elem;
21196 if (_res == NULL && PyErr_Occurred()) {
21197 p->error_indicator = 1;
21198 PyMem_Free(_children);
21199 D(p->level--);
21200 return NULL;
21201 }
21202 if (_n == _children_capacity) {
21203 _children_capacity *= 2;
21204 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21205 if (!_new_children) {
21206 p->error_indicator = 1;
21207 PyErr_NoMemory();
21208 D(p->level--);
21209 return NULL;
21210 }
21211 _children = _new_children;
21212 }
21213 _children[_n++] = _res;
21214 _mark = p->mark;
21215 }
21216 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021217 D(fprintf(stderr, "%*c%s _loop0_37[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021218 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' dotted_as_name"));
21219 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021220 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021221 if (!_seq) {
21222 PyMem_Free(_children);
21223 p->error_indicator = 1;
21224 PyErr_NoMemory();
21225 D(p->level--);
21226 return NULL;
21227 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021228 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021229 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021230 _PyPegen_insert_memo(p, _start_mark, _loop0_37_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021231 D(p->level--);
21232 return _seq;
21233}
21234
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021235// _gather_36: dotted_as_name _loop0_37
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021236static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021237_gather_36_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021238{
21239 D(p->level++);
21240 if (p->error_indicator) {
21241 D(p->level--);
21242 return NULL;
21243 }
21244 asdl_seq * _res = NULL;
21245 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021246 { // dotted_as_name _loop0_37
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021247 if (p->error_indicator) {
21248 D(p->level--);
21249 return NULL;
21250 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021251 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 +010021252 alias_ty elem;
21253 asdl_seq * seq;
21254 if (
21255 (elem = dotted_as_name_rule(p)) // dotted_as_name
21256 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021257 (seq = _loop0_37_rule(p)) // _loop0_37
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021258 )
21259 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021260 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 +010021261 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
21262 goto done;
21263 }
21264 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021265 D(fprintf(stderr, "%*c%s _gather_36[%d-%d]: %s failed!\n", p->level, ' ',
21266 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dotted_as_name _loop0_37"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021267 }
21268 _res = NULL;
21269 done:
21270 D(p->level--);
21271 return _res;
21272}
21273
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021274// _tmp_38: 'as' NAME
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021275static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021276_tmp_38_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021277{
21278 D(p->level++);
21279 if (p->error_indicator) {
21280 D(p->level--);
21281 return NULL;
21282 }
21283 void * _res = NULL;
21284 int _mark = p->mark;
21285 { // 'as' NAME
21286 if (p->error_indicator) {
21287 D(p->level--);
21288 return NULL;
21289 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021290 D(fprintf(stderr, "%*c> _tmp_38[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021291 Token * _keyword;
21292 expr_ty z;
21293 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021294 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021295 &&
21296 (z = _PyPegen_name_token(p)) // NAME
21297 )
21298 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021299 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 +010021300 _res = z;
21301 if (_res == NULL && PyErr_Occurred()) {
21302 p->error_indicator = 1;
21303 D(p->level--);
21304 return NULL;
21305 }
21306 goto done;
21307 }
21308 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021309 D(fprintf(stderr, "%*c%s _tmp_38[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021310 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
21311 }
21312 _res = NULL;
21313 done:
21314 D(p->level--);
21315 return _res;
21316}
21317
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021318// _loop0_40: ',' with_item
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021319static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021320_loop0_40_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021321{
21322 D(p->level++);
21323 if (p->error_indicator) {
21324 D(p->level--);
21325 return NULL;
21326 }
21327 void *_res = NULL;
21328 int _mark = p->mark;
21329 int _start_mark = p->mark;
21330 void **_children = PyMem_Malloc(sizeof(void *));
21331 if (!_children) {
21332 p->error_indicator = 1;
21333 PyErr_NoMemory();
21334 D(p->level--);
21335 return NULL;
21336 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010021337 Py_ssize_t _children_capacity = 1;
21338 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021339 { // ',' with_item
21340 if (p->error_indicator) {
21341 D(p->level--);
21342 return NULL;
21343 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021344 D(fprintf(stderr, "%*c> _loop0_40[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021345 Token * _literal;
21346 withitem_ty elem;
21347 while (
21348 (_literal = _PyPegen_expect_token(p, 12)) // token=','
21349 &&
21350 (elem = with_item_rule(p)) // with_item
21351 )
21352 {
21353 _res = elem;
21354 if (_res == NULL && PyErr_Occurred()) {
21355 p->error_indicator = 1;
21356 PyMem_Free(_children);
21357 D(p->level--);
21358 return NULL;
21359 }
21360 if (_n == _children_capacity) {
21361 _children_capacity *= 2;
21362 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21363 if (!_new_children) {
21364 p->error_indicator = 1;
21365 PyErr_NoMemory();
21366 D(p->level--);
21367 return NULL;
21368 }
21369 _children = _new_children;
21370 }
21371 _children[_n++] = _res;
21372 _mark = p->mark;
21373 }
21374 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021375 D(fprintf(stderr, "%*c%s _loop0_40[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021376 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
21377 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021378 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021379 if (!_seq) {
21380 PyMem_Free(_children);
21381 p->error_indicator = 1;
21382 PyErr_NoMemory();
21383 D(p->level--);
21384 return NULL;
21385 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021386 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021387 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021388 _PyPegen_insert_memo(p, _start_mark, _loop0_40_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021389 D(p->level--);
21390 return _seq;
21391}
21392
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021393// _gather_39: with_item _loop0_40
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021394static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021395_gather_39_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021396{
21397 D(p->level++);
21398 if (p->error_indicator) {
21399 D(p->level--);
21400 return NULL;
21401 }
21402 asdl_seq * _res = NULL;
21403 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021404 { // with_item _loop0_40
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021405 if (p->error_indicator) {
21406 D(p->level--);
21407 return NULL;
21408 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021409 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 +010021410 withitem_ty elem;
21411 asdl_seq * seq;
21412 if (
21413 (elem = with_item_rule(p)) // with_item
21414 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021415 (seq = _loop0_40_rule(p)) // _loop0_40
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021416 )
21417 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021418 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 +010021419 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
21420 goto done;
21421 }
21422 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021423 D(fprintf(stderr, "%*c%s _gather_39[%d-%d]: %s failed!\n", p->level, ' ',
21424 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_40"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021425 }
21426 _res = NULL;
21427 done:
21428 D(p->level--);
21429 return _res;
21430}
21431
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021432// _loop0_42: ',' with_item
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021433static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021434_loop0_42_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021435{
21436 D(p->level++);
21437 if (p->error_indicator) {
21438 D(p->level--);
21439 return NULL;
21440 }
21441 void *_res = NULL;
21442 int _mark = p->mark;
21443 int _start_mark = p->mark;
21444 void **_children = PyMem_Malloc(sizeof(void *));
21445 if (!_children) {
21446 p->error_indicator = 1;
21447 PyErr_NoMemory();
21448 D(p->level--);
21449 return NULL;
21450 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010021451 Py_ssize_t _children_capacity = 1;
21452 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021453 { // ',' with_item
21454 if (p->error_indicator) {
21455 D(p->level--);
21456 return NULL;
21457 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021458 D(fprintf(stderr, "%*c> _loop0_42[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021459 Token * _literal;
21460 withitem_ty elem;
21461 while (
21462 (_literal = _PyPegen_expect_token(p, 12)) // token=','
21463 &&
21464 (elem = with_item_rule(p)) // with_item
21465 )
21466 {
21467 _res = elem;
21468 if (_res == NULL && PyErr_Occurred()) {
21469 p->error_indicator = 1;
21470 PyMem_Free(_children);
21471 D(p->level--);
21472 return NULL;
21473 }
21474 if (_n == _children_capacity) {
21475 _children_capacity *= 2;
21476 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21477 if (!_new_children) {
21478 p->error_indicator = 1;
21479 PyErr_NoMemory();
21480 D(p->level--);
21481 return NULL;
21482 }
21483 _children = _new_children;
21484 }
21485 _children[_n++] = _res;
21486 _mark = p->mark;
21487 }
21488 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021489 D(fprintf(stderr, "%*c%s _loop0_42[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021490 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
21491 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021492 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021493 if (!_seq) {
21494 PyMem_Free(_children);
21495 p->error_indicator = 1;
21496 PyErr_NoMemory();
21497 D(p->level--);
21498 return NULL;
21499 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021500 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021501 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021502 _PyPegen_insert_memo(p, _start_mark, _loop0_42_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021503 D(p->level--);
21504 return _seq;
21505}
21506
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021507// _gather_41: with_item _loop0_42
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021508static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021509_gather_41_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021510{
21511 D(p->level++);
21512 if (p->error_indicator) {
21513 D(p->level--);
21514 return NULL;
21515 }
21516 asdl_seq * _res = NULL;
21517 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021518 { // with_item _loop0_42
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021519 if (p->error_indicator) {
21520 D(p->level--);
21521 return NULL;
21522 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021523 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 +010021524 withitem_ty elem;
21525 asdl_seq * seq;
21526 if (
21527 (elem = with_item_rule(p)) // with_item
21528 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021529 (seq = _loop0_42_rule(p)) // _loop0_42
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021530 )
21531 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021532 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 +010021533 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
21534 goto done;
21535 }
21536 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021537 D(fprintf(stderr, "%*c%s _gather_41[%d-%d]: %s failed!\n", p->level, ' ',
21538 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_42"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021539 }
21540 _res = NULL;
21541 done:
21542 D(p->level--);
21543 return _res;
21544}
21545
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021546// _loop0_44: ',' with_item
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021547static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021548_loop0_44_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021549{
21550 D(p->level++);
21551 if (p->error_indicator) {
21552 D(p->level--);
21553 return NULL;
21554 }
21555 void *_res = NULL;
21556 int _mark = p->mark;
21557 int _start_mark = p->mark;
21558 void **_children = PyMem_Malloc(sizeof(void *));
21559 if (!_children) {
21560 p->error_indicator = 1;
21561 PyErr_NoMemory();
21562 D(p->level--);
21563 return NULL;
21564 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010021565 Py_ssize_t _children_capacity = 1;
21566 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021567 { // ',' with_item
21568 if (p->error_indicator) {
21569 D(p->level--);
21570 return NULL;
21571 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021572 D(fprintf(stderr, "%*c> _loop0_44[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021573 Token * _literal;
21574 withitem_ty elem;
21575 while (
21576 (_literal = _PyPegen_expect_token(p, 12)) // token=','
21577 &&
21578 (elem = with_item_rule(p)) // with_item
21579 )
21580 {
21581 _res = elem;
21582 if (_res == NULL && PyErr_Occurred()) {
21583 p->error_indicator = 1;
21584 PyMem_Free(_children);
21585 D(p->level--);
21586 return NULL;
21587 }
21588 if (_n == _children_capacity) {
21589 _children_capacity *= 2;
21590 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21591 if (!_new_children) {
21592 p->error_indicator = 1;
21593 PyErr_NoMemory();
21594 D(p->level--);
21595 return NULL;
21596 }
21597 _children = _new_children;
21598 }
21599 _children[_n++] = _res;
21600 _mark = p->mark;
21601 }
21602 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021603 D(fprintf(stderr, "%*c%s _loop0_44[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021604 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
21605 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021606 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021607 if (!_seq) {
21608 PyMem_Free(_children);
21609 p->error_indicator = 1;
21610 PyErr_NoMemory();
21611 D(p->level--);
21612 return NULL;
21613 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021614 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021615 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021616 _PyPegen_insert_memo(p, _start_mark, _loop0_44_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021617 D(p->level--);
21618 return _seq;
21619}
21620
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021621// _gather_43: with_item _loop0_44
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021622static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021623_gather_43_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021624{
21625 D(p->level++);
21626 if (p->error_indicator) {
21627 D(p->level--);
21628 return NULL;
21629 }
21630 asdl_seq * _res = NULL;
21631 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021632 { // with_item _loop0_44
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021633 if (p->error_indicator) {
21634 D(p->level--);
21635 return NULL;
21636 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021637 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 +010021638 withitem_ty elem;
21639 asdl_seq * seq;
21640 if (
21641 (elem = with_item_rule(p)) // with_item
21642 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021643 (seq = _loop0_44_rule(p)) // _loop0_44
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021644 )
21645 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021646 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 +010021647 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
21648 goto done;
21649 }
21650 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021651 D(fprintf(stderr, "%*c%s _gather_43[%d-%d]: %s failed!\n", p->level, ' ',
21652 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_44"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021653 }
21654 _res = NULL;
21655 done:
21656 D(p->level--);
21657 return _res;
21658}
21659
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021660// _loop0_46: ',' with_item
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021661static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021662_loop0_46_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021663{
21664 D(p->level++);
21665 if (p->error_indicator) {
21666 D(p->level--);
21667 return NULL;
21668 }
21669 void *_res = NULL;
21670 int _mark = p->mark;
21671 int _start_mark = p->mark;
21672 void **_children = PyMem_Malloc(sizeof(void *));
21673 if (!_children) {
21674 p->error_indicator = 1;
21675 PyErr_NoMemory();
21676 D(p->level--);
21677 return NULL;
21678 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010021679 Py_ssize_t _children_capacity = 1;
21680 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021681 { // ',' with_item
21682 if (p->error_indicator) {
21683 D(p->level--);
21684 return NULL;
21685 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021686 D(fprintf(stderr, "%*c> _loop0_46[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021687 Token * _literal;
21688 withitem_ty elem;
21689 while (
21690 (_literal = _PyPegen_expect_token(p, 12)) // token=','
21691 &&
21692 (elem = with_item_rule(p)) // with_item
21693 )
21694 {
21695 _res = elem;
21696 if (_res == NULL && PyErr_Occurred()) {
21697 p->error_indicator = 1;
21698 PyMem_Free(_children);
21699 D(p->level--);
21700 return NULL;
21701 }
21702 if (_n == _children_capacity) {
21703 _children_capacity *= 2;
21704 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21705 if (!_new_children) {
21706 p->error_indicator = 1;
21707 PyErr_NoMemory();
21708 D(p->level--);
21709 return NULL;
21710 }
21711 _children = _new_children;
21712 }
21713 _children[_n++] = _res;
21714 _mark = p->mark;
21715 }
21716 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021717 D(fprintf(stderr, "%*c%s _loop0_46[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021718 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
21719 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021720 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021721 if (!_seq) {
21722 PyMem_Free(_children);
21723 p->error_indicator = 1;
21724 PyErr_NoMemory();
21725 D(p->level--);
21726 return NULL;
21727 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021728 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021729 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021730 _PyPegen_insert_memo(p, _start_mark, _loop0_46_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021731 D(p->level--);
21732 return _seq;
21733}
21734
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021735// _gather_45: with_item _loop0_46
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021736static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021737_gather_45_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021738{
21739 D(p->level++);
21740 if (p->error_indicator) {
21741 D(p->level--);
21742 return NULL;
21743 }
21744 asdl_seq * _res = NULL;
21745 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021746 { // with_item _loop0_46
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021747 if (p->error_indicator) {
21748 D(p->level--);
21749 return NULL;
21750 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021751 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 +010021752 withitem_ty elem;
21753 asdl_seq * seq;
21754 if (
21755 (elem = with_item_rule(p)) // with_item
21756 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021757 (seq = _loop0_46_rule(p)) // _loop0_46
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021758 )
21759 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021760 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 +010021761 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
21762 goto done;
21763 }
21764 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021765 D(fprintf(stderr, "%*c%s _gather_45[%d-%d]: %s failed!\n", p->level, ' ',
21766 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_46"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021767 }
21768 _res = NULL;
21769 done:
21770 D(p->level--);
21771 return _res;
21772}
21773
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021774// _tmp_47: ',' | ')' | ':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021775static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021776_tmp_47_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021777{
21778 D(p->level++);
21779 if (p->error_indicator) {
21780 D(p->level--);
21781 return NULL;
21782 }
21783 void * _res = NULL;
21784 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021785 { // ','
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021786 if (p->error_indicator) {
21787 D(p->level--);
21788 return NULL;
21789 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021790 D(fprintf(stderr, "%*c> _tmp_47[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','"));
21791 Token * _literal;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021792 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021793 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021794 )
21795 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021796 D(fprintf(stderr, "%*c+ _tmp_47[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','"));
21797 _res = _literal;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021798 goto done;
21799 }
21800 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021801 D(fprintf(stderr, "%*c%s _tmp_47[%d-%d]: %s failed!\n", p->level, ' ',
21802 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','"));
21803 }
21804 { // ')'
21805 if (p->error_indicator) {
21806 D(p->level--);
21807 return NULL;
21808 }
21809 D(fprintf(stderr, "%*c> _tmp_47[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
21810 Token * _literal;
21811 if (
21812 (_literal = _PyPegen_expect_token(p, 8)) // token=')'
21813 )
21814 {
21815 D(fprintf(stderr, "%*c+ _tmp_47[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
21816 _res = _literal;
21817 goto done;
21818 }
21819 p->mark = _mark;
21820 D(fprintf(stderr, "%*c%s _tmp_47[%d-%d]: %s failed!\n", p->level, ' ',
21821 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
21822 }
21823 { // ':'
21824 if (p->error_indicator) {
21825 D(p->level--);
21826 return NULL;
21827 }
21828 D(fprintf(stderr, "%*c> _tmp_47[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
21829 Token * _literal;
21830 if (
21831 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
21832 )
21833 {
21834 D(fprintf(stderr, "%*c+ _tmp_47[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
21835 _res = _literal;
21836 goto done;
21837 }
21838 p->mark = _mark;
21839 D(fprintf(stderr, "%*c%s _tmp_47[%d-%d]: %s failed!\n", p->level, ' ',
21840 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021841 }
21842 _res = NULL;
21843 done:
21844 D(p->level--);
21845 return _res;
21846}
21847
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021848// _loop1_48: except_block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021849static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021850_loop1_48_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021851{
21852 D(p->level++);
21853 if (p->error_indicator) {
21854 D(p->level--);
21855 return NULL;
21856 }
21857 void *_res = NULL;
21858 int _mark = p->mark;
21859 int _start_mark = p->mark;
21860 void **_children = PyMem_Malloc(sizeof(void *));
21861 if (!_children) {
21862 p->error_indicator = 1;
21863 PyErr_NoMemory();
21864 D(p->level--);
21865 return NULL;
21866 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010021867 Py_ssize_t _children_capacity = 1;
21868 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021869 { // except_block
21870 if (p->error_indicator) {
21871 D(p->level--);
21872 return NULL;
21873 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021874 D(fprintf(stderr, "%*c> _loop1_48[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "except_block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021875 excepthandler_ty except_block_var;
21876 while (
21877 (except_block_var = except_block_rule(p)) // except_block
21878 )
21879 {
21880 _res = except_block_var;
21881 if (_n == _children_capacity) {
21882 _children_capacity *= 2;
21883 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21884 if (!_new_children) {
21885 p->error_indicator = 1;
21886 PyErr_NoMemory();
21887 D(p->level--);
21888 return NULL;
21889 }
21890 _children = _new_children;
21891 }
21892 _children[_n++] = _res;
21893 _mark = p->mark;
21894 }
21895 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021896 D(fprintf(stderr, "%*c%s _loop1_48[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021897 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "except_block"));
21898 }
21899 if (_n == 0 || p->error_indicator) {
21900 PyMem_Free(_children);
21901 D(p->level--);
21902 return NULL;
21903 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021904 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021905 if (!_seq) {
21906 PyMem_Free(_children);
21907 p->error_indicator = 1;
21908 PyErr_NoMemory();
21909 D(p->level--);
21910 return NULL;
21911 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021912 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021913 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021914 _PyPegen_insert_memo(p, _start_mark, _loop1_48_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021915 D(p->level--);
21916 return _seq;
21917}
21918
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021919// _tmp_49: 'as' NAME
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021920static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021921_tmp_49_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021922{
21923 D(p->level++);
21924 if (p->error_indicator) {
21925 D(p->level--);
21926 return NULL;
21927 }
21928 void * _res = NULL;
21929 int _mark = p->mark;
21930 { // 'as' NAME
21931 if (p->error_indicator) {
21932 D(p->level--);
21933 return NULL;
21934 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021935 D(fprintf(stderr, "%*c> _tmp_49[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021936 Token * _keyword;
21937 expr_ty z;
21938 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021939 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021940 &&
21941 (z = _PyPegen_name_token(p)) // NAME
21942 )
21943 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021944 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 +010021945 _res = z;
21946 if (_res == NULL && PyErr_Occurred()) {
21947 p->error_indicator = 1;
21948 D(p->level--);
21949 return NULL;
21950 }
21951 goto done;
21952 }
21953 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021954 D(fprintf(stderr, "%*c%s _tmp_49[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021955 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
21956 }
21957 _res = NULL;
21958 done:
21959 D(p->level--);
21960 return _res;
21961}
21962
Brandt Bucher145bf262021-02-26 14:51:55 -080021963// _loop1_50: case_block
21964static asdl_seq *
21965_loop1_50_rule(Parser *p)
21966{
21967 D(p->level++);
21968 if (p->error_indicator) {
21969 D(p->level--);
21970 return NULL;
21971 }
21972 void *_res = NULL;
21973 int _mark = p->mark;
21974 int _start_mark = p->mark;
21975 void **_children = PyMem_Malloc(sizeof(void *));
21976 if (!_children) {
21977 p->error_indicator = 1;
21978 PyErr_NoMemory();
21979 D(p->level--);
21980 return NULL;
21981 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010021982 Py_ssize_t _children_capacity = 1;
21983 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080021984 { // case_block
21985 if (p->error_indicator) {
21986 D(p->level--);
21987 return NULL;
21988 }
21989 D(fprintf(stderr, "%*c> _loop1_50[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "case_block"));
21990 match_case_ty case_block_var;
21991 while (
21992 (case_block_var = case_block_rule(p)) // case_block
21993 )
21994 {
21995 _res = case_block_var;
21996 if (_n == _children_capacity) {
21997 _children_capacity *= 2;
21998 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21999 if (!_new_children) {
22000 p->error_indicator = 1;
22001 PyErr_NoMemory();
22002 D(p->level--);
22003 return NULL;
22004 }
22005 _children = _new_children;
22006 }
22007 _children[_n++] = _res;
22008 _mark = p->mark;
22009 }
22010 p->mark = _mark;
22011 D(fprintf(stderr, "%*c%s _loop1_50[%d-%d]: %s failed!\n", p->level, ' ',
22012 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "case_block"));
22013 }
22014 if (_n == 0 || p->error_indicator) {
22015 PyMem_Free(_children);
22016 D(p->level--);
22017 return NULL;
22018 }
22019 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
22020 if (!_seq) {
22021 PyMem_Free(_children);
22022 p->error_indicator = 1;
22023 PyErr_NoMemory();
22024 D(p->level--);
22025 return NULL;
22026 }
22027 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
22028 PyMem_Free(_children);
22029 _PyPegen_insert_memo(p, _start_mark, _loop1_50_type, _seq);
22030 D(p->level--);
22031 return _seq;
22032}
22033
22034// _loop0_52: '|' closed_pattern
22035static asdl_seq *
22036_loop0_52_rule(Parser *p)
22037{
22038 D(p->level++);
22039 if (p->error_indicator) {
22040 D(p->level--);
22041 return NULL;
22042 }
22043 void *_res = NULL;
22044 int _mark = p->mark;
22045 int _start_mark = p->mark;
22046 void **_children = PyMem_Malloc(sizeof(void *));
22047 if (!_children) {
22048 p->error_indicator = 1;
22049 PyErr_NoMemory();
22050 D(p->level--);
22051 return NULL;
22052 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010022053 Py_ssize_t _children_capacity = 1;
22054 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080022055 { // '|' closed_pattern
22056 if (p->error_indicator) {
22057 D(p->level--);
22058 return NULL;
22059 }
22060 D(fprintf(stderr, "%*c> _loop0_52[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'|' closed_pattern"));
22061 Token * _literal;
22062 expr_ty elem;
22063 while (
22064 (_literal = _PyPegen_expect_token(p, 18)) // token='|'
22065 &&
22066 (elem = closed_pattern_rule(p)) // closed_pattern
22067 )
22068 {
22069 _res = elem;
22070 if (_res == NULL && PyErr_Occurred()) {
22071 p->error_indicator = 1;
22072 PyMem_Free(_children);
22073 D(p->level--);
22074 return NULL;
22075 }
22076 if (_n == _children_capacity) {
22077 _children_capacity *= 2;
22078 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22079 if (!_new_children) {
22080 p->error_indicator = 1;
22081 PyErr_NoMemory();
22082 D(p->level--);
22083 return NULL;
22084 }
22085 _children = _new_children;
22086 }
22087 _children[_n++] = _res;
22088 _mark = p->mark;
22089 }
22090 p->mark = _mark;
22091 D(fprintf(stderr, "%*c%s _loop0_52[%d-%d]: %s failed!\n", p->level, ' ',
22092 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'|' closed_pattern"));
22093 }
22094 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
22095 if (!_seq) {
22096 PyMem_Free(_children);
22097 p->error_indicator = 1;
22098 PyErr_NoMemory();
22099 D(p->level--);
22100 return NULL;
22101 }
22102 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
22103 PyMem_Free(_children);
22104 _PyPegen_insert_memo(p, _start_mark, _loop0_52_type, _seq);
22105 D(p->level--);
22106 return _seq;
22107}
22108
22109// _gather_51: closed_pattern _loop0_52
22110static asdl_seq *
22111_gather_51_rule(Parser *p)
22112{
22113 D(p->level++);
22114 if (p->error_indicator) {
22115 D(p->level--);
22116 return NULL;
22117 }
22118 asdl_seq * _res = NULL;
22119 int _mark = p->mark;
22120 { // closed_pattern _loop0_52
22121 if (p->error_indicator) {
22122 D(p->level--);
22123 return NULL;
22124 }
22125 D(fprintf(stderr, "%*c> _gather_51[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "closed_pattern _loop0_52"));
22126 expr_ty elem;
22127 asdl_seq * seq;
22128 if (
22129 (elem = closed_pattern_rule(p)) // closed_pattern
22130 &&
22131 (seq = _loop0_52_rule(p)) // _loop0_52
22132 )
22133 {
22134 D(fprintf(stderr, "%*c+ _gather_51[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "closed_pattern _loop0_52"));
22135 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
22136 goto done;
22137 }
22138 p->mark = _mark;
22139 D(fprintf(stderr, "%*c%s _gather_51[%d-%d]: %s failed!\n", p->level, ' ',
22140 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "closed_pattern _loop0_52"));
22141 }
22142 _res = NULL;
22143 done:
22144 D(p->level--);
22145 return _res;
22146}
22147
22148// _tmp_53: '+' | '-'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022149static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080022150_tmp_53_rule(Parser *p)
22151{
22152 D(p->level++);
22153 if (p->error_indicator) {
22154 D(p->level--);
22155 return NULL;
22156 }
22157 void * _res = NULL;
22158 int _mark = p->mark;
22159 { // '+'
22160 if (p->error_indicator) {
22161 D(p->level--);
22162 return NULL;
22163 }
22164 D(fprintf(stderr, "%*c> _tmp_53[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'+'"));
22165 Token * _literal;
22166 if (
22167 (_literal = _PyPegen_expect_token(p, 14)) // token='+'
22168 )
22169 {
22170 D(fprintf(stderr, "%*c+ _tmp_53[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'+'"));
22171 _res = _literal;
22172 goto done;
22173 }
22174 p->mark = _mark;
22175 D(fprintf(stderr, "%*c%s _tmp_53[%d-%d]: %s failed!\n", p->level, ' ',
22176 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+'"));
22177 }
22178 { // '-'
22179 if (p->error_indicator) {
22180 D(p->level--);
22181 return NULL;
22182 }
22183 D(fprintf(stderr, "%*c> _tmp_53[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-'"));
22184 Token * _literal;
22185 if (
22186 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
22187 )
22188 {
22189 D(fprintf(stderr, "%*c+ _tmp_53[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-'"));
22190 _res = _literal;
22191 goto done;
22192 }
22193 p->mark = _mark;
22194 D(fprintf(stderr, "%*c%s _tmp_53[%d-%d]: %s failed!\n", p->level, ' ',
22195 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-'"));
22196 }
22197 _res = NULL;
22198 done:
22199 D(p->level--);
22200 return _res;
22201}
22202
22203// _tmp_54: '.' | '(' | '='
22204static void *
22205_tmp_54_rule(Parser *p)
22206{
22207 D(p->level++);
22208 if (p->error_indicator) {
22209 D(p->level--);
22210 return NULL;
22211 }
22212 void * _res = NULL;
22213 int _mark = p->mark;
22214 { // '.'
22215 if (p->error_indicator) {
22216 D(p->level--);
22217 return NULL;
22218 }
22219 D(fprintf(stderr, "%*c> _tmp_54[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
22220 Token * _literal;
22221 if (
22222 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
22223 )
22224 {
22225 D(fprintf(stderr, "%*c+ _tmp_54[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
22226 _res = _literal;
22227 goto done;
22228 }
22229 p->mark = _mark;
22230 D(fprintf(stderr, "%*c%s _tmp_54[%d-%d]: %s failed!\n", p->level, ' ',
22231 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
22232 }
22233 { // '('
22234 if (p->error_indicator) {
22235 D(p->level--);
22236 return NULL;
22237 }
22238 D(fprintf(stderr, "%*c> _tmp_54[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('"));
22239 Token * _literal;
22240 if (
22241 (_literal = _PyPegen_expect_token(p, 7)) // token='('
22242 )
22243 {
22244 D(fprintf(stderr, "%*c+ _tmp_54[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('"));
22245 _res = _literal;
22246 goto done;
22247 }
22248 p->mark = _mark;
22249 D(fprintf(stderr, "%*c%s _tmp_54[%d-%d]: %s failed!\n", p->level, ' ',
22250 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('"));
22251 }
22252 { // '='
22253 if (p->error_indicator) {
22254 D(p->level--);
22255 return NULL;
22256 }
22257 D(fprintf(stderr, "%*c> _tmp_54[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'='"));
22258 Token * _literal;
22259 if (
22260 (_literal = _PyPegen_expect_token(p, 22)) // token='='
22261 )
22262 {
22263 D(fprintf(stderr, "%*c+ _tmp_54[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'='"));
22264 _res = _literal;
22265 goto done;
22266 }
22267 p->mark = _mark;
22268 D(fprintf(stderr, "%*c%s _tmp_54[%d-%d]: %s failed!\n", p->level, ' ',
22269 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'='"));
22270 }
22271 _res = NULL;
22272 done:
22273 D(p->level--);
22274 return _res;
22275}
22276
22277// _tmp_55: '.' | '(' | '='
22278static void *
22279_tmp_55_rule(Parser *p)
22280{
22281 D(p->level++);
22282 if (p->error_indicator) {
22283 D(p->level--);
22284 return NULL;
22285 }
22286 void * _res = NULL;
22287 int _mark = p->mark;
22288 { // '.'
22289 if (p->error_indicator) {
22290 D(p->level--);
22291 return NULL;
22292 }
22293 D(fprintf(stderr, "%*c> _tmp_55[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
22294 Token * _literal;
22295 if (
22296 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
22297 )
22298 {
22299 D(fprintf(stderr, "%*c+ _tmp_55[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
22300 _res = _literal;
22301 goto done;
22302 }
22303 p->mark = _mark;
22304 D(fprintf(stderr, "%*c%s _tmp_55[%d-%d]: %s failed!\n", p->level, ' ',
22305 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
22306 }
22307 { // '('
22308 if (p->error_indicator) {
22309 D(p->level--);
22310 return NULL;
22311 }
22312 D(fprintf(stderr, "%*c> _tmp_55[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('"));
22313 Token * _literal;
22314 if (
22315 (_literal = _PyPegen_expect_token(p, 7)) // token='('
22316 )
22317 {
22318 D(fprintf(stderr, "%*c+ _tmp_55[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('"));
22319 _res = _literal;
22320 goto done;
22321 }
22322 p->mark = _mark;
22323 D(fprintf(stderr, "%*c%s _tmp_55[%d-%d]: %s failed!\n", p->level, ' ',
22324 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('"));
22325 }
22326 { // '='
22327 if (p->error_indicator) {
22328 D(p->level--);
22329 return NULL;
22330 }
22331 D(fprintf(stderr, "%*c> _tmp_55[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'='"));
22332 Token * _literal;
22333 if (
22334 (_literal = _PyPegen_expect_token(p, 22)) // token='='
22335 )
22336 {
22337 D(fprintf(stderr, "%*c+ _tmp_55[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'='"));
22338 _res = _literal;
22339 goto done;
22340 }
22341 p->mark = _mark;
22342 D(fprintf(stderr, "%*c%s _tmp_55[%d-%d]: %s failed!\n", p->level, ' ',
22343 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'='"));
22344 }
22345 _res = NULL;
22346 done:
22347 D(p->level--);
22348 return _res;
22349}
22350
22351// _loop0_57: ',' maybe_star_pattern
22352static asdl_seq *
22353_loop0_57_rule(Parser *p)
22354{
22355 D(p->level++);
22356 if (p->error_indicator) {
22357 D(p->level--);
22358 return NULL;
22359 }
22360 void *_res = NULL;
22361 int _mark = p->mark;
22362 int _start_mark = p->mark;
22363 void **_children = PyMem_Malloc(sizeof(void *));
22364 if (!_children) {
22365 p->error_indicator = 1;
22366 PyErr_NoMemory();
22367 D(p->level--);
22368 return NULL;
22369 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010022370 Py_ssize_t _children_capacity = 1;
22371 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080022372 { // ',' maybe_star_pattern
22373 if (p->error_indicator) {
22374 D(p->level--);
22375 return NULL;
22376 }
22377 D(fprintf(stderr, "%*c> _loop0_57[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' maybe_star_pattern"));
22378 Token * _literal;
22379 expr_ty elem;
22380 while (
22381 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22382 &&
22383 (elem = maybe_star_pattern_rule(p)) // maybe_star_pattern
22384 )
22385 {
22386 _res = elem;
22387 if (_res == NULL && PyErr_Occurred()) {
22388 p->error_indicator = 1;
22389 PyMem_Free(_children);
22390 D(p->level--);
22391 return NULL;
22392 }
22393 if (_n == _children_capacity) {
22394 _children_capacity *= 2;
22395 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22396 if (!_new_children) {
22397 p->error_indicator = 1;
22398 PyErr_NoMemory();
22399 D(p->level--);
22400 return NULL;
22401 }
22402 _children = _new_children;
22403 }
22404 _children[_n++] = _res;
22405 _mark = p->mark;
22406 }
22407 p->mark = _mark;
22408 D(fprintf(stderr, "%*c%s _loop0_57[%d-%d]: %s failed!\n", p->level, ' ',
22409 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' maybe_star_pattern"));
22410 }
22411 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
22412 if (!_seq) {
22413 PyMem_Free(_children);
22414 p->error_indicator = 1;
22415 PyErr_NoMemory();
22416 D(p->level--);
22417 return NULL;
22418 }
22419 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
22420 PyMem_Free(_children);
22421 _PyPegen_insert_memo(p, _start_mark, _loop0_57_type, _seq);
22422 D(p->level--);
22423 return _seq;
22424}
22425
22426// _gather_56: maybe_star_pattern _loop0_57
22427static asdl_seq *
22428_gather_56_rule(Parser *p)
22429{
22430 D(p->level++);
22431 if (p->error_indicator) {
22432 D(p->level--);
22433 return NULL;
22434 }
22435 asdl_seq * _res = NULL;
22436 int _mark = p->mark;
22437 { // maybe_star_pattern _loop0_57
22438 if (p->error_indicator) {
22439 D(p->level--);
22440 return NULL;
22441 }
22442 D(fprintf(stderr, "%*c> _gather_56[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "maybe_star_pattern _loop0_57"));
22443 expr_ty elem;
22444 asdl_seq * seq;
22445 if (
22446 (elem = maybe_star_pattern_rule(p)) // maybe_star_pattern
22447 &&
22448 (seq = _loop0_57_rule(p)) // _loop0_57
22449 )
22450 {
22451 D(fprintf(stderr, "%*c+ _gather_56[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "maybe_star_pattern _loop0_57"));
22452 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
22453 goto done;
22454 }
22455 p->mark = _mark;
22456 D(fprintf(stderr, "%*c%s _gather_56[%d-%d]: %s failed!\n", p->level, ' ',
22457 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "maybe_star_pattern _loop0_57"));
22458 }
22459 _res = NULL;
22460 done:
22461 D(p->level--);
22462 return _res;
22463}
22464
22465// _tmp_58: capture_pattern | wildcard_pattern
22466static void *
22467_tmp_58_rule(Parser *p)
22468{
22469 D(p->level++);
22470 if (p->error_indicator) {
22471 D(p->level--);
22472 return NULL;
22473 }
22474 void * _res = NULL;
22475 int _mark = p->mark;
22476 { // capture_pattern
22477 if (p->error_indicator) {
22478 D(p->level--);
22479 return NULL;
22480 }
22481 D(fprintf(stderr, "%*c> _tmp_58[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "capture_pattern"));
22482 expr_ty capture_pattern_var;
22483 if (
22484 (capture_pattern_var = capture_pattern_rule(p)) // capture_pattern
22485 )
22486 {
22487 D(fprintf(stderr, "%*c+ _tmp_58[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "capture_pattern"));
22488 _res = capture_pattern_var;
22489 goto done;
22490 }
22491 p->mark = _mark;
22492 D(fprintf(stderr, "%*c%s _tmp_58[%d-%d]: %s failed!\n", p->level, ' ',
22493 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "capture_pattern"));
22494 }
22495 { // wildcard_pattern
22496 if (p->error_indicator) {
22497 D(p->level--);
22498 return NULL;
22499 }
22500 D(fprintf(stderr, "%*c> _tmp_58[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "wildcard_pattern"));
22501 expr_ty wildcard_pattern_var;
22502 if (
22503 (wildcard_pattern_var = wildcard_pattern_rule(p)) // wildcard_pattern
22504 )
22505 {
22506 D(fprintf(stderr, "%*c+ _tmp_58[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "wildcard_pattern"));
22507 _res = wildcard_pattern_var;
22508 goto done;
22509 }
22510 p->mark = _mark;
22511 D(fprintf(stderr, "%*c%s _tmp_58[%d-%d]: %s failed!\n", p->level, ' ',
22512 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "wildcard_pattern"));
22513 }
22514 _res = NULL;
22515 done:
22516 D(p->level--);
22517 return _res;
22518}
22519
22520// _loop0_60: ',' key_value_pattern
22521static asdl_seq *
22522_loop0_60_rule(Parser *p)
22523{
22524 D(p->level++);
22525 if (p->error_indicator) {
22526 D(p->level--);
22527 return NULL;
22528 }
22529 void *_res = NULL;
22530 int _mark = p->mark;
22531 int _start_mark = p->mark;
22532 void **_children = PyMem_Malloc(sizeof(void *));
22533 if (!_children) {
22534 p->error_indicator = 1;
22535 PyErr_NoMemory();
22536 D(p->level--);
22537 return NULL;
22538 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010022539 Py_ssize_t _children_capacity = 1;
22540 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080022541 { // ',' key_value_pattern
22542 if (p->error_indicator) {
22543 D(p->level--);
22544 return NULL;
22545 }
22546 D(fprintf(stderr, "%*c> _loop0_60[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' key_value_pattern"));
22547 Token * _literal;
22548 KeyValuePair* elem;
22549 while (
22550 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22551 &&
22552 (elem = key_value_pattern_rule(p)) // key_value_pattern
22553 )
22554 {
22555 _res = elem;
22556 if (_res == NULL && PyErr_Occurred()) {
22557 p->error_indicator = 1;
22558 PyMem_Free(_children);
22559 D(p->level--);
22560 return NULL;
22561 }
22562 if (_n == _children_capacity) {
22563 _children_capacity *= 2;
22564 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22565 if (!_new_children) {
22566 p->error_indicator = 1;
22567 PyErr_NoMemory();
22568 D(p->level--);
22569 return NULL;
22570 }
22571 _children = _new_children;
22572 }
22573 _children[_n++] = _res;
22574 _mark = p->mark;
22575 }
22576 p->mark = _mark;
22577 D(fprintf(stderr, "%*c%s _loop0_60[%d-%d]: %s failed!\n", p->level, ' ',
22578 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' key_value_pattern"));
22579 }
22580 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
22581 if (!_seq) {
22582 PyMem_Free(_children);
22583 p->error_indicator = 1;
22584 PyErr_NoMemory();
22585 D(p->level--);
22586 return NULL;
22587 }
22588 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
22589 PyMem_Free(_children);
22590 _PyPegen_insert_memo(p, _start_mark, _loop0_60_type, _seq);
22591 D(p->level--);
22592 return _seq;
22593}
22594
22595// _gather_59: key_value_pattern _loop0_60
22596static asdl_seq *
22597_gather_59_rule(Parser *p)
22598{
22599 D(p->level++);
22600 if (p->error_indicator) {
22601 D(p->level--);
22602 return NULL;
22603 }
22604 asdl_seq * _res = NULL;
22605 int _mark = p->mark;
22606 { // key_value_pattern _loop0_60
22607 if (p->error_indicator) {
22608 D(p->level--);
22609 return NULL;
22610 }
22611 D(fprintf(stderr, "%*c> _gather_59[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "key_value_pattern _loop0_60"));
22612 KeyValuePair* elem;
22613 asdl_seq * seq;
22614 if (
22615 (elem = key_value_pattern_rule(p)) // key_value_pattern
22616 &&
22617 (seq = _loop0_60_rule(p)) // _loop0_60
22618 )
22619 {
22620 D(fprintf(stderr, "%*c+ _gather_59[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "key_value_pattern _loop0_60"));
22621 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
22622 goto done;
22623 }
22624 p->mark = _mark;
22625 D(fprintf(stderr, "%*c%s _gather_59[%d-%d]: %s failed!\n", p->level, ' ',
22626 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "key_value_pattern _loop0_60"));
22627 }
22628 _res = NULL;
22629 done:
22630 D(p->level--);
22631 return _res;
22632}
22633
22634// _tmp_61: literal_pattern | value_pattern
22635static void *
22636_tmp_61_rule(Parser *p)
22637{
22638 D(p->level++);
22639 if (p->error_indicator) {
22640 D(p->level--);
22641 return NULL;
22642 }
22643 void * _res = NULL;
22644 int _mark = p->mark;
22645 { // literal_pattern
22646 if (p->error_indicator) {
22647 D(p->level--);
22648 return NULL;
22649 }
22650 D(fprintf(stderr, "%*c> _tmp_61[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "literal_pattern"));
22651 expr_ty literal_pattern_var;
22652 if (
22653 (literal_pattern_var = literal_pattern_rule(p)) // literal_pattern
22654 )
22655 {
22656 D(fprintf(stderr, "%*c+ _tmp_61[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "literal_pattern"));
22657 _res = literal_pattern_var;
22658 goto done;
22659 }
22660 p->mark = _mark;
22661 D(fprintf(stderr, "%*c%s _tmp_61[%d-%d]: %s failed!\n", p->level, ' ',
22662 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "literal_pattern"));
22663 }
22664 { // value_pattern
22665 if (p->error_indicator) {
22666 D(p->level--);
22667 return NULL;
22668 }
22669 D(fprintf(stderr, "%*c> _tmp_61[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "value_pattern"));
22670 expr_ty value_pattern_var;
22671 if (
22672 (value_pattern_var = value_pattern_rule(p)) // value_pattern
22673 )
22674 {
22675 D(fprintf(stderr, "%*c+ _tmp_61[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "value_pattern"));
22676 _res = value_pattern_var;
22677 goto done;
22678 }
22679 p->mark = _mark;
22680 D(fprintf(stderr, "%*c%s _tmp_61[%d-%d]: %s failed!\n", p->level, ' ',
22681 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "value_pattern"));
22682 }
22683 _res = NULL;
22684 done:
22685 D(p->level--);
22686 return _res;
22687}
22688
22689// _loop0_63: ',' pattern
22690static asdl_seq *
22691_loop0_63_rule(Parser *p)
22692{
22693 D(p->level++);
22694 if (p->error_indicator) {
22695 D(p->level--);
22696 return NULL;
22697 }
22698 void *_res = NULL;
22699 int _mark = p->mark;
22700 int _start_mark = p->mark;
22701 void **_children = PyMem_Malloc(sizeof(void *));
22702 if (!_children) {
22703 p->error_indicator = 1;
22704 PyErr_NoMemory();
22705 D(p->level--);
22706 return NULL;
22707 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010022708 Py_ssize_t _children_capacity = 1;
22709 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080022710 { // ',' pattern
22711 if (p->error_indicator) {
22712 D(p->level--);
22713 return NULL;
22714 }
22715 D(fprintf(stderr, "%*c> _loop0_63[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' pattern"));
22716 Token * _literal;
22717 expr_ty elem;
22718 while (
22719 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22720 &&
22721 (elem = pattern_rule(p)) // pattern
22722 )
22723 {
22724 _res = elem;
22725 if (_res == NULL && PyErr_Occurred()) {
22726 p->error_indicator = 1;
22727 PyMem_Free(_children);
22728 D(p->level--);
22729 return NULL;
22730 }
22731 if (_n == _children_capacity) {
22732 _children_capacity *= 2;
22733 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22734 if (!_new_children) {
22735 p->error_indicator = 1;
22736 PyErr_NoMemory();
22737 D(p->level--);
22738 return NULL;
22739 }
22740 _children = _new_children;
22741 }
22742 _children[_n++] = _res;
22743 _mark = p->mark;
22744 }
22745 p->mark = _mark;
22746 D(fprintf(stderr, "%*c%s _loop0_63[%d-%d]: %s failed!\n", p->level, ' ',
22747 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' pattern"));
22748 }
22749 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
22750 if (!_seq) {
22751 PyMem_Free(_children);
22752 p->error_indicator = 1;
22753 PyErr_NoMemory();
22754 D(p->level--);
22755 return NULL;
22756 }
22757 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
22758 PyMem_Free(_children);
22759 _PyPegen_insert_memo(p, _start_mark, _loop0_63_type, _seq);
22760 D(p->level--);
22761 return _seq;
22762}
22763
22764// _gather_62: pattern _loop0_63
22765static asdl_seq *
22766_gather_62_rule(Parser *p)
22767{
22768 D(p->level++);
22769 if (p->error_indicator) {
22770 D(p->level--);
22771 return NULL;
22772 }
22773 asdl_seq * _res = NULL;
22774 int _mark = p->mark;
22775 { // pattern _loop0_63
22776 if (p->error_indicator) {
22777 D(p->level--);
22778 return NULL;
22779 }
22780 D(fprintf(stderr, "%*c> _gather_62[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "pattern _loop0_63"));
22781 expr_ty elem;
22782 asdl_seq * seq;
22783 if (
22784 (elem = pattern_rule(p)) // pattern
22785 &&
22786 (seq = _loop0_63_rule(p)) // _loop0_63
22787 )
22788 {
22789 D(fprintf(stderr, "%*c+ _gather_62[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "pattern _loop0_63"));
22790 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
22791 goto done;
22792 }
22793 p->mark = _mark;
22794 D(fprintf(stderr, "%*c%s _gather_62[%d-%d]: %s failed!\n", p->level, ' ',
22795 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "pattern _loop0_63"));
22796 }
22797 _res = NULL;
22798 done:
22799 D(p->level--);
22800 return _res;
22801}
22802
22803// _loop0_65: ',' keyword_pattern
22804static asdl_seq *
22805_loop0_65_rule(Parser *p)
22806{
22807 D(p->level++);
22808 if (p->error_indicator) {
22809 D(p->level--);
22810 return NULL;
22811 }
22812 void *_res = NULL;
22813 int _mark = p->mark;
22814 int _start_mark = p->mark;
22815 void **_children = PyMem_Malloc(sizeof(void *));
22816 if (!_children) {
22817 p->error_indicator = 1;
22818 PyErr_NoMemory();
22819 D(p->level--);
22820 return NULL;
22821 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010022822 Py_ssize_t _children_capacity = 1;
22823 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080022824 { // ',' keyword_pattern
22825 if (p->error_indicator) {
22826 D(p->level--);
22827 return NULL;
22828 }
22829 D(fprintf(stderr, "%*c> _loop0_65[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' keyword_pattern"));
22830 Token * _literal;
22831 keyword_ty elem;
22832 while (
22833 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22834 &&
22835 (elem = keyword_pattern_rule(p)) // keyword_pattern
22836 )
22837 {
22838 _res = elem;
22839 if (_res == NULL && PyErr_Occurred()) {
22840 p->error_indicator = 1;
22841 PyMem_Free(_children);
22842 D(p->level--);
22843 return NULL;
22844 }
22845 if (_n == _children_capacity) {
22846 _children_capacity *= 2;
22847 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22848 if (!_new_children) {
22849 p->error_indicator = 1;
22850 PyErr_NoMemory();
22851 D(p->level--);
22852 return NULL;
22853 }
22854 _children = _new_children;
22855 }
22856 _children[_n++] = _res;
22857 _mark = p->mark;
22858 }
22859 p->mark = _mark;
22860 D(fprintf(stderr, "%*c%s _loop0_65[%d-%d]: %s failed!\n", p->level, ' ',
22861 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' keyword_pattern"));
22862 }
22863 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
22864 if (!_seq) {
22865 PyMem_Free(_children);
22866 p->error_indicator = 1;
22867 PyErr_NoMemory();
22868 D(p->level--);
22869 return NULL;
22870 }
22871 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
22872 PyMem_Free(_children);
22873 _PyPegen_insert_memo(p, _start_mark, _loop0_65_type, _seq);
22874 D(p->level--);
22875 return _seq;
22876}
22877
22878// _gather_64: keyword_pattern _loop0_65
22879static asdl_seq *
22880_gather_64_rule(Parser *p)
22881{
22882 D(p->level++);
22883 if (p->error_indicator) {
22884 D(p->level--);
22885 return NULL;
22886 }
22887 asdl_seq * _res = NULL;
22888 int _mark = p->mark;
22889 { // keyword_pattern _loop0_65
22890 if (p->error_indicator) {
22891 D(p->level--);
22892 return NULL;
22893 }
22894 D(fprintf(stderr, "%*c> _gather_64[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "keyword_pattern _loop0_65"));
22895 keyword_ty elem;
22896 asdl_seq * seq;
22897 if (
22898 (elem = keyword_pattern_rule(p)) // keyword_pattern
22899 &&
22900 (seq = _loop0_65_rule(p)) // _loop0_65
22901 )
22902 {
22903 D(fprintf(stderr, "%*c+ _gather_64[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "keyword_pattern _loop0_65"));
22904 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
22905 goto done;
22906 }
22907 p->mark = _mark;
22908 D(fprintf(stderr, "%*c%s _gather_64[%d-%d]: %s failed!\n", p->level, ' ',
22909 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "keyword_pattern _loop0_65"));
22910 }
22911 _res = NULL;
22912 done:
22913 D(p->level--);
22914 return _res;
22915}
22916
22917// _tmp_66: 'from' expression
22918static void *
22919_tmp_66_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022920{
22921 D(p->level++);
22922 if (p->error_indicator) {
22923 D(p->level--);
22924 return NULL;
22925 }
22926 void * _res = NULL;
22927 int _mark = p->mark;
22928 { // 'from' expression
22929 if (p->error_indicator) {
22930 D(p->level--);
22931 return NULL;
22932 }
Brandt Bucher145bf262021-02-26 14:51:55 -080022933 D(fprintf(stderr, "%*c> _tmp_66[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022934 Token * _keyword;
22935 expr_ty z;
22936 if (
22937 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
22938 &&
22939 (z = expression_rule(p)) // expression
22940 )
22941 {
Brandt Bucher145bf262021-02-26 14:51:55 -080022942 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 +010022943 _res = z;
22944 if (_res == NULL && PyErr_Occurred()) {
22945 p->error_indicator = 1;
22946 D(p->level--);
22947 return NULL;
22948 }
22949 goto done;
22950 }
22951 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080022952 D(fprintf(stderr, "%*c%s _tmp_66[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022953 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022954 }
22955 _res = NULL;
22956 done:
22957 D(p->level--);
22958 return _res;
22959}
22960
Brandt Bucher145bf262021-02-26 14:51:55 -080022961// _tmp_67: '->' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022962static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080022963_tmp_67_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022964{
22965 D(p->level++);
22966 if (p->error_indicator) {
22967 D(p->level--);
22968 return NULL;
22969 }
22970 void * _res = NULL;
22971 int _mark = p->mark;
22972 { // '->' expression
22973 if (p->error_indicator) {
22974 D(p->level--);
22975 return NULL;
22976 }
Brandt Bucher145bf262021-02-26 14:51:55 -080022977 D(fprintf(stderr, "%*c> _tmp_67[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'->' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022978 Token * _literal;
22979 expr_ty z;
22980 if (
22981 (_literal = _PyPegen_expect_token(p, 51)) // token='->'
22982 &&
22983 (z = expression_rule(p)) // expression
22984 )
22985 {
Brandt Bucher145bf262021-02-26 14:51:55 -080022986 D(fprintf(stderr, "%*c+ _tmp_67[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'->' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022987 _res = z;
22988 if (_res == NULL && PyErr_Occurred()) {
22989 p->error_indicator = 1;
22990 D(p->level--);
22991 return NULL;
22992 }
22993 goto done;
22994 }
22995 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080022996 D(fprintf(stderr, "%*c%s _tmp_67[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022997 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'->' expression"));
22998 }
22999 _res = NULL;
23000 done:
23001 D(p->level--);
23002 return _res;
23003}
23004
Brandt Bucher145bf262021-02-26 14:51:55 -080023005// _tmp_68: '->' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023006static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080023007_tmp_68_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023008{
23009 D(p->level++);
23010 if (p->error_indicator) {
23011 D(p->level--);
23012 return NULL;
23013 }
23014 void * _res = NULL;
23015 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023016 { // '->' expression
23017 if (p->error_indicator) {
23018 D(p->level--);
23019 return NULL;
23020 }
Brandt Bucher145bf262021-02-26 14:51:55 -080023021 D(fprintf(stderr, "%*c> _tmp_68[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'->' expression"));
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023022 Token * _literal;
23023 expr_ty z;
23024 if (
23025 (_literal = _PyPegen_expect_token(p, 51)) // token='->'
23026 &&
23027 (z = expression_rule(p)) // expression
23028 )
23029 {
Brandt Bucher145bf262021-02-26 14:51:55 -080023030 D(fprintf(stderr, "%*c+ _tmp_68[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'->' expression"));
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023031 _res = z;
23032 if (_res == NULL && PyErr_Occurred()) {
23033 p->error_indicator = 1;
23034 D(p->level--);
23035 return NULL;
23036 }
23037 goto done;
23038 }
23039 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080023040 D(fprintf(stderr, "%*c%s _tmp_68[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023041 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'->' expression"));
23042 }
23043 _res = NULL;
23044 done:
23045 D(p->level--);
23046 return _res;
23047}
23048
Brandt Bucher145bf262021-02-26 14:51:55 -080023049// _tmp_69: NEWLINE INDENT
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023050static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080023051_tmp_69_rule(Parser *p)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023052{
23053 D(p->level++);
23054 if (p->error_indicator) {
23055 D(p->level--);
23056 return NULL;
23057 }
23058 void * _res = NULL;
23059 int _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023060 { // NEWLINE INDENT
23061 if (p->error_indicator) {
23062 D(p->level--);
23063 return NULL;
23064 }
Brandt Bucher145bf262021-02-26 14:51:55 -080023065 D(fprintf(stderr, "%*c> _tmp_69[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE INDENT"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023066 Token * indent_var;
23067 Token * newline_var;
23068 if (
23069 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
23070 &&
23071 (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
23072 )
23073 {
Brandt Bucher145bf262021-02-26 14:51:55 -080023074 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 +010023075 _res = _PyPegen_dummy_name(p, newline_var, indent_var);
23076 goto done;
23077 }
23078 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080023079 D(fprintf(stderr, "%*c%s _tmp_69[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023080 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE INDENT"));
23081 }
23082 _res = NULL;
23083 done:
23084 D(p->level--);
23085 return _res;
23086}
23087
Brandt Bucher145bf262021-02-26 14:51:55 -080023088// _loop0_70: param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023089static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080023090_loop0_70_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023091{
23092 D(p->level++);
23093 if (p->error_indicator) {
23094 D(p->level--);
23095 return NULL;
23096 }
23097 void *_res = NULL;
23098 int _mark = p->mark;
23099 int _start_mark = p->mark;
23100 void **_children = PyMem_Malloc(sizeof(void *));
23101 if (!_children) {
23102 p->error_indicator = 1;
23103 PyErr_NoMemory();
23104 D(p->level--);
23105 return NULL;
23106 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023107 Py_ssize_t _children_capacity = 1;
23108 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023109 { // param_no_default
23110 if (p->error_indicator) {
23111 D(p->level--);
23112 return NULL;
23113 }
Brandt Bucher145bf262021-02-26 14:51:55 -080023114 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 +010023115 arg_ty param_no_default_var;
23116 while (
23117 (param_no_default_var = param_no_default_rule(p)) // param_no_default
23118 )
23119 {
23120 _res = param_no_default_var;
23121 if (_n == _children_capacity) {
23122 _children_capacity *= 2;
23123 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23124 if (!_new_children) {
23125 p->error_indicator = 1;
23126 PyErr_NoMemory();
23127 D(p->level--);
23128 return NULL;
23129 }
23130 _children = _new_children;
23131 }
23132 _children[_n++] = _res;
23133 _mark = p->mark;
23134 }
23135 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080023136 D(fprintf(stderr, "%*c%s _loop0_70[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023137 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023138 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023139 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023140 if (!_seq) {
23141 PyMem_Free(_children);
23142 p->error_indicator = 1;
23143 PyErr_NoMemory();
23144 D(p->level--);
23145 return NULL;
23146 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023147 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023148 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080023149 _PyPegen_insert_memo(p, _start_mark, _loop0_70_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023150 D(p->level--);
23151 return _seq;
23152}
23153
Brandt Bucher145bf262021-02-26 14:51:55 -080023154// _loop0_71: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023155static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080023156_loop0_71_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023157{
23158 D(p->level++);
23159 if (p->error_indicator) {
23160 D(p->level--);
23161 return NULL;
23162 }
23163 void *_res = NULL;
23164 int _mark = p->mark;
23165 int _start_mark = p->mark;
23166 void **_children = PyMem_Malloc(sizeof(void *));
23167 if (!_children) {
23168 p->error_indicator = 1;
23169 PyErr_NoMemory();
23170 D(p->level--);
23171 return NULL;
23172 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023173 Py_ssize_t _children_capacity = 1;
23174 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023175 { // param_with_default
23176 if (p->error_indicator) {
23177 D(p->level--);
23178 return NULL;
23179 }
Brandt Bucher145bf262021-02-26 14:51:55 -080023180 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 +010023181 NameDefaultPair* param_with_default_var;
23182 while (
23183 (param_with_default_var = param_with_default_rule(p)) // param_with_default
23184 )
23185 {
23186 _res = param_with_default_var;
23187 if (_n == _children_capacity) {
23188 _children_capacity *= 2;
23189 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23190 if (!_new_children) {
23191 p->error_indicator = 1;
23192 PyErr_NoMemory();
23193 D(p->level--);
23194 return NULL;
23195 }
23196 _children = _new_children;
23197 }
23198 _children[_n++] = _res;
23199 _mark = p->mark;
23200 }
23201 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080023202 D(fprintf(stderr, "%*c%s _loop0_71[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023203 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
23204 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023205 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023206 if (!_seq) {
23207 PyMem_Free(_children);
23208 p->error_indicator = 1;
23209 PyErr_NoMemory();
23210 D(p->level--);
23211 return NULL;
23212 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023213 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023214 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080023215 _PyPegen_insert_memo(p, _start_mark, _loop0_71_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023216 D(p->level--);
23217 return _seq;
23218}
23219
Brandt Bucher145bf262021-02-26 14:51:55 -080023220// _loop0_72: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023221static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080023222_loop0_72_rule(Parser *p)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023223{
23224 D(p->level++);
23225 if (p->error_indicator) {
23226 D(p->level--);
23227 return NULL;
23228 }
23229 void *_res = NULL;
23230 int _mark = p->mark;
23231 int _start_mark = p->mark;
23232 void **_children = PyMem_Malloc(sizeof(void *));
23233 if (!_children) {
23234 p->error_indicator = 1;
23235 PyErr_NoMemory();
23236 D(p->level--);
23237 return NULL;
23238 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023239 Py_ssize_t _children_capacity = 1;
23240 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023241 { // param_with_default
23242 if (p->error_indicator) {
23243 D(p->level--);
23244 return NULL;
23245 }
Brandt Bucher145bf262021-02-26 14:51:55 -080023246 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 +030023247 NameDefaultPair* param_with_default_var;
23248 while (
23249 (param_with_default_var = param_with_default_rule(p)) // param_with_default
23250 )
23251 {
23252 _res = param_with_default_var;
23253 if (_n == _children_capacity) {
23254 _children_capacity *= 2;
23255 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23256 if (!_new_children) {
23257 p->error_indicator = 1;
23258 PyErr_NoMemory();
23259 D(p->level--);
23260 return NULL;
23261 }
23262 _children = _new_children;
23263 }
23264 _children[_n++] = _res;
23265 _mark = p->mark;
23266 }
23267 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080023268 D(fprintf(stderr, "%*c%s _loop0_72[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023269 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
23270 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023271 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023272 if (!_seq) {
23273 PyMem_Free(_children);
23274 p->error_indicator = 1;
23275 PyErr_NoMemory();
23276 D(p->level--);
23277 return NULL;
23278 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023279 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023280 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080023281 _PyPegen_insert_memo(p, _start_mark, _loop0_72_type, _seq);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023282 D(p->level--);
23283 return _seq;
23284}
23285
Brandt Bucher145bf262021-02-26 14:51:55 -080023286// _loop1_73: param_no_default
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023287static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080023288_loop1_73_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023289{
23290 D(p->level++);
23291 if (p->error_indicator) {
23292 D(p->level--);
23293 return NULL;
23294 }
23295 void *_res = NULL;
23296 int _mark = p->mark;
23297 int _start_mark = p->mark;
23298 void **_children = PyMem_Malloc(sizeof(void *));
23299 if (!_children) {
23300 p->error_indicator = 1;
23301 PyErr_NoMemory();
23302 D(p->level--);
23303 return NULL;
23304 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023305 Py_ssize_t _children_capacity = 1;
23306 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023307 { // param_no_default
23308 if (p->error_indicator) {
23309 D(p->level--);
23310 return NULL;
23311 }
Brandt Bucher145bf262021-02-26 14:51:55 -080023312 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 +010023313 arg_ty param_no_default_var;
23314 while (
23315 (param_no_default_var = param_no_default_rule(p)) // param_no_default
23316 )
23317 {
23318 _res = param_no_default_var;
23319 if (_n == _children_capacity) {
23320 _children_capacity *= 2;
23321 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23322 if (!_new_children) {
23323 p->error_indicator = 1;
23324 PyErr_NoMemory();
23325 D(p->level--);
23326 return NULL;
23327 }
23328 _children = _new_children;
23329 }
23330 _children[_n++] = _res;
23331 _mark = p->mark;
23332 }
23333 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080023334 D(fprintf(stderr, "%*c%s _loop1_73[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023335 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
23336 }
23337 if (_n == 0 || p->error_indicator) {
23338 PyMem_Free(_children);
23339 D(p->level--);
23340 return NULL;
23341 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023342 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023343 if (!_seq) {
23344 PyMem_Free(_children);
23345 p->error_indicator = 1;
23346 PyErr_NoMemory();
23347 D(p->level--);
23348 return NULL;
23349 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023350 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023351 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080023352 _PyPegen_insert_memo(p, _start_mark, _loop1_73_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023353 D(p->level--);
23354 return _seq;
23355}
23356
Brandt Bucher145bf262021-02-26 14:51:55 -080023357// _loop0_74: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023358static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080023359_loop0_74_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023360{
23361 D(p->level++);
23362 if (p->error_indicator) {
23363 D(p->level--);
23364 return NULL;
23365 }
23366 void *_res = NULL;
23367 int _mark = p->mark;
23368 int _start_mark = p->mark;
23369 void **_children = PyMem_Malloc(sizeof(void *));
23370 if (!_children) {
23371 p->error_indicator = 1;
23372 PyErr_NoMemory();
23373 D(p->level--);
23374 return NULL;
23375 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023376 Py_ssize_t _children_capacity = 1;
23377 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023378 { // param_with_default
23379 if (p->error_indicator) {
23380 D(p->level--);
23381 return NULL;
23382 }
Brandt Bucher145bf262021-02-26 14:51:55 -080023383 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 +010023384 NameDefaultPair* param_with_default_var;
23385 while (
23386 (param_with_default_var = param_with_default_rule(p)) // param_with_default
23387 )
23388 {
23389 _res = param_with_default_var;
23390 if (_n == _children_capacity) {
23391 _children_capacity *= 2;
23392 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23393 if (!_new_children) {
23394 p->error_indicator = 1;
23395 PyErr_NoMemory();
23396 D(p->level--);
23397 return NULL;
23398 }
23399 _children = _new_children;
23400 }
23401 _children[_n++] = _res;
23402 _mark = p->mark;
23403 }
23404 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080023405 D(fprintf(stderr, "%*c%s _loop0_74[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023406 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
23407 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023408 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023409 if (!_seq) {
23410 PyMem_Free(_children);
23411 p->error_indicator = 1;
23412 PyErr_NoMemory();
23413 D(p->level--);
23414 return NULL;
23415 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023416 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023417 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080023418 _PyPegen_insert_memo(p, _start_mark, _loop0_74_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023419 D(p->level--);
23420 return _seq;
23421}
23422
Brandt Bucher145bf262021-02-26 14:51:55 -080023423// _loop1_75: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023424static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080023425_loop1_75_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023426{
23427 D(p->level++);
23428 if (p->error_indicator) {
23429 D(p->level--);
23430 return NULL;
23431 }
23432 void *_res = NULL;
23433 int _mark = p->mark;
23434 int _start_mark = p->mark;
23435 void **_children = PyMem_Malloc(sizeof(void *));
23436 if (!_children) {
23437 p->error_indicator = 1;
23438 PyErr_NoMemory();
23439 D(p->level--);
23440 return NULL;
23441 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023442 Py_ssize_t _children_capacity = 1;
23443 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023444 { // param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023445 if (p->error_indicator) {
23446 D(p->level--);
23447 return NULL;
23448 }
Brandt Bucher145bf262021-02-26 14:51:55 -080023449 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 +030023450 NameDefaultPair* param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023451 while (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023452 (param_with_default_var = param_with_default_rule(p)) // param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023453 )
23454 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023455 _res = param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023456 if (_n == _children_capacity) {
23457 _children_capacity *= 2;
23458 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23459 if (!_new_children) {
23460 p->error_indicator = 1;
23461 PyErr_NoMemory();
23462 D(p->level--);
23463 return NULL;
23464 }
23465 _children = _new_children;
23466 }
23467 _children[_n++] = _res;
23468 _mark = p->mark;
23469 }
23470 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080023471 D(fprintf(stderr, "%*c%s _loop1_75[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023472 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023473 }
23474 if (_n == 0 || p->error_indicator) {
23475 PyMem_Free(_children);
23476 D(p->level--);
23477 return NULL;
23478 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023479 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023480 if (!_seq) {
23481 PyMem_Free(_children);
23482 p->error_indicator = 1;
23483 PyErr_NoMemory();
23484 D(p->level--);
23485 return NULL;
23486 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023487 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023488 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080023489 _PyPegen_insert_memo(p, _start_mark, _loop1_75_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023490 D(p->level--);
23491 return _seq;
23492}
23493
Brandt Bucher145bf262021-02-26 14:51:55 -080023494// _loop1_76: param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023495static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080023496_loop1_76_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023497{
23498 D(p->level++);
23499 if (p->error_indicator) {
23500 D(p->level--);
23501 return NULL;
23502 }
23503 void *_res = NULL;
23504 int _mark = p->mark;
23505 int _start_mark = p->mark;
23506 void **_children = PyMem_Malloc(sizeof(void *));
23507 if (!_children) {
23508 p->error_indicator = 1;
23509 PyErr_NoMemory();
23510 D(p->level--);
23511 return NULL;
23512 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023513 Py_ssize_t _children_capacity = 1;
23514 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023515 { // param_no_default
23516 if (p->error_indicator) {
23517 D(p->level--);
23518 return NULL;
23519 }
Brandt Bucher145bf262021-02-26 14:51:55 -080023520 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 +010023521 arg_ty param_no_default_var;
23522 while (
23523 (param_no_default_var = param_no_default_rule(p)) // param_no_default
23524 )
23525 {
23526 _res = param_no_default_var;
23527 if (_n == _children_capacity) {
23528 _children_capacity *= 2;
23529 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23530 if (!_new_children) {
23531 p->error_indicator = 1;
23532 PyErr_NoMemory();
23533 D(p->level--);
23534 return NULL;
23535 }
23536 _children = _new_children;
23537 }
23538 _children[_n++] = _res;
23539 _mark = p->mark;
23540 }
23541 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080023542 D(fprintf(stderr, "%*c%s _loop1_76[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023543 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
23544 }
23545 if (_n == 0 || p->error_indicator) {
23546 PyMem_Free(_children);
23547 D(p->level--);
23548 return NULL;
23549 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023550 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023551 if (!_seq) {
23552 PyMem_Free(_children);
23553 p->error_indicator = 1;
23554 PyErr_NoMemory();
23555 D(p->level--);
23556 return NULL;
23557 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023558 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023559 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080023560 _PyPegen_insert_memo(p, _start_mark, _loop1_76_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023561 D(p->level--);
23562 return _seq;
23563}
23564
Brandt Bucher145bf262021-02-26 14:51:55 -080023565// _loop1_77: param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023566static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080023567_loop1_77_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023568{
23569 D(p->level++);
23570 if (p->error_indicator) {
23571 D(p->level--);
23572 return NULL;
23573 }
23574 void *_res = NULL;
23575 int _mark = p->mark;
23576 int _start_mark = p->mark;
23577 void **_children = PyMem_Malloc(sizeof(void *));
23578 if (!_children) {
23579 p->error_indicator = 1;
23580 PyErr_NoMemory();
23581 D(p->level--);
23582 return NULL;
23583 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023584 Py_ssize_t _children_capacity = 1;
23585 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023586 { // param_no_default
23587 if (p->error_indicator) {
23588 D(p->level--);
23589 return NULL;
23590 }
Brandt Bucher145bf262021-02-26 14:51:55 -080023591 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 +010023592 arg_ty param_no_default_var;
23593 while (
23594 (param_no_default_var = param_no_default_rule(p)) // param_no_default
23595 )
23596 {
23597 _res = param_no_default_var;
23598 if (_n == _children_capacity) {
23599 _children_capacity *= 2;
23600 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23601 if (!_new_children) {
23602 p->error_indicator = 1;
23603 PyErr_NoMemory();
23604 D(p->level--);
23605 return NULL;
23606 }
23607 _children = _new_children;
23608 }
23609 _children[_n++] = _res;
23610 _mark = p->mark;
23611 }
23612 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080023613 D(fprintf(stderr, "%*c%s _loop1_77[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023614 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
23615 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023616 if (_n == 0 || p->error_indicator) {
23617 PyMem_Free(_children);
23618 D(p->level--);
23619 return NULL;
23620 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023621 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023622 if (!_seq) {
23623 PyMem_Free(_children);
23624 p->error_indicator = 1;
23625 PyErr_NoMemory();
23626 D(p->level--);
23627 return NULL;
23628 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023629 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023630 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080023631 _PyPegen_insert_memo(p, _start_mark, _loop1_77_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023632 D(p->level--);
23633 return _seq;
23634}
23635
Brandt Bucher145bf262021-02-26 14:51:55 -080023636// _loop0_78: param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023637static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080023638_loop0_78_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023639{
23640 D(p->level++);
23641 if (p->error_indicator) {
23642 D(p->level--);
23643 return NULL;
23644 }
23645 void *_res = NULL;
23646 int _mark = p->mark;
23647 int _start_mark = p->mark;
23648 void **_children = PyMem_Malloc(sizeof(void *));
23649 if (!_children) {
23650 p->error_indicator = 1;
23651 PyErr_NoMemory();
23652 D(p->level--);
23653 return NULL;
23654 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023655 Py_ssize_t _children_capacity = 1;
23656 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023657 { // param_no_default
23658 if (p->error_indicator) {
23659 D(p->level--);
23660 return NULL;
23661 }
Brandt Bucher145bf262021-02-26 14:51:55 -080023662 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 +010023663 arg_ty param_no_default_var;
23664 while (
23665 (param_no_default_var = param_no_default_rule(p)) // param_no_default
23666 )
23667 {
23668 _res = param_no_default_var;
23669 if (_n == _children_capacity) {
23670 _children_capacity *= 2;
23671 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23672 if (!_new_children) {
23673 p->error_indicator = 1;
23674 PyErr_NoMemory();
23675 D(p->level--);
23676 return NULL;
23677 }
23678 _children = _new_children;
23679 }
23680 _children[_n++] = _res;
23681 _mark = p->mark;
23682 }
23683 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080023684 D(fprintf(stderr, "%*c%s _loop0_78[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023685 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
23686 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023687 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023688 if (!_seq) {
23689 PyMem_Free(_children);
23690 p->error_indicator = 1;
23691 PyErr_NoMemory();
23692 D(p->level--);
23693 return NULL;
23694 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023695 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023696 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080023697 _PyPegen_insert_memo(p, _start_mark, _loop0_78_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023698 D(p->level--);
23699 return _seq;
23700}
23701
Brandt Bucher145bf262021-02-26 14:51:55 -080023702// _loop1_79: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023703static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080023704_loop1_79_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023705{
23706 D(p->level++);
23707 if (p->error_indicator) {
23708 D(p->level--);
23709 return NULL;
23710 }
23711 void *_res = NULL;
23712 int _mark = p->mark;
23713 int _start_mark = p->mark;
23714 void **_children = PyMem_Malloc(sizeof(void *));
23715 if (!_children) {
23716 p->error_indicator = 1;
23717 PyErr_NoMemory();
23718 D(p->level--);
23719 return NULL;
23720 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023721 Py_ssize_t _children_capacity = 1;
23722 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023723 { // param_with_default
23724 if (p->error_indicator) {
23725 D(p->level--);
23726 return NULL;
23727 }
Brandt Bucher145bf262021-02-26 14:51:55 -080023728 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 +010023729 NameDefaultPair* param_with_default_var;
23730 while (
23731 (param_with_default_var = param_with_default_rule(p)) // param_with_default
23732 )
23733 {
23734 _res = param_with_default_var;
23735 if (_n == _children_capacity) {
23736 _children_capacity *= 2;
23737 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23738 if (!_new_children) {
23739 p->error_indicator = 1;
23740 PyErr_NoMemory();
23741 D(p->level--);
23742 return NULL;
23743 }
23744 _children = _new_children;
23745 }
23746 _children[_n++] = _res;
23747 _mark = p->mark;
23748 }
23749 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080023750 D(fprintf(stderr, "%*c%s _loop1_79[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023751 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
23752 }
23753 if (_n == 0 || p->error_indicator) {
23754 PyMem_Free(_children);
23755 D(p->level--);
23756 return NULL;
23757 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023758 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023759 if (!_seq) {
23760 PyMem_Free(_children);
23761 p->error_indicator = 1;
23762 PyErr_NoMemory();
23763 D(p->level--);
23764 return NULL;
23765 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023766 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023767 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080023768 _PyPegen_insert_memo(p, _start_mark, _loop1_79_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023769 D(p->level--);
23770 return _seq;
23771}
23772
Brandt Bucher145bf262021-02-26 14:51:55 -080023773// _loop0_80: param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023774static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080023775_loop0_80_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023776{
23777 D(p->level++);
23778 if (p->error_indicator) {
23779 D(p->level--);
23780 return NULL;
23781 }
23782 void *_res = NULL;
23783 int _mark = p->mark;
23784 int _start_mark = p->mark;
23785 void **_children = PyMem_Malloc(sizeof(void *));
23786 if (!_children) {
23787 p->error_indicator = 1;
23788 PyErr_NoMemory();
23789 D(p->level--);
23790 return NULL;
23791 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023792 Py_ssize_t _children_capacity = 1;
23793 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023794 { // param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023795 if (p->error_indicator) {
23796 D(p->level--);
23797 return NULL;
23798 }
Brandt Bucher145bf262021-02-26 14:51:55 -080023799 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 +030023800 arg_ty param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023801 while (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023802 (param_no_default_var = param_no_default_rule(p)) // param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023803 )
23804 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023805 _res = param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023806 if (_n == _children_capacity) {
23807 _children_capacity *= 2;
23808 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23809 if (!_new_children) {
23810 p->error_indicator = 1;
23811 PyErr_NoMemory();
23812 D(p->level--);
23813 return NULL;
23814 }
23815 _children = _new_children;
23816 }
23817 _children[_n++] = _res;
23818 _mark = p->mark;
23819 }
23820 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080023821 D(fprintf(stderr, "%*c%s _loop0_80[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023822 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023823 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023824 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023825 if (!_seq) {
23826 PyMem_Free(_children);
23827 p->error_indicator = 1;
23828 PyErr_NoMemory();
23829 D(p->level--);
23830 return NULL;
23831 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023832 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023833 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080023834 _PyPegen_insert_memo(p, _start_mark, _loop0_80_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023835 D(p->level--);
23836 return _seq;
23837}
23838
Brandt Bucher145bf262021-02-26 14:51:55 -080023839// _loop1_81: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023840static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080023841_loop1_81_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023842{
23843 D(p->level++);
23844 if (p->error_indicator) {
23845 D(p->level--);
23846 return NULL;
23847 }
23848 void *_res = NULL;
23849 int _mark = p->mark;
23850 int _start_mark = p->mark;
23851 void **_children = PyMem_Malloc(sizeof(void *));
23852 if (!_children) {
23853 p->error_indicator = 1;
23854 PyErr_NoMemory();
23855 D(p->level--);
23856 return NULL;
23857 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023858 Py_ssize_t _children_capacity = 1;
23859 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023860 { // param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023861 if (p->error_indicator) {
23862 D(p->level--);
23863 return NULL;
23864 }
Brandt Bucher145bf262021-02-26 14:51:55 -080023865 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 +030023866 NameDefaultPair* param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023867 while (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023868 (param_with_default_var = param_with_default_rule(p)) // param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023869 )
23870 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023871 _res = param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023872 if (_n == _children_capacity) {
23873 _children_capacity *= 2;
23874 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23875 if (!_new_children) {
23876 p->error_indicator = 1;
23877 PyErr_NoMemory();
23878 D(p->level--);
23879 return NULL;
23880 }
23881 _children = _new_children;
23882 }
23883 _children[_n++] = _res;
23884 _mark = p->mark;
23885 }
23886 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080023887 D(fprintf(stderr, "%*c%s _loop1_81[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023888 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023889 }
23890 if (_n == 0 || p->error_indicator) {
23891 PyMem_Free(_children);
23892 D(p->level--);
23893 return NULL;
23894 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023895 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023896 if (!_seq) {
23897 PyMem_Free(_children);
23898 p->error_indicator = 1;
23899 PyErr_NoMemory();
23900 D(p->level--);
23901 return NULL;
23902 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023903 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023904 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080023905 _PyPegen_insert_memo(p, _start_mark, _loop1_81_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023906 D(p->level--);
23907 return _seq;
23908}
23909
Brandt Bucher145bf262021-02-26 14:51:55 -080023910// _loop0_82: param_maybe_default
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023911static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080023912_loop0_82_rule(Parser *p)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023913{
23914 D(p->level++);
23915 if (p->error_indicator) {
23916 D(p->level--);
23917 return NULL;
23918 }
23919 void *_res = NULL;
23920 int _mark = p->mark;
23921 int _start_mark = p->mark;
23922 void **_children = PyMem_Malloc(sizeof(void *));
23923 if (!_children) {
23924 p->error_indicator = 1;
23925 PyErr_NoMemory();
23926 D(p->level--);
23927 return NULL;
23928 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023929 Py_ssize_t _children_capacity = 1;
23930 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023931 { // param_maybe_default
23932 if (p->error_indicator) {
23933 D(p->level--);
23934 return NULL;
23935 }
Brandt Bucher145bf262021-02-26 14:51:55 -080023936 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 +030023937 NameDefaultPair* param_maybe_default_var;
23938 while (
23939 (param_maybe_default_var = param_maybe_default_rule(p)) // param_maybe_default
23940 )
23941 {
23942 _res = param_maybe_default_var;
23943 if (_n == _children_capacity) {
23944 _children_capacity *= 2;
23945 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23946 if (!_new_children) {
23947 p->error_indicator = 1;
23948 PyErr_NoMemory();
23949 D(p->level--);
23950 return NULL;
23951 }
23952 _children = _new_children;
23953 }
23954 _children[_n++] = _res;
23955 _mark = p->mark;
23956 }
23957 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080023958 D(fprintf(stderr, "%*c%s _loop0_82[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023959 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_maybe_default"));
23960 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023961 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023962 if (!_seq) {
23963 PyMem_Free(_children);
23964 p->error_indicator = 1;
23965 PyErr_NoMemory();
23966 D(p->level--);
23967 return NULL;
23968 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023969 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023970 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080023971 _PyPegen_insert_memo(p, _start_mark, _loop0_82_type, _seq);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023972 D(p->level--);
23973 return _seq;
23974}
23975
Brandt Bucher145bf262021-02-26 14:51:55 -080023976// _loop1_83: param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023977static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080023978_loop1_83_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023979{
23980 D(p->level++);
23981 if (p->error_indicator) {
23982 D(p->level--);
23983 return NULL;
23984 }
23985 void *_res = NULL;
23986 int _mark = p->mark;
23987 int _start_mark = p->mark;
23988 void **_children = PyMem_Malloc(sizeof(void *));
23989 if (!_children) {
23990 p->error_indicator = 1;
23991 PyErr_NoMemory();
23992 D(p->level--);
23993 return NULL;
23994 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023995 Py_ssize_t _children_capacity = 1;
23996 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023997 { // param_maybe_default
23998 if (p->error_indicator) {
23999 D(p->level--);
24000 return NULL;
24001 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024002 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 +030024003 NameDefaultPair* param_maybe_default_var;
24004 while (
24005 (param_maybe_default_var = param_maybe_default_rule(p)) // param_maybe_default
24006 )
24007 {
24008 _res = param_maybe_default_var;
24009 if (_n == _children_capacity) {
24010 _children_capacity *= 2;
24011 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24012 if (!_new_children) {
24013 p->error_indicator = 1;
24014 PyErr_NoMemory();
24015 D(p->level--);
24016 return NULL;
24017 }
24018 _children = _new_children;
24019 }
24020 _children[_n++] = _res;
24021 _mark = p->mark;
24022 }
24023 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024024 D(fprintf(stderr, "%*c%s _loop1_83[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024025 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_maybe_default"));
24026 }
24027 if (_n == 0 || p->error_indicator) {
24028 PyMem_Free(_children);
24029 D(p->level--);
24030 return NULL;
24031 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024032 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024033 if (!_seq) {
24034 PyMem_Free(_children);
24035 p->error_indicator = 1;
24036 PyErr_NoMemory();
24037 D(p->level--);
24038 return NULL;
24039 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024040 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024041 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080024042 _PyPegen_insert_memo(p, _start_mark, _loop1_83_type, _seq);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024043 D(p->level--);
24044 return _seq;
24045}
24046
Brandt Bucher145bf262021-02-26 14:51:55 -080024047// _loop1_84: ('@' named_expression NEWLINE)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024048static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080024049_loop1_84_rule(Parser *p)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024050{
24051 D(p->level++);
24052 if (p->error_indicator) {
24053 D(p->level--);
24054 return NULL;
24055 }
24056 void *_res = NULL;
24057 int _mark = p->mark;
24058 int _start_mark = p->mark;
24059 void **_children = PyMem_Malloc(sizeof(void *));
24060 if (!_children) {
24061 p->error_indicator = 1;
24062 PyErr_NoMemory();
24063 D(p->level--);
24064 return NULL;
24065 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024066 Py_ssize_t _children_capacity = 1;
24067 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024068 { // ('@' named_expression NEWLINE)
24069 if (p->error_indicator) {
24070 D(p->level--);
24071 return NULL;
24072 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024073 D(fprintf(stderr, "%*c> _loop1_84[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('@' named_expression NEWLINE)"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010024074 void *_tmp_168_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024075 while (
Pablo Galindob86ed8e2021-04-12 16:59:30 +010024076 (_tmp_168_var = _tmp_168_rule(p)) // '@' named_expression NEWLINE
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024077 )
24078 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +010024079 _res = _tmp_168_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024080 if (_n == _children_capacity) {
24081 _children_capacity *= 2;
24082 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24083 if (!_new_children) {
24084 p->error_indicator = 1;
24085 PyErr_NoMemory();
24086 D(p->level--);
24087 return NULL;
24088 }
24089 _children = _new_children;
24090 }
24091 _children[_n++] = _res;
24092 _mark = p->mark;
24093 }
24094 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024095 D(fprintf(stderr, "%*c%s _loop1_84[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024096 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('@' named_expression NEWLINE)"));
24097 }
24098 if (_n == 0 || p->error_indicator) {
24099 PyMem_Free(_children);
24100 D(p->level--);
24101 return NULL;
24102 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024103 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024104 if (!_seq) {
24105 PyMem_Free(_children);
24106 p->error_indicator = 1;
24107 PyErr_NoMemory();
24108 D(p->level--);
24109 return NULL;
24110 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024111 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024112 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080024113 _PyPegen_insert_memo(p, _start_mark, _loop1_84_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024114 D(p->level--);
24115 return _seq;
24116}
24117
Brandt Bucher145bf262021-02-26 14:51:55 -080024118// _tmp_85: '(' arguments? ')'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024119static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080024120_tmp_85_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024121{
24122 D(p->level++);
24123 if (p->error_indicator) {
24124 D(p->level--);
24125 return NULL;
24126 }
24127 void * _res = NULL;
24128 int _mark = p->mark;
24129 { // '(' arguments? ')'
24130 if (p->error_indicator) {
24131 D(p->level--);
24132 return NULL;
24133 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024134 D(fprintf(stderr, "%*c> _tmp_85[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024135 Token * _literal;
24136 Token * _literal_1;
24137 void *z;
24138 if (
24139 (_literal = _PyPegen_expect_token(p, 7)) // token='('
24140 &&
24141 (z = arguments_rule(p), 1) // arguments?
24142 &&
24143 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
24144 )
24145 {
Brandt Bucher145bf262021-02-26 14:51:55 -080024146 D(fprintf(stderr, "%*c+ _tmp_85[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024147 _res = z;
24148 if (_res == NULL && PyErr_Occurred()) {
24149 p->error_indicator = 1;
24150 D(p->level--);
24151 return NULL;
24152 }
24153 goto done;
24154 }
24155 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024156 D(fprintf(stderr, "%*c%s _tmp_85[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024157 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' arguments? ')'"));
24158 }
24159 _res = NULL;
24160 done:
24161 D(p->level--);
24162 return _res;
24163}
24164
Brandt Bucher145bf262021-02-26 14:51:55 -080024165// _loop1_86: (',' star_expression)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024166static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080024167_loop1_86_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024168{
24169 D(p->level++);
24170 if (p->error_indicator) {
24171 D(p->level--);
24172 return NULL;
24173 }
24174 void *_res = NULL;
24175 int _mark = p->mark;
24176 int _start_mark = p->mark;
24177 void **_children = PyMem_Malloc(sizeof(void *));
24178 if (!_children) {
24179 p->error_indicator = 1;
24180 PyErr_NoMemory();
24181 D(p->level--);
24182 return NULL;
24183 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024184 Py_ssize_t _children_capacity = 1;
24185 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024186 { // (',' star_expression)
24187 if (p->error_indicator) {
24188 D(p->level--);
24189 return NULL;
24190 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024191 D(fprintf(stderr, "%*c> _loop1_86[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_expression)"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010024192 void *_tmp_169_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024193 while (
Pablo Galindob86ed8e2021-04-12 16:59:30 +010024194 (_tmp_169_var = _tmp_169_rule(p)) // ',' star_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024195 )
24196 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +010024197 _res = _tmp_169_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024198 if (_n == _children_capacity) {
24199 _children_capacity *= 2;
24200 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24201 if (!_new_children) {
24202 p->error_indicator = 1;
24203 PyErr_NoMemory();
24204 D(p->level--);
24205 return NULL;
24206 }
24207 _children = _new_children;
24208 }
24209 _children[_n++] = _res;
24210 _mark = p->mark;
24211 }
24212 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024213 D(fprintf(stderr, "%*c%s _loop1_86[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024214 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' star_expression)"));
24215 }
24216 if (_n == 0 || p->error_indicator) {
24217 PyMem_Free(_children);
24218 D(p->level--);
24219 return NULL;
24220 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024221 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024222 if (!_seq) {
24223 PyMem_Free(_children);
24224 p->error_indicator = 1;
24225 PyErr_NoMemory();
24226 D(p->level--);
24227 return NULL;
24228 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024229 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024230 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080024231 _PyPegen_insert_memo(p, _start_mark, _loop1_86_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024232 D(p->level--);
24233 return _seq;
24234}
24235
Brandt Bucher145bf262021-02-26 14:51:55 -080024236// _loop0_88: ',' star_named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024237static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080024238_loop0_88_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024239{
24240 D(p->level++);
24241 if (p->error_indicator) {
24242 D(p->level--);
24243 return NULL;
24244 }
24245 void *_res = NULL;
24246 int _mark = p->mark;
24247 int _start_mark = p->mark;
24248 void **_children = PyMem_Malloc(sizeof(void *));
24249 if (!_children) {
24250 p->error_indicator = 1;
24251 PyErr_NoMemory();
24252 D(p->level--);
24253 return NULL;
24254 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024255 Py_ssize_t _children_capacity = 1;
24256 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024257 { // ',' star_named_expression
24258 if (p->error_indicator) {
24259 D(p->level--);
24260 return NULL;
24261 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024262 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 +010024263 Token * _literal;
24264 expr_ty elem;
24265 while (
24266 (_literal = _PyPegen_expect_token(p, 12)) // token=','
24267 &&
24268 (elem = star_named_expression_rule(p)) // star_named_expression
24269 )
24270 {
24271 _res = elem;
24272 if (_res == NULL && PyErr_Occurred()) {
24273 p->error_indicator = 1;
24274 PyMem_Free(_children);
24275 D(p->level--);
24276 return NULL;
24277 }
24278 if (_n == _children_capacity) {
24279 _children_capacity *= 2;
24280 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24281 if (!_new_children) {
24282 p->error_indicator = 1;
24283 PyErr_NoMemory();
24284 D(p->level--);
24285 return NULL;
24286 }
24287 _children = _new_children;
24288 }
24289 _children[_n++] = _res;
24290 _mark = p->mark;
24291 }
24292 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024293 D(fprintf(stderr, "%*c%s _loop0_88[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024294 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_named_expression"));
24295 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024296 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024297 if (!_seq) {
24298 PyMem_Free(_children);
24299 p->error_indicator = 1;
24300 PyErr_NoMemory();
24301 D(p->level--);
24302 return NULL;
24303 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024304 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024305 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080024306 _PyPegen_insert_memo(p, _start_mark, _loop0_88_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024307 D(p->level--);
24308 return _seq;
24309}
24310
Brandt Bucher145bf262021-02-26 14:51:55 -080024311// _gather_87: star_named_expression _loop0_88
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024312static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080024313_gather_87_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024314{
24315 D(p->level++);
24316 if (p->error_indicator) {
24317 D(p->level--);
24318 return NULL;
24319 }
24320 asdl_seq * _res = NULL;
24321 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024322 { // star_named_expression _loop0_88
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024323 if (p->error_indicator) {
24324 D(p->level--);
24325 return NULL;
24326 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024327 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 +010024328 expr_ty elem;
24329 asdl_seq * seq;
24330 if (
24331 (elem = star_named_expression_rule(p)) // star_named_expression
24332 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080024333 (seq = _loop0_88_rule(p)) // _loop0_88
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024334 )
24335 {
Brandt Bucher145bf262021-02-26 14:51:55 -080024336 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 +010024337 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
24338 goto done;
24339 }
24340 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024341 D(fprintf(stderr, "%*c%s _gather_87[%d-%d]: %s failed!\n", p->level, ' ',
24342 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression _loop0_88"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024343 }
24344 _res = NULL;
24345 done:
24346 D(p->level--);
24347 return _res;
24348}
24349
Brandt Bucher145bf262021-02-26 14:51:55 -080024350// _loop1_89: (',' expression)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024351static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080024352_loop1_89_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024353{
24354 D(p->level++);
24355 if (p->error_indicator) {
24356 D(p->level--);
24357 return NULL;
24358 }
24359 void *_res = NULL;
24360 int _mark = p->mark;
24361 int _start_mark = p->mark;
24362 void **_children = PyMem_Malloc(sizeof(void *));
24363 if (!_children) {
24364 p->error_indicator = 1;
24365 PyErr_NoMemory();
24366 D(p->level--);
24367 return NULL;
24368 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024369 Py_ssize_t _children_capacity = 1;
24370 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024371 { // (',' expression)
24372 if (p->error_indicator) {
24373 D(p->level--);
24374 return NULL;
24375 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024376 D(fprintf(stderr, "%*c> _loop1_89[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' expression)"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010024377 void *_tmp_170_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024378 while (
Pablo Galindob86ed8e2021-04-12 16:59:30 +010024379 (_tmp_170_var = _tmp_170_rule(p)) // ',' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024380 )
24381 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +010024382 _res = _tmp_170_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024383 if (_n == _children_capacity) {
24384 _children_capacity *= 2;
24385 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24386 if (!_new_children) {
24387 p->error_indicator = 1;
24388 PyErr_NoMemory();
24389 D(p->level--);
24390 return NULL;
24391 }
24392 _children = _new_children;
24393 }
24394 _children[_n++] = _res;
24395 _mark = p->mark;
24396 }
24397 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024398 D(fprintf(stderr, "%*c%s _loop1_89[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024399 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' expression)"));
24400 }
24401 if (_n == 0 || p->error_indicator) {
24402 PyMem_Free(_children);
24403 D(p->level--);
24404 return NULL;
24405 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024406 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024407 if (!_seq) {
24408 PyMem_Free(_children);
24409 p->error_indicator = 1;
24410 PyErr_NoMemory();
24411 D(p->level--);
24412 return NULL;
24413 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024414 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024415 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080024416 _PyPegen_insert_memo(p, _start_mark, _loop1_89_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024417 D(p->level--);
24418 return _seq;
24419}
24420
Brandt Bucher145bf262021-02-26 14:51:55 -080024421// _loop0_90: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024422static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080024423_loop0_90_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024424{
24425 D(p->level++);
24426 if (p->error_indicator) {
24427 D(p->level--);
24428 return NULL;
24429 }
24430 void *_res = NULL;
24431 int _mark = p->mark;
24432 int _start_mark = p->mark;
24433 void **_children = PyMem_Malloc(sizeof(void *));
24434 if (!_children) {
24435 p->error_indicator = 1;
24436 PyErr_NoMemory();
24437 D(p->level--);
24438 return NULL;
24439 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024440 Py_ssize_t _children_capacity = 1;
24441 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024442 { // lambda_param_no_default
24443 if (p->error_indicator) {
24444 D(p->level--);
24445 return NULL;
24446 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024447 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 +010024448 arg_ty lambda_param_no_default_var;
24449 while (
24450 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
24451 )
24452 {
24453 _res = lambda_param_no_default_var;
24454 if (_n == _children_capacity) {
24455 _children_capacity *= 2;
24456 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24457 if (!_new_children) {
24458 p->error_indicator = 1;
24459 PyErr_NoMemory();
24460 D(p->level--);
24461 return NULL;
24462 }
24463 _children = _new_children;
24464 }
24465 _children[_n++] = _res;
24466 _mark = p->mark;
24467 }
24468 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024469 D(fprintf(stderr, "%*c%s _loop0_90[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024470 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024471 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024472 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024473 if (!_seq) {
24474 PyMem_Free(_children);
24475 p->error_indicator = 1;
24476 PyErr_NoMemory();
24477 D(p->level--);
24478 return NULL;
24479 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024480 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024481 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080024482 _PyPegen_insert_memo(p, _start_mark, _loop0_90_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024483 D(p->level--);
24484 return _seq;
24485}
24486
Brandt Bucher145bf262021-02-26 14:51:55 -080024487// _loop0_91: lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024488static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080024489_loop0_91_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024490{
24491 D(p->level++);
24492 if (p->error_indicator) {
24493 D(p->level--);
24494 return NULL;
24495 }
24496 void *_res = NULL;
24497 int _mark = p->mark;
24498 int _start_mark = p->mark;
24499 void **_children = PyMem_Malloc(sizeof(void *));
24500 if (!_children) {
24501 p->error_indicator = 1;
24502 PyErr_NoMemory();
24503 D(p->level--);
24504 return NULL;
24505 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024506 Py_ssize_t _children_capacity = 1;
24507 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024508 { // lambda_param_with_default
24509 if (p->error_indicator) {
24510 D(p->level--);
24511 return NULL;
24512 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024513 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 +010024514 NameDefaultPair* lambda_param_with_default_var;
24515 while (
24516 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
24517 )
24518 {
24519 _res = lambda_param_with_default_var;
24520 if (_n == _children_capacity) {
24521 _children_capacity *= 2;
24522 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24523 if (!_new_children) {
24524 p->error_indicator = 1;
24525 PyErr_NoMemory();
24526 D(p->level--);
24527 return NULL;
24528 }
24529 _children = _new_children;
24530 }
24531 _children[_n++] = _res;
24532 _mark = p->mark;
24533 }
24534 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024535 D(fprintf(stderr, "%*c%s _loop0_91[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024536 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
24537 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024538 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024539 if (!_seq) {
24540 PyMem_Free(_children);
24541 p->error_indicator = 1;
24542 PyErr_NoMemory();
24543 D(p->level--);
24544 return NULL;
24545 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024546 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024547 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080024548 _PyPegen_insert_memo(p, _start_mark, _loop0_91_type, _seq);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024549 D(p->level--);
24550 return _seq;
24551}
24552
Brandt Bucher145bf262021-02-26 14:51:55 -080024553// _loop0_92: lambda_param_with_default
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024554static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080024555_loop0_92_rule(Parser *p)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024556{
24557 D(p->level++);
24558 if (p->error_indicator) {
24559 D(p->level--);
24560 return NULL;
24561 }
24562 void *_res = NULL;
24563 int _mark = p->mark;
24564 int _start_mark = p->mark;
24565 void **_children = PyMem_Malloc(sizeof(void *));
24566 if (!_children) {
24567 p->error_indicator = 1;
24568 PyErr_NoMemory();
24569 D(p->level--);
24570 return NULL;
24571 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024572 Py_ssize_t _children_capacity = 1;
24573 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024574 { // lambda_param_with_default
24575 if (p->error_indicator) {
24576 D(p->level--);
24577 return NULL;
24578 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024579 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 +000024580 NameDefaultPair* lambda_param_with_default_var;
24581 while (
24582 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
24583 )
24584 {
24585 _res = lambda_param_with_default_var;
24586 if (_n == _children_capacity) {
24587 _children_capacity *= 2;
24588 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24589 if (!_new_children) {
24590 p->error_indicator = 1;
24591 PyErr_NoMemory();
24592 D(p->level--);
24593 return NULL;
24594 }
24595 _children = _new_children;
24596 }
24597 _children[_n++] = _res;
24598 _mark = p->mark;
24599 }
24600 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024601 D(fprintf(stderr, "%*c%s _loop0_92[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024602 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
24603 }
24604 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
24605 if (!_seq) {
24606 PyMem_Free(_children);
24607 p->error_indicator = 1;
24608 PyErr_NoMemory();
24609 D(p->level--);
24610 return NULL;
24611 }
24612 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
24613 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080024614 _PyPegen_insert_memo(p, _start_mark, _loop0_92_type, _seq);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024615 D(p->level--);
24616 return _seq;
24617}
24618
Brandt Bucher145bf262021-02-26 14:51:55 -080024619// _loop1_93: lambda_param_no_default
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024620static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080024621_loop1_93_rule(Parser *p)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024622{
24623 D(p->level++);
24624 if (p->error_indicator) {
24625 D(p->level--);
24626 return NULL;
24627 }
24628 void *_res = NULL;
24629 int _mark = p->mark;
24630 int _start_mark = p->mark;
24631 void **_children = PyMem_Malloc(sizeof(void *));
24632 if (!_children) {
24633 p->error_indicator = 1;
24634 PyErr_NoMemory();
24635 D(p->level--);
24636 return NULL;
24637 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024638 Py_ssize_t _children_capacity = 1;
24639 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024640 { // lambda_param_no_default
24641 if (p->error_indicator) {
24642 D(p->level--);
24643 return NULL;
24644 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024645 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 +000024646 arg_ty lambda_param_no_default_var;
24647 while (
24648 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
24649 )
24650 {
24651 _res = lambda_param_no_default_var;
24652 if (_n == _children_capacity) {
24653 _children_capacity *= 2;
24654 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24655 if (!_new_children) {
24656 p->error_indicator = 1;
24657 PyErr_NoMemory();
24658 D(p->level--);
24659 return NULL;
24660 }
24661 _children = _new_children;
24662 }
24663 _children[_n++] = _res;
24664 _mark = p->mark;
24665 }
24666 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024667 D(fprintf(stderr, "%*c%s _loop1_93[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024668 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
24669 }
24670 if (_n == 0 || p->error_indicator) {
24671 PyMem_Free(_children);
24672 D(p->level--);
24673 return NULL;
24674 }
24675 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
24676 if (!_seq) {
24677 PyMem_Free(_children);
24678 p->error_indicator = 1;
24679 PyErr_NoMemory();
24680 D(p->level--);
24681 return NULL;
24682 }
24683 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
24684 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080024685 _PyPegen_insert_memo(p, _start_mark, _loop1_93_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024686 D(p->level--);
24687 return _seq;
24688}
24689
Brandt Bucher145bf262021-02-26 14:51:55 -080024690// _loop0_94: lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024691static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080024692_loop0_94_rule(Parser *p)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024693{
24694 D(p->level++);
24695 if (p->error_indicator) {
24696 D(p->level--);
24697 return NULL;
24698 }
24699 void *_res = NULL;
24700 int _mark = p->mark;
24701 int _start_mark = p->mark;
24702 void **_children = PyMem_Malloc(sizeof(void *));
24703 if (!_children) {
24704 p->error_indicator = 1;
24705 PyErr_NoMemory();
24706 D(p->level--);
24707 return NULL;
24708 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024709 Py_ssize_t _children_capacity = 1;
24710 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024711 { // lambda_param_with_default
24712 if (p->error_indicator) {
24713 D(p->level--);
24714 return NULL;
24715 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024716 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 +030024717 NameDefaultPair* lambda_param_with_default_var;
24718 while (
24719 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
24720 )
24721 {
24722 _res = lambda_param_with_default_var;
24723 if (_n == _children_capacity) {
24724 _children_capacity *= 2;
24725 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24726 if (!_new_children) {
24727 p->error_indicator = 1;
24728 PyErr_NoMemory();
24729 D(p->level--);
24730 return NULL;
24731 }
24732 _children = _new_children;
24733 }
24734 _children[_n++] = _res;
24735 _mark = p->mark;
24736 }
24737 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024738 D(fprintf(stderr, "%*c%s _loop0_94[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024739 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
24740 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024741 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024742 if (!_seq) {
24743 PyMem_Free(_children);
24744 p->error_indicator = 1;
24745 PyErr_NoMemory();
24746 D(p->level--);
24747 return NULL;
24748 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024749 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024750 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080024751 _PyPegen_insert_memo(p, _start_mark, _loop0_94_type, _seq);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024752 D(p->level--);
24753 return _seq;
24754}
24755
Brandt Bucher145bf262021-02-26 14:51:55 -080024756// _loop1_95: lambda_param_with_default
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024757static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080024758_loop1_95_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024759{
24760 D(p->level++);
24761 if (p->error_indicator) {
24762 D(p->level--);
24763 return NULL;
24764 }
24765 void *_res = NULL;
24766 int _mark = p->mark;
24767 int _start_mark = p->mark;
24768 void **_children = PyMem_Malloc(sizeof(void *));
24769 if (!_children) {
24770 p->error_indicator = 1;
24771 PyErr_NoMemory();
24772 D(p->level--);
24773 return NULL;
24774 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024775 Py_ssize_t _children_capacity = 1;
24776 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024777 { // lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024778 if (p->error_indicator) {
24779 D(p->level--);
24780 return NULL;
24781 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024782 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 +000024783 NameDefaultPair* lambda_param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024784 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024785 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024786 )
24787 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024788 _res = lambda_param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024789 if (_n == _children_capacity) {
24790 _children_capacity *= 2;
24791 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24792 if (!_new_children) {
24793 p->error_indicator = 1;
24794 PyErr_NoMemory();
24795 D(p->level--);
24796 return NULL;
24797 }
24798 _children = _new_children;
24799 }
24800 _children[_n++] = _res;
24801 _mark = p->mark;
24802 }
24803 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024804 D(fprintf(stderr, "%*c%s _loop1_95[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024805 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024806 }
24807 if (_n == 0 || p->error_indicator) {
24808 PyMem_Free(_children);
24809 D(p->level--);
24810 return NULL;
24811 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024812 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024813 if (!_seq) {
24814 PyMem_Free(_children);
24815 p->error_indicator = 1;
24816 PyErr_NoMemory();
24817 D(p->level--);
24818 return NULL;
24819 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024820 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024821 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080024822 _PyPegen_insert_memo(p, _start_mark, _loop1_95_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024823 D(p->level--);
24824 return _seq;
24825}
24826
Brandt Bucher145bf262021-02-26 14:51:55 -080024827// _loop1_96: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024828static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080024829_loop1_96_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024830{
24831 D(p->level++);
24832 if (p->error_indicator) {
24833 D(p->level--);
24834 return NULL;
24835 }
24836 void *_res = NULL;
24837 int _mark = p->mark;
24838 int _start_mark = p->mark;
24839 void **_children = PyMem_Malloc(sizeof(void *));
24840 if (!_children) {
24841 p->error_indicator = 1;
24842 PyErr_NoMemory();
24843 D(p->level--);
24844 return NULL;
24845 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024846 Py_ssize_t _children_capacity = 1;
24847 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024848 { // lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024849 if (p->error_indicator) {
24850 D(p->level--);
24851 return NULL;
24852 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024853 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 +000024854 arg_ty lambda_param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024855 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024856 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024857 )
24858 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024859 _res = lambda_param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024860 if (_n == _children_capacity) {
24861 _children_capacity *= 2;
24862 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24863 if (!_new_children) {
24864 p->error_indicator = 1;
24865 PyErr_NoMemory();
24866 D(p->level--);
24867 return NULL;
24868 }
24869 _children = _new_children;
24870 }
24871 _children[_n++] = _res;
24872 _mark = p->mark;
24873 }
24874 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024875 D(fprintf(stderr, "%*c%s _loop1_96[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024876 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
24877 }
24878 if (_n == 0 || p->error_indicator) {
24879 PyMem_Free(_children);
24880 D(p->level--);
24881 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024882 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024883 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024884 if (!_seq) {
24885 PyMem_Free(_children);
24886 p->error_indicator = 1;
24887 PyErr_NoMemory();
24888 D(p->level--);
24889 return NULL;
24890 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024891 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024892 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080024893 _PyPegen_insert_memo(p, _start_mark, _loop1_96_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024894 D(p->level--);
24895 return _seq;
24896}
24897
Brandt Bucher145bf262021-02-26 14:51:55 -080024898// _loop1_97: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024899static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080024900_loop1_97_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024901{
24902 D(p->level++);
24903 if (p->error_indicator) {
24904 D(p->level--);
24905 return NULL;
24906 }
24907 void *_res = NULL;
24908 int _mark = p->mark;
24909 int _start_mark = p->mark;
24910 void **_children = PyMem_Malloc(sizeof(void *));
24911 if (!_children) {
24912 p->error_indicator = 1;
24913 PyErr_NoMemory();
24914 D(p->level--);
24915 return NULL;
24916 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024917 Py_ssize_t _children_capacity = 1;
24918 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024919 { // lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024920 if (p->error_indicator) {
24921 D(p->level--);
24922 return NULL;
24923 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024924 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 +000024925 arg_ty lambda_param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024926 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024927 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024928 )
24929 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024930 _res = lambda_param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024931 if (_n == _children_capacity) {
24932 _children_capacity *= 2;
24933 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24934 if (!_new_children) {
24935 p->error_indicator = 1;
24936 PyErr_NoMemory();
24937 D(p->level--);
24938 return NULL;
24939 }
24940 _children = _new_children;
24941 }
24942 _children[_n++] = _res;
24943 _mark = p->mark;
24944 }
24945 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024946 D(fprintf(stderr, "%*c%s _loop1_97[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024947 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024948 }
24949 if (_n == 0 || p->error_indicator) {
24950 PyMem_Free(_children);
24951 D(p->level--);
24952 return NULL;
24953 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024954 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024955 if (!_seq) {
24956 PyMem_Free(_children);
24957 p->error_indicator = 1;
24958 PyErr_NoMemory();
24959 D(p->level--);
24960 return NULL;
24961 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024962 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024963 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080024964 _PyPegen_insert_memo(p, _start_mark, _loop1_97_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024965 D(p->level--);
24966 return _seq;
24967}
24968
Brandt Bucher145bf262021-02-26 14:51:55 -080024969// _loop0_98: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024970static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080024971_loop0_98_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024972{
24973 D(p->level++);
24974 if (p->error_indicator) {
24975 D(p->level--);
24976 return NULL;
24977 }
24978 void *_res = NULL;
24979 int _mark = p->mark;
24980 int _start_mark = p->mark;
24981 void **_children = PyMem_Malloc(sizeof(void *));
24982 if (!_children) {
24983 p->error_indicator = 1;
24984 PyErr_NoMemory();
24985 D(p->level--);
24986 return NULL;
24987 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024988 Py_ssize_t _children_capacity = 1;
24989 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024990 { // lambda_param_no_default
24991 if (p->error_indicator) {
24992 D(p->level--);
24993 return NULL;
24994 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024995 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 +010024996 arg_ty lambda_param_no_default_var;
24997 while (
24998 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
24999 )
25000 {
25001 _res = lambda_param_no_default_var;
25002 if (_n == _children_capacity) {
25003 _children_capacity *= 2;
25004 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25005 if (!_new_children) {
25006 p->error_indicator = 1;
25007 PyErr_NoMemory();
25008 D(p->level--);
25009 return NULL;
25010 }
25011 _children = _new_children;
25012 }
25013 _children[_n++] = _res;
25014 _mark = p->mark;
25015 }
25016 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025017 D(fprintf(stderr, "%*c%s _loop0_98[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025018 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
25019 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025020 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025021 if (!_seq) {
25022 PyMem_Free(_children);
25023 p->error_indicator = 1;
25024 PyErr_NoMemory();
25025 D(p->level--);
25026 return NULL;
25027 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025028 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025029 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025030 _PyPegen_insert_memo(p, _start_mark, _loop0_98_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025031 D(p->level--);
25032 return _seq;
25033}
25034
Brandt Bucher145bf262021-02-26 14:51:55 -080025035// _loop1_99: lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025036static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025037_loop1_99_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025038{
25039 D(p->level++);
25040 if (p->error_indicator) {
25041 D(p->level--);
25042 return NULL;
25043 }
25044 void *_res = NULL;
25045 int _mark = p->mark;
25046 int _start_mark = p->mark;
25047 void **_children = PyMem_Malloc(sizeof(void *));
25048 if (!_children) {
25049 p->error_indicator = 1;
25050 PyErr_NoMemory();
25051 D(p->level--);
25052 return NULL;
25053 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025054 Py_ssize_t _children_capacity = 1;
25055 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000025056 { // lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025057 if (p->error_indicator) {
25058 D(p->level--);
25059 return NULL;
25060 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025061 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 +000025062 NameDefaultPair* lambda_param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025063 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000025064 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025065 )
25066 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000025067 _res = lambda_param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025068 if (_n == _children_capacity) {
25069 _children_capacity *= 2;
25070 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25071 if (!_new_children) {
25072 p->error_indicator = 1;
25073 PyErr_NoMemory();
25074 D(p->level--);
25075 return NULL;
25076 }
25077 _children = _new_children;
25078 }
25079 _children[_n++] = _res;
25080 _mark = p->mark;
25081 }
25082 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025083 D(fprintf(stderr, "%*c%s _loop1_99[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000025084 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025085 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025086 if (_n == 0 || p->error_indicator) {
25087 PyMem_Free(_children);
25088 D(p->level--);
25089 return NULL;
25090 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025091 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025092 if (!_seq) {
25093 PyMem_Free(_children);
25094 p->error_indicator = 1;
25095 PyErr_NoMemory();
25096 D(p->level--);
25097 return NULL;
25098 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025099 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025100 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025101 _PyPegen_insert_memo(p, _start_mark, _loop1_99_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025102 D(p->level--);
25103 return _seq;
25104}
25105
Brandt Bucher145bf262021-02-26 14:51:55 -080025106// _loop0_100: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025107static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025108_loop0_100_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025109{
25110 D(p->level++);
25111 if (p->error_indicator) {
25112 D(p->level--);
25113 return NULL;
25114 }
25115 void *_res = NULL;
25116 int _mark = p->mark;
25117 int _start_mark = p->mark;
25118 void **_children = PyMem_Malloc(sizeof(void *));
25119 if (!_children) {
25120 p->error_indicator = 1;
25121 PyErr_NoMemory();
25122 D(p->level--);
25123 return NULL;
25124 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025125 Py_ssize_t _children_capacity = 1;
25126 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025127 { // lambda_param_no_default
25128 if (p->error_indicator) {
25129 D(p->level--);
25130 return NULL;
25131 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025132 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 +010025133 arg_ty lambda_param_no_default_var;
25134 while (
25135 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
25136 )
25137 {
25138 _res = lambda_param_no_default_var;
25139 if (_n == _children_capacity) {
25140 _children_capacity *= 2;
25141 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25142 if (!_new_children) {
25143 p->error_indicator = 1;
25144 PyErr_NoMemory();
25145 D(p->level--);
25146 return NULL;
25147 }
25148 _children = _new_children;
25149 }
25150 _children[_n++] = _res;
25151 _mark = p->mark;
25152 }
25153 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025154 D(fprintf(stderr, "%*c%s _loop0_100[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025155 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
25156 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025157 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025158 if (!_seq) {
25159 PyMem_Free(_children);
25160 p->error_indicator = 1;
25161 PyErr_NoMemory();
25162 D(p->level--);
25163 return NULL;
25164 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025165 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025166 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025167 _PyPegen_insert_memo(p, _start_mark, _loop0_100_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025168 D(p->level--);
25169 return _seq;
25170}
25171
Brandt Bucher145bf262021-02-26 14:51:55 -080025172// _loop1_101: lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025173static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025174_loop1_101_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025175{
25176 D(p->level++);
25177 if (p->error_indicator) {
25178 D(p->level--);
25179 return NULL;
25180 }
25181 void *_res = NULL;
25182 int _mark = p->mark;
25183 int _start_mark = p->mark;
25184 void **_children = PyMem_Malloc(sizeof(void *));
25185 if (!_children) {
25186 p->error_indicator = 1;
25187 PyErr_NoMemory();
25188 D(p->level--);
25189 return NULL;
25190 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025191 Py_ssize_t _children_capacity = 1;
25192 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025193 { // lambda_param_with_default
25194 if (p->error_indicator) {
25195 D(p->level--);
25196 return NULL;
25197 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025198 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 +010025199 NameDefaultPair* lambda_param_with_default_var;
25200 while (
25201 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
25202 )
25203 {
25204 _res = lambda_param_with_default_var;
25205 if (_n == _children_capacity) {
25206 _children_capacity *= 2;
25207 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25208 if (!_new_children) {
25209 p->error_indicator = 1;
25210 PyErr_NoMemory();
25211 D(p->level--);
25212 return NULL;
25213 }
25214 _children = _new_children;
25215 }
25216 _children[_n++] = _res;
25217 _mark = p->mark;
25218 }
25219 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025220 D(fprintf(stderr, "%*c%s _loop1_101[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025221 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
25222 }
25223 if (_n == 0 || p->error_indicator) {
25224 PyMem_Free(_children);
25225 D(p->level--);
25226 return NULL;
25227 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025228 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025229 if (!_seq) {
25230 PyMem_Free(_children);
25231 p->error_indicator = 1;
25232 PyErr_NoMemory();
25233 D(p->level--);
25234 return NULL;
25235 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025236 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025237 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025238 _PyPegen_insert_memo(p, _start_mark, _loop1_101_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025239 D(p->level--);
25240 return _seq;
25241}
25242
Brandt Bucher145bf262021-02-26 14:51:55 -080025243// _loop0_102: lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025244static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025245_loop0_102_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025246{
25247 D(p->level++);
25248 if (p->error_indicator) {
25249 D(p->level--);
25250 return NULL;
25251 }
25252 void *_res = NULL;
25253 int _mark = p->mark;
25254 int _start_mark = p->mark;
25255 void **_children = PyMem_Malloc(sizeof(void *));
25256 if (!_children) {
25257 p->error_indicator = 1;
25258 PyErr_NoMemory();
25259 D(p->level--);
25260 return NULL;
25261 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025262 Py_ssize_t _children_capacity = 1;
25263 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000025264 { // lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025265 if (p->error_indicator) {
25266 D(p->level--);
25267 return NULL;
25268 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025269 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 +000025270 NameDefaultPair* lambda_param_maybe_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025271 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000025272 (lambda_param_maybe_default_var = lambda_param_maybe_default_rule(p)) // lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025273 )
25274 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000025275 _res = lambda_param_maybe_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025276 if (_n == _children_capacity) {
25277 _children_capacity *= 2;
25278 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25279 if (!_new_children) {
25280 p->error_indicator = 1;
25281 PyErr_NoMemory();
25282 D(p->level--);
25283 return NULL;
25284 }
25285 _children = _new_children;
25286 }
25287 _children[_n++] = _res;
25288 _mark = p->mark;
25289 }
25290 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025291 D(fprintf(stderr, "%*c%s _loop0_102[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000025292 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_maybe_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025293 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025294 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025295 if (!_seq) {
25296 PyMem_Free(_children);
25297 p->error_indicator = 1;
25298 PyErr_NoMemory();
25299 D(p->level--);
25300 return NULL;
25301 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025302 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025303 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025304 _PyPegen_insert_memo(p, _start_mark, _loop0_102_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025305 D(p->level--);
25306 return _seq;
25307}
25308
Brandt Bucher145bf262021-02-26 14:51:55 -080025309// _loop1_103: lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025310static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025311_loop1_103_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025312{
25313 D(p->level++);
25314 if (p->error_indicator) {
25315 D(p->level--);
25316 return NULL;
25317 }
25318 void *_res = NULL;
25319 int _mark = p->mark;
25320 int _start_mark = p->mark;
25321 void **_children = PyMem_Malloc(sizeof(void *));
25322 if (!_children) {
25323 p->error_indicator = 1;
25324 PyErr_NoMemory();
25325 D(p->level--);
25326 return NULL;
25327 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025328 Py_ssize_t _children_capacity = 1;
25329 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000025330 { // lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025331 if (p->error_indicator) {
25332 D(p->level--);
25333 return NULL;
25334 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025335 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 +000025336 NameDefaultPair* lambda_param_maybe_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025337 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000025338 (lambda_param_maybe_default_var = lambda_param_maybe_default_rule(p)) // lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025339 )
25340 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000025341 _res = lambda_param_maybe_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025342 if (_n == _children_capacity) {
25343 _children_capacity *= 2;
25344 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25345 if (!_new_children) {
25346 p->error_indicator = 1;
25347 PyErr_NoMemory();
25348 D(p->level--);
25349 return NULL;
25350 }
25351 _children = _new_children;
25352 }
25353 _children[_n++] = _res;
25354 _mark = p->mark;
25355 }
25356 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025357 D(fprintf(stderr, "%*c%s _loop1_103[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000025358 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_maybe_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025359 }
25360 if (_n == 0 || p->error_indicator) {
25361 PyMem_Free(_children);
25362 D(p->level--);
25363 return NULL;
25364 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025365 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025366 if (!_seq) {
25367 PyMem_Free(_children);
25368 p->error_indicator = 1;
25369 PyErr_NoMemory();
25370 D(p->level--);
25371 return NULL;
25372 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025373 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025374 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025375 _PyPegen_insert_memo(p, _start_mark, _loop1_103_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025376 D(p->level--);
25377 return _seq;
25378}
25379
Brandt Bucher145bf262021-02-26 14:51:55 -080025380// _loop1_104: ('or' conjunction)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025381static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025382_loop1_104_rule(Parser *p)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025383{
25384 D(p->level++);
25385 if (p->error_indicator) {
25386 D(p->level--);
25387 return NULL;
25388 }
25389 void *_res = NULL;
25390 int _mark = p->mark;
25391 int _start_mark = p->mark;
25392 void **_children = PyMem_Malloc(sizeof(void *));
25393 if (!_children) {
25394 p->error_indicator = 1;
25395 PyErr_NoMemory();
25396 D(p->level--);
25397 return NULL;
25398 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025399 Py_ssize_t _children_capacity = 1;
25400 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025401 { // ('or' conjunction)
25402 if (p->error_indicator) {
25403 D(p->level--);
25404 return NULL;
25405 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025406 D(fprintf(stderr, "%*c> _loop1_104[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('or' conjunction)"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010025407 void *_tmp_171_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025408 while (
Pablo Galindob86ed8e2021-04-12 16:59:30 +010025409 (_tmp_171_var = _tmp_171_rule(p)) // 'or' conjunction
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025410 )
25411 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +010025412 _res = _tmp_171_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025413 if (_n == _children_capacity) {
25414 _children_capacity *= 2;
25415 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25416 if (!_new_children) {
25417 p->error_indicator = 1;
25418 PyErr_NoMemory();
25419 D(p->level--);
25420 return NULL;
25421 }
25422 _children = _new_children;
25423 }
25424 _children[_n++] = _res;
25425 _mark = p->mark;
25426 }
25427 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025428 D(fprintf(stderr, "%*c%s _loop1_104[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025429 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('or' conjunction)"));
25430 }
25431 if (_n == 0 || p->error_indicator) {
25432 PyMem_Free(_children);
25433 D(p->level--);
25434 return NULL;
25435 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025436 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025437 if (!_seq) {
25438 PyMem_Free(_children);
25439 p->error_indicator = 1;
25440 PyErr_NoMemory();
25441 D(p->level--);
25442 return NULL;
25443 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025444 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025445 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025446 _PyPegen_insert_memo(p, _start_mark, _loop1_104_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025447 D(p->level--);
25448 return _seq;
25449}
25450
Brandt Bucher145bf262021-02-26 14:51:55 -080025451// _loop1_105: ('and' inversion)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025452static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025453_loop1_105_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025454{
25455 D(p->level++);
25456 if (p->error_indicator) {
25457 D(p->level--);
25458 return NULL;
25459 }
25460 void *_res = NULL;
25461 int _mark = p->mark;
25462 int _start_mark = p->mark;
25463 void **_children = PyMem_Malloc(sizeof(void *));
25464 if (!_children) {
25465 p->error_indicator = 1;
25466 PyErr_NoMemory();
25467 D(p->level--);
25468 return NULL;
25469 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025470 Py_ssize_t _children_capacity = 1;
25471 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025472 { // ('and' inversion)
25473 if (p->error_indicator) {
25474 D(p->level--);
25475 return NULL;
25476 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025477 D(fprintf(stderr, "%*c> _loop1_105[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('and' inversion)"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010025478 void *_tmp_172_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025479 while (
Pablo Galindob86ed8e2021-04-12 16:59:30 +010025480 (_tmp_172_var = _tmp_172_rule(p)) // 'and' inversion
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025481 )
25482 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +010025483 _res = _tmp_172_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025484 if (_n == _children_capacity) {
25485 _children_capacity *= 2;
25486 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25487 if (!_new_children) {
25488 p->error_indicator = 1;
25489 PyErr_NoMemory();
25490 D(p->level--);
25491 return NULL;
25492 }
25493 _children = _new_children;
25494 }
25495 _children[_n++] = _res;
25496 _mark = p->mark;
25497 }
25498 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025499 D(fprintf(stderr, "%*c%s _loop1_105[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025500 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('and' inversion)"));
25501 }
25502 if (_n == 0 || p->error_indicator) {
25503 PyMem_Free(_children);
25504 D(p->level--);
25505 return NULL;
25506 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025507 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025508 if (!_seq) {
25509 PyMem_Free(_children);
25510 p->error_indicator = 1;
25511 PyErr_NoMemory();
25512 D(p->level--);
25513 return NULL;
25514 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025515 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025516 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025517 _PyPegen_insert_memo(p, _start_mark, _loop1_105_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025518 D(p->level--);
25519 return _seq;
25520}
25521
Brandt Bucher145bf262021-02-26 14:51:55 -080025522// _loop1_106: compare_op_bitwise_or_pair
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025523static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025524_loop1_106_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025525{
25526 D(p->level++);
25527 if (p->error_indicator) {
25528 D(p->level--);
25529 return NULL;
25530 }
25531 void *_res = NULL;
25532 int _mark = p->mark;
25533 int _start_mark = p->mark;
25534 void **_children = PyMem_Malloc(sizeof(void *));
25535 if (!_children) {
25536 p->error_indicator = 1;
25537 PyErr_NoMemory();
25538 D(p->level--);
25539 return NULL;
25540 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025541 Py_ssize_t _children_capacity = 1;
25542 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025543 { // compare_op_bitwise_or_pair
25544 if (p->error_indicator) {
25545 D(p->level--);
25546 return NULL;
25547 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025548 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 +010025549 CmpopExprPair* compare_op_bitwise_or_pair_var;
25550 while (
25551 (compare_op_bitwise_or_pair_var = compare_op_bitwise_or_pair_rule(p)) // compare_op_bitwise_or_pair
25552 )
25553 {
25554 _res = compare_op_bitwise_or_pair_var;
25555 if (_n == _children_capacity) {
25556 _children_capacity *= 2;
25557 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25558 if (!_new_children) {
25559 p->error_indicator = 1;
25560 PyErr_NoMemory();
25561 D(p->level--);
25562 return NULL;
25563 }
25564 _children = _new_children;
25565 }
25566 _children[_n++] = _res;
25567 _mark = p->mark;
25568 }
25569 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025570 D(fprintf(stderr, "%*c%s _loop1_106[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025571 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "compare_op_bitwise_or_pair"));
25572 }
25573 if (_n == 0 || p->error_indicator) {
25574 PyMem_Free(_children);
25575 D(p->level--);
25576 return NULL;
25577 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025578 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025579 if (!_seq) {
25580 PyMem_Free(_children);
25581 p->error_indicator = 1;
25582 PyErr_NoMemory();
25583 D(p->level--);
25584 return NULL;
25585 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025586 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025587 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025588 _PyPegen_insert_memo(p, _start_mark, _loop1_106_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025589 D(p->level--);
25590 return _seq;
25591}
25592
Brandt Bucher145bf262021-02-26 14:51:55 -080025593// _tmp_107: '!='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025594static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080025595_tmp_107_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025596{
25597 D(p->level++);
25598 if (p->error_indicator) {
25599 D(p->level--);
25600 return NULL;
25601 }
25602 void * _res = NULL;
25603 int _mark = p->mark;
25604 { // '!='
25605 if (p->error_indicator) {
25606 D(p->level--);
25607 return NULL;
25608 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025609 D(fprintf(stderr, "%*c> _tmp_107[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'!='"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025610 Token * tok;
25611 if (
25612 (tok = _PyPegen_expect_token(p, 28)) // token='!='
25613 )
25614 {
Brandt Bucher145bf262021-02-26 14:51:55 -080025615 D(fprintf(stderr, "%*c+ _tmp_107[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'!='"));
Pablo Galindo06f8c332020-10-30 23:48:42 +000025616 _res = _PyPegen_check_barry_as_flufl ( p , tok ) ? NULL : tok;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025617 if (_res == NULL && PyErr_Occurred()) {
25618 p->error_indicator = 1;
25619 D(p->level--);
25620 return NULL;
25621 }
25622 goto done;
25623 }
25624 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025625 D(fprintf(stderr, "%*c%s _tmp_107[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025626 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'!='"));
25627 }
25628 _res = NULL;
25629 done:
25630 D(p->level--);
25631 return _res;
25632}
25633
Brandt Bucher145bf262021-02-26 14:51:55 -080025634// _loop0_109: ',' slice
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025635static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025636_loop0_109_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025637{
25638 D(p->level++);
25639 if (p->error_indicator) {
25640 D(p->level--);
25641 return NULL;
25642 }
25643 void *_res = NULL;
25644 int _mark = p->mark;
25645 int _start_mark = p->mark;
25646 void **_children = PyMem_Malloc(sizeof(void *));
25647 if (!_children) {
25648 p->error_indicator = 1;
25649 PyErr_NoMemory();
25650 D(p->level--);
25651 return NULL;
25652 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025653 Py_ssize_t _children_capacity = 1;
25654 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025655 { // ',' slice
25656 if (p->error_indicator) {
25657 D(p->level--);
25658 return NULL;
25659 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025660 D(fprintf(stderr, "%*c> _loop0_109[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' slice"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025661 Token * _literal;
25662 expr_ty elem;
25663 while (
25664 (_literal = _PyPegen_expect_token(p, 12)) // token=','
25665 &&
25666 (elem = slice_rule(p)) // slice
25667 )
25668 {
25669 _res = elem;
25670 if (_res == NULL && PyErr_Occurred()) {
25671 p->error_indicator = 1;
25672 PyMem_Free(_children);
25673 D(p->level--);
25674 return NULL;
25675 }
25676 if (_n == _children_capacity) {
25677 _children_capacity *= 2;
25678 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25679 if (!_new_children) {
25680 p->error_indicator = 1;
25681 PyErr_NoMemory();
25682 D(p->level--);
25683 return NULL;
25684 }
25685 _children = _new_children;
25686 }
25687 _children[_n++] = _res;
25688 _mark = p->mark;
25689 }
25690 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025691 D(fprintf(stderr, "%*c%s _loop0_109[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025692 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' slice"));
25693 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025694 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025695 if (!_seq) {
25696 PyMem_Free(_children);
25697 p->error_indicator = 1;
25698 PyErr_NoMemory();
25699 D(p->level--);
25700 return NULL;
25701 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025702 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025703 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025704 _PyPegen_insert_memo(p, _start_mark, _loop0_109_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025705 D(p->level--);
25706 return _seq;
25707}
25708
Brandt Bucher145bf262021-02-26 14:51:55 -080025709// _gather_108: slice _loop0_109
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025710static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025711_gather_108_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025712{
25713 D(p->level++);
25714 if (p->error_indicator) {
25715 D(p->level--);
25716 return NULL;
25717 }
25718 asdl_seq * _res = NULL;
25719 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025720 { // slice _loop0_109
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025721 if (p->error_indicator) {
25722 D(p->level--);
25723 return NULL;
25724 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025725 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 +010025726 expr_ty elem;
25727 asdl_seq * seq;
25728 if (
25729 (elem = slice_rule(p)) // slice
25730 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080025731 (seq = _loop0_109_rule(p)) // _loop0_109
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025732 )
25733 {
Brandt Bucher145bf262021-02-26 14:51:55 -080025734 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 +010025735 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
25736 goto done;
25737 }
25738 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025739 D(fprintf(stderr, "%*c%s _gather_108[%d-%d]: %s failed!\n", p->level, ' ',
25740 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slice _loop0_109"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025741 }
25742 _res = NULL;
25743 done:
25744 D(p->level--);
25745 return _res;
25746}
25747
Brandt Bucher145bf262021-02-26 14:51:55 -080025748// _tmp_110: ':' expression?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025749static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080025750_tmp_110_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025751{
25752 D(p->level++);
25753 if (p->error_indicator) {
25754 D(p->level--);
25755 return NULL;
25756 }
25757 void * _res = NULL;
25758 int _mark = p->mark;
25759 { // ':' expression?
25760 if (p->error_indicator) {
25761 D(p->level--);
25762 return NULL;
25763 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025764 D(fprintf(stderr, "%*c> _tmp_110[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':' expression?"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025765 Token * _literal;
25766 void *d;
25767 if (
25768 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
25769 &&
25770 (d = expression_rule(p), 1) // expression?
25771 )
25772 {
Brandt Bucher145bf262021-02-26 14:51:55 -080025773 D(fprintf(stderr, "%*c+ _tmp_110[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':' expression?"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025774 _res = d;
25775 if (_res == NULL && PyErr_Occurred()) {
25776 p->error_indicator = 1;
25777 D(p->level--);
25778 return NULL;
25779 }
25780 goto done;
25781 }
25782 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025783 D(fprintf(stderr, "%*c%s _tmp_110[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025784 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':' expression?"));
25785 }
25786 _res = NULL;
25787 done:
25788 D(p->level--);
25789 return _res;
25790}
25791
Brandt Bucher145bf262021-02-26 14:51:55 -080025792// _tmp_111: tuple | group | genexp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025793static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080025794_tmp_111_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025795{
25796 D(p->level++);
25797 if (p->error_indicator) {
25798 D(p->level--);
25799 return NULL;
25800 }
25801 void * _res = NULL;
25802 int _mark = p->mark;
25803 { // tuple
25804 if (p->error_indicator) {
25805 D(p->level--);
25806 return NULL;
25807 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025808 D(fprintf(stderr, "%*c> _tmp_111[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "tuple"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025809 expr_ty tuple_var;
25810 if (
25811 (tuple_var = tuple_rule(p)) // tuple
25812 )
25813 {
Brandt Bucher145bf262021-02-26 14:51:55 -080025814 D(fprintf(stderr, "%*c+ _tmp_111[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "tuple"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025815 _res = tuple_var;
25816 goto done;
25817 }
25818 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025819 D(fprintf(stderr, "%*c%s _tmp_111[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025820 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "tuple"));
25821 }
25822 { // group
25823 if (p->error_indicator) {
25824 D(p->level--);
25825 return NULL;
25826 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025827 D(fprintf(stderr, "%*c> _tmp_111[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "group"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025828 expr_ty group_var;
25829 if (
25830 (group_var = group_rule(p)) // group
25831 )
25832 {
Brandt Bucher145bf262021-02-26 14:51:55 -080025833 D(fprintf(stderr, "%*c+ _tmp_111[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "group"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025834 _res = group_var;
25835 goto done;
25836 }
25837 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025838 D(fprintf(stderr, "%*c%s _tmp_111[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025839 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "group"));
25840 }
25841 { // genexp
25842 if (p->error_indicator) {
25843 D(p->level--);
25844 return NULL;
25845 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025846 D(fprintf(stderr, "%*c> _tmp_111[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "genexp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025847 expr_ty genexp_var;
25848 if (
25849 (genexp_var = genexp_rule(p)) // genexp
25850 )
25851 {
Brandt Bucher145bf262021-02-26 14:51:55 -080025852 D(fprintf(stderr, "%*c+ _tmp_111[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "genexp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025853 _res = genexp_var;
25854 goto done;
25855 }
25856 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025857 D(fprintf(stderr, "%*c%s _tmp_111[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025858 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "genexp"));
25859 }
25860 _res = NULL;
25861 done:
25862 D(p->level--);
25863 return _res;
25864}
25865
Brandt Bucher145bf262021-02-26 14:51:55 -080025866// _tmp_112: list | listcomp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025867static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080025868_tmp_112_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025869{
25870 D(p->level++);
25871 if (p->error_indicator) {
25872 D(p->level--);
25873 return NULL;
25874 }
25875 void * _res = NULL;
25876 int _mark = p->mark;
25877 { // list
25878 if (p->error_indicator) {
25879 D(p->level--);
25880 return NULL;
25881 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025882 D(fprintf(stderr, "%*c> _tmp_112[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "list"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025883 expr_ty list_var;
25884 if (
25885 (list_var = list_rule(p)) // list
25886 )
25887 {
Brandt Bucher145bf262021-02-26 14:51:55 -080025888 D(fprintf(stderr, "%*c+ _tmp_112[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "list"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025889 _res = list_var;
25890 goto done;
25891 }
25892 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025893 D(fprintf(stderr, "%*c%s _tmp_112[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025894 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "list"));
25895 }
25896 { // listcomp
25897 if (p->error_indicator) {
25898 D(p->level--);
25899 return NULL;
25900 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025901 D(fprintf(stderr, "%*c> _tmp_112[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "listcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025902 expr_ty listcomp_var;
25903 if (
25904 (listcomp_var = listcomp_rule(p)) // listcomp
25905 )
25906 {
Brandt Bucher145bf262021-02-26 14:51:55 -080025907 D(fprintf(stderr, "%*c+ _tmp_112[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "listcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025908 _res = listcomp_var;
25909 goto done;
25910 }
25911 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025912 D(fprintf(stderr, "%*c%s _tmp_112[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025913 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "listcomp"));
25914 }
25915 _res = NULL;
25916 done:
25917 D(p->level--);
25918 return _res;
25919}
25920
Brandt Bucher145bf262021-02-26 14:51:55 -080025921// _tmp_113: dict | set | dictcomp | setcomp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025922static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080025923_tmp_113_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025924{
25925 D(p->level++);
25926 if (p->error_indicator) {
25927 D(p->level--);
25928 return NULL;
25929 }
25930 void * _res = NULL;
25931 int _mark = p->mark;
25932 { // dict
25933 if (p->error_indicator) {
25934 D(p->level--);
25935 return NULL;
25936 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025937 D(fprintf(stderr, "%*c> _tmp_113[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dict"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025938 expr_ty dict_var;
25939 if (
25940 (dict_var = dict_rule(p)) // dict
25941 )
25942 {
Brandt Bucher145bf262021-02-26 14:51:55 -080025943 D(fprintf(stderr, "%*c+ _tmp_113[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dict"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025944 _res = dict_var;
25945 goto done;
25946 }
25947 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025948 D(fprintf(stderr, "%*c%s _tmp_113[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025949 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dict"));
25950 }
25951 { // set
25952 if (p->error_indicator) {
25953 D(p->level--);
25954 return NULL;
25955 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025956 D(fprintf(stderr, "%*c> _tmp_113[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "set"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025957 expr_ty set_var;
25958 if (
25959 (set_var = set_rule(p)) // set
25960 )
25961 {
Brandt Bucher145bf262021-02-26 14:51:55 -080025962 D(fprintf(stderr, "%*c+ _tmp_113[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "set"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025963 _res = set_var;
25964 goto done;
25965 }
25966 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025967 D(fprintf(stderr, "%*c%s _tmp_113[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025968 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "set"));
25969 }
25970 { // dictcomp
25971 if (p->error_indicator) {
25972 D(p->level--);
25973 return NULL;
25974 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025975 D(fprintf(stderr, "%*c> _tmp_113[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dictcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025976 expr_ty dictcomp_var;
25977 if (
25978 (dictcomp_var = dictcomp_rule(p)) // dictcomp
25979 )
25980 {
Brandt Bucher145bf262021-02-26 14:51:55 -080025981 D(fprintf(stderr, "%*c+ _tmp_113[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dictcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025982 _res = dictcomp_var;
25983 goto done;
25984 }
25985 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025986 D(fprintf(stderr, "%*c%s _tmp_113[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025987 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dictcomp"));
25988 }
25989 { // setcomp
25990 if (p->error_indicator) {
25991 D(p->level--);
25992 return NULL;
25993 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025994 D(fprintf(stderr, "%*c> _tmp_113[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "setcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025995 expr_ty setcomp_var;
25996 if (
25997 (setcomp_var = setcomp_rule(p)) // setcomp
25998 )
25999 {
Brandt Bucher145bf262021-02-26 14:51:55 -080026000 D(fprintf(stderr, "%*c+ _tmp_113[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "setcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026001 _res = setcomp_var;
26002 goto done;
26003 }
26004 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026005 D(fprintf(stderr, "%*c%s _tmp_113[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026006 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "setcomp"));
26007 }
26008 _res = NULL;
26009 done:
26010 D(p->level--);
26011 return _res;
26012}
26013
Brandt Bucher145bf262021-02-26 14:51:55 -080026014// _loop1_114: STRING
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026015static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026016_loop1_114_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026017{
26018 D(p->level++);
26019 if (p->error_indicator) {
26020 D(p->level--);
26021 return NULL;
26022 }
26023 void *_res = NULL;
26024 int _mark = p->mark;
26025 int _start_mark = p->mark;
26026 void **_children = PyMem_Malloc(sizeof(void *));
26027 if (!_children) {
26028 p->error_indicator = 1;
26029 PyErr_NoMemory();
26030 D(p->level--);
26031 return NULL;
26032 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026033 Py_ssize_t _children_capacity = 1;
26034 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026035 { // STRING
26036 if (p->error_indicator) {
26037 D(p->level--);
26038 return NULL;
26039 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026040 D(fprintf(stderr, "%*c> _loop1_114[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "STRING"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026041 expr_ty string_var;
26042 while (
26043 (string_var = _PyPegen_string_token(p)) // STRING
26044 )
26045 {
26046 _res = string_var;
26047 if (_n == _children_capacity) {
26048 _children_capacity *= 2;
26049 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26050 if (!_new_children) {
26051 p->error_indicator = 1;
26052 PyErr_NoMemory();
26053 D(p->level--);
26054 return NULL;
26055 }
26056 _children = _new_children;
26057 }
26058 _children[_n++] = _res;
26059 _mark = p->mark;
26060 }
26061 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026062 D(fprintf(stderr, "%*c%s _loop1_114[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026063 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "STRING"));
26064 }
26065 if (_n == 0 || p->error_indicator) {
26066 PyMem_Free(_children);
26067 D(p->level--);
26068 return NULL;
26069 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026070 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026071 if (!_seq) {
26072 PyMem_Free(_children);
26073 p->error_indicator = 1;
26074 PyErr_NoMemory();
26075 D(p->level--);
26076 return NULL;
26077 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026078 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026079 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026080 _PyPegen_insert_memo(p, _start_mark, _loop1_114_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026081 D(p->level--);
26082 return _seq;
26083}
26084
Brandt Bucher145bf262021-02-26 14:51:55 -080026085// _tmp_115: star_named_expression ',' star_named_expressions?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026086static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080026087_tmp_115_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026088{
26089 D(p->level++);
26090 if (p->error_indicator) {
26091 D(p->level--);
26092 return NULL;
26093 }
26094 void * _res = NULL;
26095 int _mark = p->mark;
26096 { // star_named_expression ',' star_named_expressions?
26097 if (p->error_indicator) {
26098 D(p->level--);
26099 return NULL;
26100 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026101 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 +010026102 Token * _literal;
26103 expr_ty y;
26104 void *z;
26105 if (
26106 (y = star_named_expression_rule(p)) // star_named_expression
26107 &&
26108 (_literal = _PyPegen_expect_token(p, 12)) // token=','
26109 &&
26110 (z = star_named_expressions_rule(p), 1) // star_named_expressions?
26111 )
26112 {
Brandt Bucher145bf262021-02-26 14:51:55 -080026113 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 +010026114 _res = _PyPegen_seq_insert_in_front ( p , y , z );
26115 if (_res == NULL && PyErr_Occurred()) {
26116 p->error_indicator = 1;
26117 D(p->level--);
26118 return NULL;
26119 }
26120 goto done;
26121 }
26122 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026123 D(fprintf(stderr, "%*c%s _tmp_115[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026124 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression ',' star_named_expressions?"));
26125 }
26126 _res = NULL;
26127 done:
26128 D(p->level--);
26129 return _res;
26130}
26131
Brandt Bucher145bf262021-02-26 14:51:55 -080026132// _tmp_116: yield_expr | named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026133static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080026134_tmp_116_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026135{
26136 D(p->level++);
26137 if (p->error_indicator) {
26138 D(p->level--);
26139 return NULL;
26140 }
26141 void * _res = NULL;
26142 int _mark = p->mark;
26143 { // yield_expr
26144 if (p->error_indicator) {
26145 D(p->level--);
26146 return NULL;
26147 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026148 D(fprintf(stderr, "%*c> _tmp_116[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026149 expr_ty yield_expr_var;
26150 if (
26151 (yield_expr_var = yield_expr_rule(p)) // yield_expr
26152 )
26153 {
Brandt Bucher145bf262021-02-26 14:51:55 -080026154 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 +010026155 _res = yield_expr_var;
26156 goto done;
26157 }
26158 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026159 D(fprintf(stderr, "%*c%s _tmp_116[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026160 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
26161 }
26162 { // named_expression
26163 if (p->error_indicator) {
26164 D(p->level--);
26165 return NULL;
26166 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026167 D(fprintf(stderr, "%*c> _tmp_116[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026168 expr_ty named_expression_var;
26169 if (
26170 (named_expression_var = named_expression_rule(p)) // named_expression
26171 )
26172 {
Brandt Bucher145bf262021-02-26 14:51:55 -080026173 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 +010026174 _res = named_expression_var;
26175 goto done;
26176 }
26177 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026178 D(fprintf(stderr, "%*c%s _tmp_116[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026179 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression"));
26180 }
26181 _res = NULL;
26182 done:
26183 D(p->level--);
26184 return _res;
26185}
26186
Brandt Bucher145bf262021-02-26 14:51:55 -080026187// _loop0_118: ',' double_starred_kvpair
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026188static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026189_loop0_118_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026190{
26191 D(p->level++);
26192 if (p->error_indicator) {
26193 D(p->level--);
26194 return NULL;
26195 }
26196 void *_res = NULL;
26197 int _mark = p->mark;
26198 int _start_mark = p->mark;
26199 void **_children = PyMem_Malloc(sizeof(void *));
26200 if (!_children) {
26201 p->error_indicator = 1;
26202 PyErr_NoMemory();
26203 D(p->level--);
26204 return NULL;
26205 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026206 Py_ssize_t _children_capacity = 1;
26207 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026208 { // ',' double_starred_kvpair
26209 if (p->error_indicator) {
26210 D(p->level--);
26211 return NULL;
26212 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026213 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 +010026214 Token * _literal;
26215 KeyValuePair* elem;
26216 while (
26217 (_literal = _PyPegen_expect_token(p, 12)) // token=','
26218 &&
26219 (elem = double_starred_kvpair_rule(p)) // double_starred_kvpair
26220 )
26221 {
26222 _res = elem;
26223 if (_res == NULL && PyErr_Occurred()) {
26224 p->error_indicator = 1;
26225 PyMem_Free(_children);
26226 D(p->level--);
26227 return NULL;
26228 }
26229 if (_n == _children_capacity) {
26230 _children_capacity *= 2;
26231 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26232 if (!_new_children) {
26233 p->error_indicator = 1;
26234 PyErr_NoMemory();
26235 D(p->level--);
26236 return NULL;
26237 }
26238 _children = _new_children;
26239 }
26240 _children[_n++] = _res;
26241 _mark = p->mark;
26242 }
26243 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026244 D(fprintf(stderr, "%*c%s _loop0_118[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026245 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' double_starred_kvpair"));
26246 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026247 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026248 if (!_seq) {
26249 PyMem_Free(_children);
26250 p->error_indicator = 1;
26251 PyErr_NoMemory();
26252 D(p->level--);
26253 return NULL;
26254 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026255 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026256 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026257 _PyPegen_insert_memo(p, _start_mark, _loop0_118_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026258 D(p->level--);
26259 return _seq;
26260}
26261
Brandt Bucher145bf262021-02-26 14:51:55 -080026262// _gather_117: double_starred_kvpair _loop0_118
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026263static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026264_gather_117_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026265{
26266 D(p->level++);
26267 if (p->error_indicator) {
26268 D(p->level--);
26269 return NULL;
26270 }
26271 asdl_seq * _res = NULL;
26272 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026273 { // double_starred_kvpair _loop0_118
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026274 if (p->error_indicator) {
26275 D(p->level--);
26276 return NULL;
26277 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026278 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 +010026279 KeyValuePair* elem;
26280 asdl_seq * seq;
26281 if (
26282 (elem = double_starred_kvpair_rule(p)) // double_starred_kvpair
26283 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080026284 (seq = _loop0_118_rule(p)) // _loop0_118
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026285 )
26286 {
Brandt Bucher145bf262021-02-26 14:51:55 -080026287 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 +010026288 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
26289 goto done;
26290 }
26291 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026292 D(fprintf(stderr, "%*c%s _gather_117[%d-%d]: %s failed!\n", p->level, ' ',
26293 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "double_starred_kvpair _loop0_118"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026294 }
26295 _res = NULL;
26296 done:
26297 D(p->level--);
26298 return _res;
26299}
26300
Brandt Bucher145bf262021-02-26 14:51:55 -080026301// _loop1_119: for_if_clause
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026302static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026303_loop1_119_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026304{
26305 D(p->level++);
26306 if (p->error_indicator) {
26307 D(p->level--);
26308 return NULL;
26309 }
26310 void *_res = NULL;
26311 int _mark = p->mark;
26312 int _start_mark = p->mark;
26313 void **_children = PyMem_Malloc(sizeof(void *));
26314 if (!_children) {
26315 p->error_indicator = 1;
26316 PyErr_NoMemory();
26317 D(p->level--);
26318 return NULL;
26319 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026320 Py_ssize_t _children_capacity = 1;
26321 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026322 { // for_if_clause
26323 if (p->error_indicator) {
26324 D(p->level--);
26325 return NULL;
26326 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026327 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 +010026328 comprehension_ty for_if_clause_var;
26329 while (
26330 (for_if_clause_var = for_if_clause_rule(p)) // for_if_clause
26331 )
26332 {
26333 _res = for_if_clause_var;
26334 if (_n == _children_capacity) {
26335 _children_capacity *= 2;
26336 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26337 if (!_new_children) {
26338 p->error_indicator = 1;
26339 PyErr_NoMemory();
26340 D(p->level--);
26341 return NULL;
26342 }
26343 _children = _new_children;
26344 }
26345 _children[_n++] = _res;
26346 _mark = p->mark;
26347 }
26348 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026349 D(fprintf(stderr, "%*c%s _loop1_119[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026350 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "for_if_clause"));
26351 }
26352 if (_n == 0 || p->error_indicator) {
26353 PyMem_Free(_children);
26354 D(p->level--);
26355 return NULL;
26356 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026357 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026358 if (!_seq) {
26359 PyMem_Free(_children);
26360 p->error_indicator = 1;
26361 PyErr_NoMemory();
26362 D(p->level--);
26363 return NULL;
26364 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026365 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026366 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026367 _PyPegen_insert_memo(p, _start_mark, _loop1_119_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026368 D(p->level--);
26369 return _seq;
26370}
26371
Brandt Bucher145bf262021-02-26 14:51:55 -080026372// _loop0_120: ('if' disjunction)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026373static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026374_loop0_120_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026375{
26376 D(p->level++);
26377 if (p->error_indicator) {
26378 D(p->level--);
26379 return NULL;
26380 }
26381 void *_res = NULL;
26382 int _mark = p->mark;
26383 int _start_mark = p->mark;
26384 void **_children = PyMem_Malloc(sizeof(void *));
26385 if (!_children) {
26386 p->error_indicator = 1;
26387 PyErr_NoMemory();
26388 D(p->level--);
26389 return NULL;
26390 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026391 Py_ssize_t _children_capacity = 1;
26392 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026393 { // ('if' disjunction)
26394 if (p->error_indicator) {
26395 D(p->level--);
26396 return NULL;
26397 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026398 D(fprintf(stderr, "%*c> _loop0_120[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('if' disjunction)"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010026399 void *_tmp_173_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026400 while (
Pablo Galindob86ed8e2021-04-12 16:59:30 +010026401 (_tmp_173_var = _tmp_173_rule(p)) // 'if' disjunction
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026402 )
26403 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +010026404 _res = _tmp_173_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026405 if (_n == _children_capacity) {
26406 _children_capacity *= 2;
26407 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26408 if (!_new_children) {
26409 p->error_indicator = 1;
26410 PyErr_NoMemory();
26411 D(p->level--);
26412 return NULL;
26413 }
26414 _children = _new_children;
26415 }
26416 _children[_n++] = _res;
26417 _mark = p->mark;
26418 }
26419 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026420 D(fprintf(stderr, "%*c%s _loop0_120[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026421 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('if' disjunction)"));
26422 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026423 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026424 if (!_seq) {
26425 PyMem_Free(_children);
26426 p->error_indicator = 1;
26427 PyErr_NoMemory();
26428 D(p->level--);
26429 return NULL;
26430 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026431 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026432 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026433 _PyPegen_insert_memo(p, _start_mark, _loop0_120_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026434 D(p->level--);
26435 return _seq;
26436}
26437
Brandt Bucher145bf262021-02-26 14:51:55 -080026438// _loop0_121: ('if' disjunction)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026439static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026440_loop0_121_rule(Parser *p)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026441{
26442 D(p->level++);
26443 if (p->error_indicator) {
26444 D(p->level--);
26445 return NULL;
26446 }
26447 void *_res = NULL;
26448 int _mark = p->mark;
26449 int _start_mark = p->mark;
26450 void **_children = PyMem_Malloc(sizeof(void *));
26451 if (!_children) {
26452 p->error_indicator = 1;
26453 PyErr_NoMemory();
26454 D(p->level--);
26455 return NULL;
26456 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026457 Py_ssize_t _children_capacity = 1;
26458 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026459 { // ('if' disjunction)
26460 if (p->error_indicator) {
26461 D(p->level--);
26462 return NULL;
26463 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026464 D(fprintf(stderr, "%*c> _loop0_121[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('if' disjunction)"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010026465 void *_tmp_174_var;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026466 while (
Pablo Galindob86ed8e2021-04-12 16:59:30 +010026467 (_tmp_174_var = _tmp_174_rule(p)) // 'if' disjunction
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026468 )
26469 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +010026470 _res = _tmp_174_var;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026471 if (_n == _children_capacity) {
26472 _children_capacity *= 2;
26473 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26474 if (!_new_children) {
26475 p->error_indicator = 1;
26476 PyErr_NoMemory();
26477 D(p->level--);
26478 return NULL;
26479 }
26480 _children = _new_children;
26481 }
26482 _children[_n++] = _res;
26483 _mark = p->mark;
26484 }
26485 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026486 D(fprintf(stderr, "%*c%s _loop0_121[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026487 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('if' disjunction)"));
26488 }
26489 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
26490 if (!_seq) {
26491 PyMem_Free(_children);
26492 p->error_indicator = 1;
26493 PyErr_NoMemory();
26494 D(p->level--);
26495 return NULL;
26496 }
26497 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
26498 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026499 _PyPegen_insert_memo(p, _start_mark, _loop0_121_type, _seq);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026500 D(p->level--);
26501 return _seq;
26502}
26503
Pablo Galindod9151cb2021-04-13 02:32:33 +010026504// _loop0_123: ',' (starred_expression | direct_named_expression !'=')
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026505static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026506_loop0_123_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026507{
26508 D(p->level++);
26509 if (p->error_indicator) {
26510 D(p->level--);
26511 return NULL;
26512 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026513 void *_res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026514 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026515 int _start_mark = p->mark;
26516 void **_children = PyMem_Malloc(sizeof(void *));
26517 if (!_children) {
26518 p->error_indicator = 1;
26519 PyErr_NoMemory();
26520 D(p->level--);
26521 return NULL;
26522 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026523 Py_ssize_t _children_capacity = 1;
26524 Py_ssize_t _n = 0;
Pablo Galindod9151cb2021-04-13 02:32:33 +010026525 { // ',' (starred_expression | direct_named_expression !'=')
Pablo Galindo4a97b152020-09-02 17:44:19 +010026526 if (p->error_indicator) {
26527 D(p->level--);
26528 return NULL;
26529 }
Pablo Galindod9151cb2021-04-13 02:32:33 +010026530 D(fprintf(stderr, "%*c> _loop0_123[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (starred_expression | direct_named_expression !'=')"));
Pablo Galindo4a97b152020-09-02 17:44:19 +010026531 Token * _literal;
26532 void *elem;
26533 while (
26534 (_literal = _PyPegen_expect_token(p, 12)) // token=','
26535 &&
Pablo Galindod9151cb2021-04-13 02:32:33 +010026536 (elem = _tmp_175_rule(p)) // starred_expression | direct_named_expression !'='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026537 )
26538 {
26539 _res = elem;
26540 if (_res == NULL && PyErr_Occurred()) {
26541 p->error_indicator = 1;
26542 PyMem_Free(_children);
26543 D(p->level--);
26544 return NULL;
26545 }
26546 if (_n == _children_capacity) {
26547 _children_capacity *= 2;
26548 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26549 if (!_new_children) {
26550 p->error_indicator = 1;
26551 PyErr_NoMemory();
26552 D(p->level--);
26553 return NULL;
26554 }
26555 _children = _new_children;
26556 }
26557 _children[_n++] = _res;
26558 _mark = p->mark;
26559 }
26560 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020026561 D(fprintf(stderr, "%*c%s _loop0_123[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindod9151cb2021-04-13 02:32:33 +010026562 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (starred_expression | direct_named_expression !'=')"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026563 }
26564 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
26565 if (!_seq) {
26566 PyMem_Free(_children);
26567 p->error_indicator = 1;
26568 PyErr_NoMemory();
26569 D(p->level--);
26570 return NULL;
26571 }
26572 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
26573 PyMem_Free(_children);
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020026574 _PyPegen_insert_memo(p, _start_mark, _loop0_123_type, _seq);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026575 D(p->level--);
26576 return _seq;
26577}
26578
Pablo Galindod9151cb2021-04-13 02:32:33 +010026579// _gather_122: (starred_expression | direct_named_expression !'=') _loop0_123
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026580static asdl_seq *
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020026581_gather_122_rule(Parser *p)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026582{
26583 D(p->level++);
26584 if (p->error_indicator) {
26585 D(p->level--);
26586 return NULL;
26587 }
26588 asdl_seq * _res = NULL;
26589 int _mark = p->mark;
Pablo Galindod9151cb2021-04-13 02:32:33 +010026590 { // (starred_expression | direct_named_expression !'=') _loop0_123
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026591 if (p->error_indicator) {
26592 D(p->level--);
26593 return NULL;
26594 }
Pablo Galindod9151cb2021-04-13 02:32:33 +010026595 D(fprintf(stderr, "%*c> _gather_122[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(starred_expression | direct_named_expression !'=') _loop0_123"));
Brandt Bucher145bf262021-02-26 14:51:55 -080026596 void *elem;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026597 asdl_seq * seq;
26598 if (
Pablo Galindod9151cb2021-04-13 02:32:33 +010026599 (elem = _tmp_175_rule(p)) // starred_expression | direct_named_expression !'='
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026600 &&
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020026601 (seq = _loop0_123_rule(p)) // _loop0_123
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026602 )
26603 {
Pablo Galindod9151cb2021-04-13 02:32:33 +010026604 D(fprintf(stderr, "%*c+ _gather_122[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(starred_expression | direct_named_expression !'=') _loop0_123"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026605 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
26606 goto done;
26607 }
26608 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020026609 D(fprintf(stderr, "%*c%s _gather_122[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindod9151cb2021-04-13 02:32:33 +010026610 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(starred_expression | direct_named_expression !'=') _loop0_123"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026611 }
26612 _res = NULL;
26613 done:
26614 D(p->level--);
26615 return _res;
26616}
26617
Brandt Bucher145bf262021-02-26 14:51:55 -080026618// _tmp_124: ',' kwargs
26619static void *
26620_tmp_124_rule(Parser *p)
26621{
26622 D(p->level++);
26623 if (p->error_indicator) {
26624 D(p->level--);
26625 return NULL;
26626 }
26627 void * _res = NULL;
26628 int _mark = p->mark;
26629 { // ',' kwargs
26630 if (p->error_indicator) {
26631 D(p->level--);
26632 return NULL;
26633 }
26634 D(fprintf(stderr, "%*c> _tmp_124[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwargs"));
26635 Token * _literal;
26636 asdl_seq* k;
26637 if (
26638 (_literal = _PyPegen_expect_token(p, 12)) // token=','
26639 &&
26640 (k = kwargs_rule(p)) // kwargs
26641 )
26642 {
26643 D(fprintf(stderr, "%*c+ _tmp_124[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' kwargs"));
26644 _res = k;
26645 if (_res == NULL && PyErr_Occurred()) {
26646 p->error_indicator = 1;
26647 D(p->level--);
26648 return NULL;
26649 }
26650 goto done;
26651 }
26652 p->mark = _mark;
26653 D(fprintf(stderr, "%*c%s _tmp_124[%d-%d]: %s failed!\n", p->level, ' ',
26654 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwargs"));
26655 }
26656 _res = NULL;
26657 done:
26658 D(p->level--);
26659 return _res;
26660}
26661
26662// _loop0_126: ',' kwarg_or_starred
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026663static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026664_loop0_126_rule(Parser *p)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026665{
26666 D(p->level++);
26667 if (p->error_indicator) {
26668 D(p->level--);
26669 return NULL;
26670 }
26671 void *_res = NULL;
26672 int _mark = p->mark;
26673 int _start_mark = p->mark;
26674 void **_children = PyMem_Malloc(sizeof(void *));
26675 if (!_children) {
26676 p->error_indicator = 1;
26677 PyErr_NoMemory();
26678 D(p->level--);
26679 return NULL;
26680 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026681 Py_ssize_t _children_capacity = 1;
26682 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080026683 { // ',' kwarg_or_starred
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026684 if (p->error_indicator) {
26685 D(p->level--);
26686 return NULL;
26687 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026688 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 +000026689 Token * _literal;
Brandt Bucher145bf262021-02-26 14:51:55 -080026690 KeywordOrStarred* elem;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026691 while (
26692 (_literal = _PyPegen_expect_token(p, 12)) // token=','
26693 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080026694 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026695 )
26696 {
26697 _res = elem;
26698 if (_res == NULL && PyErr_Occurred()) {
26699 p->error_indicator = 1;
26700 PyMem_Free(_children);
26701 D(p->level--);
26702 return NULL;
26703 }
26704 if (_n == _children_capacity) {
26705 _children_capacity *= 2;
26706 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26707 if (!_new_children) {
26708 p->error_indicator = 1;
26709 PyErr_NoMemory();
26710 D(p->level--);
26711 return NULL;
26712 }
26713 _children = _new_children;
26714 }
26715 _children[_n++] = _res;
26716 _mark = p->mark;
26717 }
26718 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026719 D(fprintf(stderr, "%*c%s _loop0_126[%d-%d]: %s failed!\n", p->level, ' ',
26720 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_starred"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026721 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026722 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026723 if (!_seq) {
26724 PyMem_Free(_children);
26725 p->error_indicator = 1;
26726 PyErr_NoMemory();
26727 D(p->level--);
26728 return NULL;
26729 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026730 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026731 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026732 _PyPegen_insert_memo(p, _start_mark, _loop0_126_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026733 D(p->level--);
26734 return _seq;
26735}
26736
Brandt Bucher145bf262021-02-26 14:51:55 -080026737// _gather_125: kwarg_or_starred _loop0_126
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026738static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026739_gather_125_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026740{
26741 D(p->level++);
26742 if (p->error_indicator) {
26743 D(p->level--);
26744 return NULL;
26745 }
26746 asdl_seq * _res = NULL;
26747 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026748 { // kwarg_or_starred _loop0_126
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026749 if (p->error_indicator) {
26750 D(p->level--);
26751 return NULL;
26752 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026753 D(fprintf(stderr, "%*c> _gather_125[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwarg_or_starred _loop0_126"));
26754 KeywordOrStarred* elem;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026755 asdl_seq * seq;
26756 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080026757 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026758 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080026759 (seq = _loop0_126_rule(p)) // _loop0_126
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026760 )
26761 {
Brandt Bucher145bf262021-02-26 14:51:55 -080026762 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 +010026763 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
26764 goto done;
26765 }
26766 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026767 D(fprintf(stderr, "%*c%s _gather_125[%d-%d]: %s failed!\n", p->level, ' ',
26768 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_starred _loop0_126"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026769 }
26770 _res = NULL;
26771 done:
26772 D(p->level--);
26773 return _res;
26774}
26775
Brandt Bucher145bf262021-02-26 14:51:55 -080026776// _loop0_128: ',' kwarg_or_double_starred
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026777static asdl_seq *
26778_loop0_128_rule(Parser *p)
26779{
26780 D(p->level++);
26781 if (p->error_indicator) {
26782 D(p->level--);
26783 return NULL;
26784 }
26785 void *_res = NULL;
26786 int _mark = p->mark;
26787 int _start_mark = p->mark;
26788 void **_children = PyMem_Malloc(sizeof(void *));
26789 if (!_children) {
26790 p->error_indicator = 1;
26791 PyErr_NoMemory();
26792 D(p->level--);
26793 return NULL;
26794 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026795 Py_ssize_t _children_capacity = 1;
26796 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080026797 { // ',' kwarg_or_double_starred
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026798 if (p->error_indicator) {
26799 D(p->level--);
26800 return NULL;
26801 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026802 D(fprintf(stderr, "%*c> _loop0_128[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwarg_or_double_starred"));
26803 Token * _literal;
26804 KeywordOrStarred* elem;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026805 while (
Brandt Bucher145bf262021-02-26 14:51:55 -080026806 (_literal = _PyPegen_expect_token(p, 12)) // token=','
26807 &&
26808 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026809 )
26810 {
Brandt Bucher145bf262021-02-26 14:51:55 -080026811 _res = elem;
26812 if (_res == NULL && PyErr_Occurred()) {
26813 p->error_indicator = 1;
26814 PyMem_Free(_children);
26815 D(p->level--);
26816 return NULL;
26817 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026818 if (_n == _children_capacity) {
26819 _children_capacity *= 2;
26820 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26821 if (!_new_children) {
26822 p->error_indicator = 1;
26823 PyErr_NoMemory();
26824 D(p->level--);
26825 return NULL;
26826 }
26827 _children = _new_children;
26828 }
26829 _children[_n++] = _res;
26830 _mark = p->mark;
26831 }
26832 p->mark = _mark;
26833 D(fprintf(stderr, "%*c%s _loop0_128[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080026834 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_double_starred"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026835 }
26836 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
26837 if (!_seq) {
26838 PyMem_Free(_children);
26839 p->error_indicator = 1;
26840 PyErr_NoMemory();
26841 D(p->level--);
26842 return NULL;
26843 }
26844 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
26845 PyMem_Free(_children);
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030026846 _PyPegen_insert_memo(p, _start_mark, _loop0_128_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026847 D(p->level--);
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030026848 return _seq;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026849}
26850
Brandt Bucher145bf262021-02-26 14:51:55 -080026851// _gather_127: kwarg_or_double_starred _loop0_128
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020026852static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026853_gather_127_rule(Parser *p)
26854{
26855 D(p->level++);
26856 if (p->error_indicator) {
26857 D(p->level--);
26858 return NULL;
26859 }
26860 asdl_seq * _res = NULL;
26861 int _mark = p->mark;
26862 { // kwarg_or_double_starred _loop0_128
26863 if (p->error_indicator) {
26864 D(p->level--);
26865 return NULL;
26866 }
26867 D(fprintf(stderr, "%*c> _gather_127[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwarg_or_double_starred _loop0_128"));
26868 KeywordOrStarred* elem;
26869 asdl_seq * seq;
26870 if (
26871 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
26872 &&
26873 (seq = _loop0_128_rule(p)) // _loop0_128
26874 )
26875 {
26876 D(fprintf(stderr, "%*c+ _gather_127[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwarg_or_double_starred _loop0_128"));
26877 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
26878 goto done;
26879 }
26880 p->mark = _mark;
26881 D(fprintf(stderr, "%*c%s _gather_127[%d-%d]: %s failed!\n", p->level, ' ',
26882 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_double_starred _loop0_128"));
26883 }
26884 _res = NULL;
26885 done:
26886 D(p->level--);
26887 return _res;
26888}
26889
26890// _loop0_130: ',' kwarg_or_starred
26891static asdl_seq *
26892_loop0_130_rule(Parser *p)
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020026893{
26894 D(p->level++);
26895 if (p->error_indicator) {
26896 D(p->level--);
26897 return NULL;
26898 }
26899 void *_res = NULL;
26900 int _mark = p->mark;
26901 int _start_mark = p->mark;
26902 void **_children = PyMem_Malloc(sizeof(void *));
26903 if (!_children) {
26904 p->error_indicator = 1;
26905 PyErr_NoMemory();
26906 D(p->level--);
26907 return NULL;
26908 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026909 Py_ssize_t _children_capacity = 1;
26910 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080026911 { // ',' kwarg_or_starred
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020026912 if (p->error_indicator) {
26913 D(p->level--);
26914 return NULL;
26915 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026916 D(fprintf(stderr, "%*c> _loop0_130[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwarg_or_starred"));
26917 Token * _literal;
26918 KeywordOrStarred* elem;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020026919 while (
Brandt Bucher145bf262021-02-26 14:51:55 -080026920 (_literal = _PyPegen_expect_token(p, 12)) // token=','
26921 &&
26922 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020026923 )
26924 {
Brandt Bucher145bf262021-02-26 14:51:55 -080026925 _res = elem;
26926 if (_res == NULL && PyErr_Occurred()) {
26927 p->error_indicator = 1;
26928 PyMem_Free(_children);
26929 D(p->level--);
26930 return NULL;
26931 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020026932 if (_n == _children_capacity) {
26933 _children_capacity *= 2;
26934 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26935 if (!_new_children) {
26936 p->error_indicator = 1;
26937 PyErr_NoMemory();
26938 D(p->level--);
26939 return NULL;
26940 }
26941 _children = _new_children;
26942 }
26943 _children[_n++] = _res;
26944 _mark = p->mark;
26945 }
26946 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026947 D(fprintf(stderr, "%*c%s _loop0_130[%d-%d]: %s failed!\n", p->level, ' ',
26948 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_starred"));
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020026949 }
26950 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
26951 if (!_seq) {
26952 PyMem_Free(_children);
26953 p->error_indicator = 1;
26954 PyErr_NoMemory();
26955 D(p->level--);
26956 return NULL;
26957 }
26958 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
26959 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026960 _PyPegen_insert_memo(p, _start_mark, _loop0_130_type, _seq);
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020026961 D(p->level--);
26962 return _seq;
26963}
26964
Brandt Bucher145bf262021-02-26 14:51:55 -080026965// _gather_129: kwarg_or_starred _loop0_130
26966static asdl_seq *
26967_gather_129_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026968{
26969 D(p->level++);
26970 if (p->error_indicator) {
26971 D(p->level--);
26972 return NULL;
26973 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026974 asdl_seq * _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026975 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026976 { // kwarg_or_starred _loop0_130
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026977 if (p->error_indicator) {
26978 D(p->level--);
26979 return NULL;
26980 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026981 D(fprintf(stderr, "%*c> _gather_129[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwarg_or_starred _loop0_130"));
26982 KeywordOrStarred* elem;
26983 asdl_seq * seq;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026984 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080026985 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
26986 &&
26987 (seq = _loop0_130_rule(p)) // _loop0_130
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026988 )
26989 {
Brandt Bucher145bf262021-02-26 14:51:55 -080026990 D(fprintf(stderr, "%*c+ _gather_129[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwarg_or_starred _loop0_130"));
26991 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026992 goto done;
26993 }
26994 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026995 D(fprintf(stderr, "%*c%s _gather_129[%d-%d]: %s failed!\n", p->level, ' ',
26996 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_starred _loop0_130"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026997 }
26998 _res = NULL;
26999 done:
27000 D(p->level--);
27001 return _res;
27002}
27003
Brandt Bucher145bf262021-02-26 14:51:55 -080027004// _loop0_132: ',' kwarg_or_double_starred
27005static asdl_seq *
27006_loop0_132_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027007{
27008 D(p->level++);
27009 if (p->error_indicator) {
27010 D(p->level--);
27011 return NULL;
27012 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027013 void *_res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027014 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027015 int _start_mark = p->mark;
27016 void **_children = PyMem_Malloc(sizeof(void *));
27017 if (!_children) {
27018 p->error_indicator = 1;
27019 PyErr_NoMemory();
27020 D(p->level--);
27021 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027022 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027023 Py_ssize_t _children_capacity = 1;
27024 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080027025 { // ',' kwarg_or_double_starred
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027026 if (p->error_indicator) {
27027 D(p->level--);
27028 return NULL;
27029 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027030 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 +010027031 Token * _literal;
Brandt Bucher145bf262021-02-26 14:51:55 -080027032 KeywordOrStarred* elem;
27033 while (
27034 (_literal = _PyPegen_expect_token(p, 12)) // token=','
27035 &&
27036 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027037 )
27038 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027039 _res = elem;
27040 if (_res == NULL && PyErr_Occurred()) {
27041 p->error_indicator = 1;
27042 PyMem_Free(_children);
27043 D(p->level--);
27044 return NULL;
27045 }
27046 if (_n == _children_capacity) {
27047 _children_capacity *= 2;
27048 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27049 if (!_new_children) {
27050 p->error_indicator = 1;
27051 PyErr_NoMemory();
27052 D(p->level--);
27053 return NULL;
27054 }
27055 _children = _new_children;
27056 }
27057 _children[_n++] = _res;
27058 _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027059 }
27060 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027061 D(fprintf(stderr, "%*c%s _loop0_132[%d-%d]: %s failed!\n", p->level, ' ',
27062 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_double_starred"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027063 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027064 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
27065 if (!_seq) {
27066 PyMem_Free(_children);
27067 p->error_indicator = 1;
27068 PyErr_NoMemory();
27069 D(p->level--);
27070 return NULL;
27071 }
27072 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
27073 PyMem_Free(_children);
27074 _PyPegen_insert_memo(p, _start_mark, _loop0_132_type, _seq);
27075 D(p->level--);
27076 return _seq;
27077}
27078
27079// _gather_131: kwarg_or_double_starred _loop0_132
27080static asdl_seq *
27081_gather_131_rule(Parser *p)
27082{
27083 D(p->level++);
27084 if (p->error_indicator) {
27085 D(p->level--);
27086 return NULL;
27087 }
27088 asdl_seq * _res = NULL;
27089 int _mark = p->mark;
27090 { // kwarg_or_double_starred _loop0_132
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027091 if (p->error_indicator) {
27092 D(p->level--);
27093 return NULL;
27094 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027095 D(fprintf(stderr, "%*c> _gather_131[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwarg_or_double_starred _loop0_132"));
27096 KeywordOrStarred* elem;
27097 asdl_seq * seq;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027098 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080027099 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
27100 &&
27101 (seq = _loop0_132_rule(p)) // _loop0_132
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027102 )
27103 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027104 D(fprintf(stderr, "%*c+ _gather_131[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwarg_or_double_starred _loop0_132"));
27105 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027106 goto done;
27107 }
27108 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027109 D(fprintf(stderr, "%*c%s _gather_131[%d-%d]: %s failed!\n", p->level, ' ',
27110 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_double_starred _loop0_132"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027111 }
27112 _res = NULL;
27113 done:
27114 D(p->level--);
27115 return _res;
27116}
27117
Brandt Bucher145bf262021-02-26 14:51:55 -080027118// _loop0_133: (',' star_target)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027119static asdl_seq *
Pablo Galindo835f14f2021-01-31 22:52:56 +000027120_loop0_133_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027121{
27122 D(p->level++);
27123 if (p->error_indicator) {
27124 D(p->level--);
27125 return NULL;
27126 }
27127 void *_res = NULL;
27128 int _mark = p->mark;
27129 int _start_mark = p->mark;
27130 void **_children = PyMem_Malloc(sizeof(void *));
27131 if (!_children) {
27132 p->error_indicator = 1;
27133 PyErr_NoMemory();
27134 D(p->level--);
27135 return NULL;
27136 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027137 Py_ssize_t _children_capacity = 1;
27138 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080027139 { // (',' star_target)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027140 if (p->error_indicator) {
27141 D(p->level--);
27142 return NULL;
27143 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027144 D(fprintf(stderr, "%*c> _loop0_133[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_target)"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010027145 void *_tmp_176_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027146 while (
Pablo Galindob86ed8e2021-04-12 16:59:30 +010027147 (_tmp_176_var = _tmp_176_rule(p)) // ',' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027148 )
27149 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +010027150 _res = _tmp_176_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027151 if (_n == _children_capacity) {
27152 _children_capacity *= 2;
27153 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27154 if (!_new_children) {
27155 p->error_indicator = 1;
27156 PyErr_NoMemory();
27157 D(p->level--);
27158 return NULL;
27159 }
27160 _children = _new_children;
27161 }
27162 _children[_n++] = _res;
27163 _mark = p->mark;
27164 }
27165 p->mark = _mark;
Pablo Galindo835f14f2021-01-31 22:52:56 +000027166 D(fprintf(stderr, "%*c%s _loop0_133[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080027167 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' star_target)"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027168 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027169 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027170 if (!_seq) {
27171 PyMem_Free(_children);
27172 p->error_indicator = 1;
27173 PyErr_NoMemory();
27174 D(p->level--);
27175 return NULL;
27176 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027177 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027178 PyMem_Free(_children);
Pablo Galindo835f14f2021-01-31 22:52:56 +000027179 _PyPegen_insert_memo(p, _start_mark, _loop0_133_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027180 D(p->level--);
27181 return _seq;
27182}
27183
Brandt Bucher145bf262021-02-26 14:51:55 -080027184// _loop0_135: ',' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027185static asdl_seq *
Pablo Galindo835f14f2021-01-31 22:52:56 +000027186_loop0_135_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027187{
27188 D(p->level++);
27189 if (p->error_indicator) {
27190 D(p->level--);
27191 return NULL;
27192 }
27193 void *_res = NULL;
27194 int _mark = p->mark;
27195 int _start_mark = p->mark;
27196 void **_children = PyMem_Malloc(sizeof(void *));
27197 if (!_children) {
27198 p->error_indicator = 1;
27199 PyErr_NoMemory();
27200 D(p->level--);
27201 return NULL;
27202 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027203 Py_ssize_t _children_capacity = 1;
27204 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080027205 { // ',' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027206 if (p->error_indicator) {
27207 D(p->level--);
27208 return NULL;
27209 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027210 D(fprintf(stderr, "%*c> _loop0_135[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target"));
27211 Token * _literal;
27212 expr_ty elem;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027213 while (
Brandt Bucher145bf262021-02-26 14:51:55 -080027214 (_literal = _PyPegen_expect_token(p, 12)) // token=','
27215 &&
27216 (elem = star_target_rule(p)) // star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027217 )
27218 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027219 _res = elem;
27220 if (_res == NULL && PyErr_Occurred()) {
27221 p->error_indicator = 1;
27222 PyMem_Free(_children);
27223 D(p->level--);
27224 return NULL;
27225 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027226 if (_n == _children_capacity) {
27227 _children_capacity *= 2;
27228 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27229 if (!_new_children) {
27230 p->error_indicator = 1;
27231 PyErr_NoMemory();
27232 D(p->level--);
27233 return NULL;
27234 }
27235 _children = _new_children;
27236 }
27237 _children[_n++] = _res;
27238 _mark = p->mark;
27239 }
27240 p->mark = _mark;
Pablo Galindo835f14f2021-01-31 22:52:56 +000027241 D(fprintf(stderr, "%*c%s _loop0_135[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080027242 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027243 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027244 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027245 if (!_seq) {
27246 PyMem_Free(_children);
27247 p->error_indicator = 1;
27248 PyErr_NoMemory();
27249 D(p->level--);
27250 return NULL;
27251 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027252 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027253 PyMem_Free(_children);
Pablo Galindo835f14f2021-01-31 22:52:56 +000027254 _PyPegen_insert_memo(p, _start_mark, _loop0_135_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027255 D(p->level--);
27256 return _seq;
27257}
27258
Brandt Bucher145bf262021-02-26 14:51:55 -080027259// _gather_134: star_target _loop0_135
27260static asdl_seq *
27261_gather_134_rule(Parser *p)
27262{
27263 D(p->level++);
27264 if (p->error_indicator) {
27265 D(p->level--);
27266 return NULL;
27267 }
27268 asdl_seq * _res = NULL;
27269 int _mark = p->mark;
27270 { // star_target _loop0_135
27271 if (p->error_indicator) {
27272 D(p->level--);
27273 return NULL;
27274 }
27275 D(fprintf(stderr, "%*c> _gather_134[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target _loop0_135"));
27276 expr_ty elem;
27277 asdl_seq * seq;
27278 if (
27279 (elem = star_target_rule(p)) // star_target
27280 &&
27281 (seq = _loop0_135_rule(p)) // _loop0_135
27282 )
27283 {
27284 D(fprintf(stderr, "%*c+ _gather_134[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target _loop0_135"));
27285 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
27286 goto done;
27287 }
27288 p->mark = _mark;
27289 D(fprintf(stderr, "%*c%s _gather_134[%d-%d]: %s failed!\n", p->level, ' ',
27290 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target _loop0_135"));
27291 }
27292 _res = NULL;
27293 done:
27294 D(p->level--);
27295 return _res;
27296}
27297
27298// _loop1_136: (',' star_target)
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020027299static asdl_seq *
Pablo Galindo835f14f2021-01-31 22:52:56 +000027300_loop1_136_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027301{
27302 D(p->level++);
27303 if (p->error_indicator) {
27304 D(p->level--);
27305 return NULL;
27306 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020027307 void *_res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027308 int _mark = p->mark;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020027309 int _start_mark = p->mark;
27310 void **_children = PyMem_Malloc(sizeof(void *));
27311 if (!_children) {
27312 p->error_indicator = 1;
27313 PyErr_NoMemory();
27314 D(p->level--);
27315 return NULL;
27316 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027317 Py_ssize_t _children_capacity = 1;
27318 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080027319 { // (',' star_target)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027320 if (p->error_indicator) {
27321 D(p->level--);
27322 return NULL;
27323 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027324 D(fprintf(stderr, "%*c> _loop1_136[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_target)"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010027325 void *_tmp_177_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020027326 while (
Pablo Galindob86ed8e2021-04-12 16:59:30 +010027327 (_tmp_177_var = _tmp_177_rule(p)) // ',' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027328 )
27329 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +010027330 _res = _tmp_177_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020027331 if (_n == _children_capacity) {
27332 _children_capacity *= 2;
27333 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27334 if (!_new_children) {
27335 p->error_indicator = 1;
27336 PyErr_NoMemory();
27337 D(p->level--);
27338 return NULL;
27339 }
27340 _children = _new_children;
27341 }
27342 _children[_n++] = _res;
27343 _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027344 }
27345 p->mark = _mark;
Pablo Galindo835f14f2021-01-31 22:52:56 +000027346 D(fprintf(stderr, "%*c%s _loop1_136[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080027347 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' star_target)"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027348 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020027349 if (_n == 0 || p->error_indicator) {
27350 PyMem_Free(_children);
27351 D(p->level--);
27352 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027353 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020027354 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
27355 if (!_seq) {
27356 PyMem_Free(_children);
27357 p->error_indicator = 1;
27358 PyErr_NoMemory();
27359 D(p->level--);
27360 return NULL;
27361 }
27362 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
27363 PyMem_Free(_children);
Pablo Galindo835f14f2021-01-31 22:52:56 +000027364 _PyPegen_insert_memo(p, _start_mark, _loop1_136_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027365 D(p->level--);
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020027366 return _seq;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027367}
27368
Brandt Bucher145bf262021-02-26 14:51:55 -080027369// _tmp_137: !'*' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027370static void *
Pablo Galindo835f14f2021-01-31 22:52:56 +000027371_tmp_137_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027372{
27373 D(p->level++);
27374 if (p->error_indicator) {
27375 D(p->level--);
27376 return NULL;
27377 }
27378 void * _res = NULL;
27379 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027380 { // !'*' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027381 if (p->error_indicator) {
27382 D(p->level--);
27383 return NULL;
27384 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027385 D(fprintf(stderr, "%*c> _tmp_137[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "!'*' star_target"));
27386 expr_ty star_target_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027387 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080027388 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 16) // token='*'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027389 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080027390 (star_target_var = star_target_rule(p)) // star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027391 )
27392 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027393 D(fprintf(stderr, "%*c+ _tmp_137[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "!'*' star_target"));
27394 _res = star_target_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027395 goto done;
27396 }
27397 p->mark = _mark;
Pablo Galindo835f14f2021-01-31 22:52:56 +000027398 D(fprintf(stderr, "%*c%s _tmp_137[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080027399 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "!'*' star_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027400 }
27401 _res = NULL;
27402 done:
27403 D(p->level--);
27404 return _res;
27405}
27406
Brandt Bucher145bf262021-02-26 14:51:55 -080027407// _loop0_139: ',' del_target
27408static asdl_seq *
27409_loop0_139_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027410{
27411 D(p->level++);
27412 if (p->error_indicator) {
27413 D(p->level--);
27414 return NULL;
27415 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027416 void *_res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027417 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027418 int _start_mark = p->mark;
27419 void **_children = PyMem_Malloc(sizeof(void *));
27420 if (!_children) {
27421 p->error_indicator = 1;
27422 PyErr_NoMemory();
27423 D(p->level--);
27424 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027425 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027426 Py_ssize_t _children_capacity = 1;
27427 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080027428 { // ',' del_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027429 if (p->error_indicator) {
27430 D(p->level--);
27431 return NULL;
27432 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027433 D(fprintf(stderr, "%*c> _loop0_139[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' del_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027434 Token * _literal;
Brandt Bucher145bf262021-02-26 14:51:55 -080027435 expr_ty elem;
27436 while (
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027437 (_literal = _PyPegen_expect_token(p, 12)) // token=','
27438 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080027439 (elem = del_target_rule(p)) // del_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027440 )
27441 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027442 _res = elem;
27443 if (_res == NULL && PyErr_Occurred()) {
27444 p->error_indicator = 1;
27445 PyMem_Free(_children);
27446 D(p->level--);
27447 return NULL;
27448 }
27449 if (_n == _children_capacity) {
27450 _children_capacity *= 2;
27451 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27452 if (!_new_children) {
27453 p->error_indicator = 1;
27454 PyErr_NoMemory();
27455 D(p->level--);
27456 return NULL;
27457 }
27458 _children = _new_children;
27459 }
27460 _children[_n++] = _res;
27461 _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027462 }
27463 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027464 D(fprintf(stderr, "%*c%s _loop0_139[%d-%d]: %s failed!\n", p->level, ' ',
27465 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' del_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027466 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027467 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
27468 if (!_seq) {
27469 PyMem_Free(_children);
27470 p->error_indicator = 1;
27471 PyErr_NoMemory();
27472 D(p->level--);
27473 return NULL;
27474 }
27475 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
27476 PyMem_Free(_children);
27477 _PyPegen_insert_memo(p, _start_mark, _loop0_139_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027478 D(p->level--);
Brandt Bucher145bf262021-02-26 14:51:55 -080027479 return _seq;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027480}
27481
Brandt Bucher145bf262021-02-26 14:51:55 -080027482// _gather_138: del_target _loop0_139
27483static asdl_seq *
27484_gather_138_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027485{
27486 D(p->level++);
27487 if (p->error_indicator) {
27488 D(p->level--);
27489 return NULL;
27490 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027491 asdl_seq * _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027492 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027493 { // del_target _loop0_139
Pablo Galindo58fb1562021-02-02 19:54:22 +000027494 if (p->error_indicator) {
27495 D(p->level--);
27496 return NULL;
27497 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027498 D(fprintf(stderr, "%*c> _gather_138[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "del_target _loop0_139"));
27499 expr_ty elem;
27500 asdl_seq * seq;
Pablo Galindo58fb1562021-02-02 19:54:22 +000027501 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080027502 (elem = del_target_rule(p)) // del_target
27503 &&
27504 (seq = _loop0_139_rule(p)) // _loop0_139
Pablo Galindo58fb1562021-02-02 19:54:22 +000027505 )
27506 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027507 D(fprintf(stderr, "%*c+ _gather_138[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "del_target _loop0_139"));
27508 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindo58fb1562021-02-02 19:54:22 +000027509 goto done;
27510 }
27511 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027512 D(fprintf(stderr, "%*c%s _gather_138[%d-%d]: %s failed!\n", p->level, ' ',
27513 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "del_target _loop0_139"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000027514 }
27515 _res = NULL;
27516 done:
27517 D(p->level--);
27518 return _res;
27519}
27520
Brandt Bucher145bf262021-02-26 14:51:55 -080027521// _loop0_141: ',' target
Pablo Galindo58fb1562021-02-02 19:54:22 +000027522static asdl_seq *
27523_loop0_141_rule(Parser *p)
27524{
27525 D(p->level++);
27526 if (p->error_indicator) {
27527 D(p->level--);
27528 return NULL;
27529 }
27530 void *_res = NULL;
27531 int _mark = p->mark;
27532 int _start_mark = p->mark;
27533 void **_children = PyMem_Malloc(sizeof(void *));
27534 if (!_children) {
27535 p->error_indicator = 1;
27536 PyErr_NoMemory();
27537 D(p->level--);
27538 return NULL;
27539 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027540 Py_ssize_t _children_capacity = 1;
27541 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080027542 { // ',' target
Pablo Galindo58fb1562021-02-02 19:54:22 +000027543 if (p->error_indicator) {
27544 D(p->level--);
27545 return NULL;
27546 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027547 D(fprintf(stderr, "%*c> _loop0_141[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' target"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000027548 Token * _literal;
Brandt Bucher145bf262021-02-26 14:51:55 -080027549 expr_ty elem;
Pablo Galindo58fb1562021-02-02 19:54:22 +000027550 while (
27551 (_literal = _PyPegen_expect_token(p, 12)) // token=','
27552 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080027553 (elem = target_rule(p)) // target
Pablo Galindo58fb1562021-02-02 19:54:22 +000027554 )
27555 {
27556 _res = elem;
27557 if (_res == NULL && PyErr_Occurred()) {
27558 p->error_indicator = 1;
27559 PyMem_Free(_children);
27560 D(p->level--);
27561 return NULL;
27562 }
27563 if (_n == _children_capacity) {
27564 _children_capacity *= 2;
27565 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27566 if (!_new_children) {
27567 p->error_indicator = 1;
27568 PyErr_NoMemory();
27569 D(p->level--);
27570 return NULL;
27571 }
27572 _children = _new_children;
27573 }
27574 _children[_n++] = _res;
27575 _mark = p->mark;
27576 }
27577 p->mark = _mark;
27578 D(fprintf(stderr, "%*c%s _loop0_141[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080027579 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' target"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000027580 }
27581 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
27582 if (!_seq) {
27583 PyMem_Free(_children);
27584 p->error_indicator = 1;
27585 PyErr_NoMemory();
27586 D(p->level--);
27587 return NULL;
27588 }
27589 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
27590 PyMem_Free(_children);
27591 _PyPegen_insert_memo(p, _start_mark, _loop0_141_type, _seq);
27592 D(p->level--);
27593 return _seq;
27594}
27595
Brandt Bucher145bf262021-02-26 14:51:55 -080027596// _gather_140: target _loop0_141
Pablo Galindo58fb1562021-02-02 19:54:22 +000027597static asdl_seq *
27598_gather_140_rule(Parser *p)
27599{
27600 D(p->level++);
27601 if (p->error_indicator) {
27602 D(p->level--);
27603 return NULL;
27604 }
27605 asdl_seq * _res = NULL;
27606 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027607 { // target _loop0_141
Pablo Galindo58fb1562021-02-02 19:54:22 +000027608 if (p->error_indicator) {
27609 D(p->level--);
27610 return NULL;
27611 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027612 D(fprintf(stderr, "%*c> _gather_140[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "target _loop0_141"));
27613 expr_ty elem;
Pablo Galindo58fb1562021-02-02 19:54:22 +000027614 asdl_seq * seq;
27615 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080027616 (elem = target_rule(p)) // target
Pablo Galindo58fb1562021-02-02 19:54:22 +000027617 &&
27618 (seq = _loop0_141_rule(p)) // _loop0_141
27619 )
27620 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027621 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 +000027622 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
27623 goto done;
27624 }
27625 p->mark = _mark;
27626 D(fprintf(stderr, "%*c%s _gather_140[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080027627 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "target _loop0_141"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000027628 }
27629 _res = NULL;
27630 done:
27631 D(p->level--);
27632 return _res;
27633}
27634
Brandt Bucher145bf262021-02-26 14:51:55 -080027635// _tmp_142: args | expression for_if_clauses
27636static void *
27637_tmp_142_rule(Parser *p)
27638{
27639 D(p->level++);
27640 if (p->error_indicator) {
27641 D(p->level--);
27642 return NULL;
27643 }
27644 void * _res = NULL;
27645 int _mark = p->mark;
27646 { // args
27647 if (p->error_indicator) {
27648 D(p->level--);
27649 return NULL;
27650 }
27651 D(fprintf(stderr, "%*c> _tmp_142[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args"));
27652 expr_ty args_var;
27653 if (
27654 (args_var = args_rule(p)) // args
27655 )
27656 {
27657 D(fprintf(stderr, "%*c+ _tmp_142[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args"));
27658 _res = args_var;
27659 goto done;
27660 }
27661 p->mark = _mark;
27662 D(fprintf(stderr, "%*c%s _tmp_142[%d-%d]: %s failed!\n", p->level, ' ',
27663 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args"));
27664 }
27665 { // expression for_if_clauses
27666 if (p->error_indicator) {
27667 D(p->level--);
27668 return NULL;
27669 }
27670 D(fprintf(stderr, "%*c> _tmp_142[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression for_if_clauses"));
27671 expr_ty expression_var;
27672 asdl_comprehension_seq* for_if_clauses_var;
27673 if (
27674 (expression_var = expression_rule(p)) // expression
27675 &&
27676 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
27677 )
27678 {
27679 D(fprintf(stderr, "%*c+ _tmp_142[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression for_if_clauses"));
27680 _res = _PyPegen_dummy_name(p, expression_var, for_if_clauses_var);
27681 goto done;
27682 }
27683 p->mark = _mark;
27684 D(fprintf(stderr, "%*c%s _tmp_142[%d-%d]: %s failed!\n", p->level, ' ',
27685 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression for_if_clauses"));
27686 }
27687 _res = NULL;
27688 done:
27689 D(p->level--);
27690 return _res;
27691}
27692
Pablo Galindob86ed8e2021-04-12 16:59:30 +010027693// _tmp_143: '=' | ':=' | ','
27694static void *
27695_tmp_143_rule(Parser *p)
27696{
27697 D(p->level++);
27698 if (p->error_indicator) {
27699 D(p->level--);
27700 return NULL;
27701 }
27702 void * _res = NULL;
27703 int _mark = p->mark;
27704 { // '='
27705 if (p->error_indicator) {
27706 D(p->level--);
27707 return NULL;
27708 }
27709 D(fprintf(stderr, "%*c> _tmp_143[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'='"));
27710 Token * _literal;
27711 if (
27712 (_literal = _PyPegen_expect_token(p, 22)) // token='='
27713 )
27714 {
27715 D(fprintf(stderr, "%*c+ _tmp_143[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'='"));
27716 _res = _literal;
27717 goto done;
27718 }
27719 p->mark = _mark;
27720 D(fprintf(stderr, "%*c%s _tmp_143[%d-%d]: %s failed!\n", p->level, ' ',
27721 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'='"));
27722 }
27723 { // ':='
27724 if (p->error_indicator) {
27725 D(p->level--);
27726 return NULL;
27727 }
27728 D(fprintf(stderr, "%*c> _tmp_143[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':='"));
27729 Token * _literal;
27730 if (
27731 (_literal = _PyPegen_expect_token(p, 53)) // token=':='
27732 )
27733 {
27734 D(fprintf(stderr, "%*c+ _tmp_143[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':='"));
27735 _res = _literal;
27736 goto done;
27737 }
27738 p->mark = _mark;
27739 D(fprintf(stderr, "%*c%s _tmp_143[%d-%d]: %s failed!\n", p->level, ' ',
27740 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':='"));
27741 }
27742 { // ','
27743 if (p->error_indicator) {
27744 D(p->level--);
27745 return NULL;
27746 }
27747 D(fprintf(stderr, "%*c> _tmp_143[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','"));
27748 Token * _literal;
27749 if (
27750 (_literal = _PyPegen_expect_token(p, 12)) // token=','
27751 )
27752 {
27753 D(fprintf(stderr, "%*c+ _tmp_143[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','"));
27754 _res = _literal;
27755 goto done;
27756 }
27757 p->mark = _mark;
27758 D(fprintf(stderr, "%*c%s _tmp_143[%d-%d]: %s failed!\n", p->level, ' ',
27759 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','"));
27760 }
27761 _res = NULL;
27762 done:
27763 D(p->level--);
27764 return _res;
27765}
27766
27767// _tmp_144: list | tuple | genexp | 'True' | 'None' | 'False'
27768static void *
27769_tmp_144_rule(Parser *p)
27770{
27771 D(p->level++);
27772 if (p->error_indicator) {
27773 D(p->level--);
27774 return NULL;
27775 }
27776 void * _res = NULL;
27777 int _mark = p->mark;
27778 { // list
27779 if (p->error_indicator) {
27780 D(p->level--);
27781 return NULL;
27782 }
27783 D(fprintf(stderr, "%*c> _tmp_144[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "list"));
27784 expr_ty list_var;
27785 if (
27786 (list_var = list_rule(p)) // list
27787 )
27788 {
27789 D(fprintf(stderr, "%*c+ _tmp_144[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "list"));
27790 _res = list_var;
27791 goto done;
27792 }
27793 p->mark = _mark;
27794 D(fprintf(stderr, "%*c%s _tmp_144[%d-%d]: %s failed!\n", p->level, ' ',
27795 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "list"));
27796 }
27797 { // tuple
27798 if (p->error_indicator) {
27799 D(p->level--);
27800 return NULL;
27801 }
27802 D(fprintf(stderr, "%*c> _tmp_144[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "tuple"));
27803 expr_ty tuple_var;
27804 if (
27805 (tuple_var = tuple_rule(p)) // tuple
27806 )
27807 {
27808 D(fprintf(stderr, "%*c+ _tmp_144[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "tuple"));
27809 _res = tuple_var;
27810 goto done;
27811 }
27812 p->mark = _mark;
27813 D(fprintf(stderr, "%*c%s _tmp_144[%d-%d]: %s failed!\n", p->level, ' ',
27814 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "tuple"));
27815 }
27816 { // genexp
27817 if (p->error_indicator) {
27818 D(p->level--);
27819 return NULL;
27820 }
27821 D(fprintf(stderr, "%*c> _tmp_144[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "genexp"));
27822 expr_ty genexp_var;
27823 if (
27824 (genexp_var = genexp_rule(p)) // genexp
27825 )
27826 {
27827 D(fprintf(stderr, "%*c+ _tmp_144[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "genexp"));
27828 _res = genexp_var;
27829 goto done;
27830 }
27831 p->mark = _mark;
27832 D(fprintf(stderr, "%*c%s _tmp_144[%d-%d]: %s failed!\n", p->level, ' ',
27833 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "genexp"));
27834 }
27835 { // 'True'
27836 if (p->error_indicator) {
27837 D(p->level--);
27838 return NULL;
27839 }
27840 D(fprintf(stderr, "%*c> _tmp_144[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'"));
27841 Token * _keyword;
27842 if (
27843 (_keyword = _PyPegen_expect_token(p, 524)) // token='True'
27844 )
27845 {
27846 D(fprintf(stderr, "%*c+ _tmp_144[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'"));
27847 _res = _keyword;
27848 goto done;
27849 }
27850 p->mark = _mark;
27851 D(fprintf(stderr, "%*c%s _tmp_144[%d-%d]: %s failed!\n", p->level, ' ',
27852 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'True'"));
27853 }
27854 { // 'None'
27855 if (p->error_indicator) {
27856 D(p->level--);
27857 return NULL;
27858 }
27859 D(fprintf(stderr, "%*c> _tmp_144[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'"));
27860 Token * _keyword;
27861 if (
27862 (_keyword = _PyPegen_expect_token(p, 523)) // token='None'
27863 )
27864 {
27865 D(fprintf(stderr, "%*c+ _tmp_144[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'"));
27866 _res = _keyword;
27867 goto done;
27868 }
27869 p->mark = _mark;
27870 D(fprintf(stderr, "%*c%s _tmp_144[%d-%d]: %s failed!\n", p->level, ' ',
27871 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'None'"));
27872 }
27873 { // 'False'
27874 if (p->error_indicator) {
27875 D(p->level--);
27876 return NULL;
27877 }
27878 D(fprintf(stderr, "%*c> _tmp_144[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'"));
27879 Token * _keyword;
27880 if (
27881 (_keyword = _PyPegen_expect_token(p, 525)) // token='False'
27882 )
27883 {
27884 D(fprintf(stderr, "%*c+ _tmp_144[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'"));
27885 _res = _keyword;
27886 goto done;
27887 }
27888 p->mark = _mark;
27889 D(fprintf(stderr, "%*c%s _tmp_144[%d-%d]: %s failed!\n", p->level, ' ',
27890 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'False'"));
27891 }
27892 _res = NULL;
27893 done:
27894 D(p->level--);
27895 return _res;
27896}
27897
27898// _tmp_145: '=' | ':=' | ','
27899static void *
27900_tmp_145_rule(Parser *p)
27901{
27902 D(p->level++);
27903 if (p->error_indicator) {
27904 D(p->level--);
27905 return NULL;
27906 }
27907 void * _res = NULL;
27908 int _mark = p->mark;
27909 { // '='
27910 if (p->error_indicator) {
27911 D(p->level--);
27912 return NULL;
27913 }
27914 D(fprintf(stderr, "%*c> _tmp_145[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'='"));
27915 Token * _literal;
27916 if (
27917 (_literal = _PyPegen_expect_token(p, 22)) // token='='
27918 )
27919 {
27920 D(fprintf(stderr, "%*c+ _tmp_145[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'='"));
27921 _res = _literal;
27922 goto done;
27923 }
27924 p->mark = _mark;
27925 D(fprintf(stderr, "%*c%s _tmp_145[%d-%d]: %s failed!\n", p->level, ' ',
27926 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'='"));
27927 }
27928 { // ':='
27929 if (p->error_indicator) {
27930 D(p->level--);
27931 return NULL;
27932 }
27933 D(fprintf(stderr, "%*c> _tmp_145[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':='"));
27934 Token * _literal;
27935 if (
27936 (_literal = _PyPegen_expect_token(p, 53)) // token=':='
27937 )
27938 {
27939 D(fprintf(stderr, "%*c+ _tmp_145[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':='"));
27940 _res = _literal;
27941 goto done;
27942 }
27943 p->mark = _mark;
27944 D(fprintf(stderr, "%*c%s _tmp_145[%d-%d]: %s failed!\n", p->level, ' ',
27945 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':='"));
27946 }
27947 { // ','
27948 if (p->error_indicator) {
27949 D(p->level--);
27950 return NULL;
27951 }
27952 D(fprintf(stderr, "%*c> _tmp_145[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','"));
27953 Token * _literal;
27954 if (
27955 (_literal = _PyPegen_expect_token(p, 12)) // token=','
27956 )
27957 {
27958 D(fprintf(stderr, "%*c+ _tmp_145[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','"));
27959 _res = _literal;
27960 goto done;
27961 }
27962 p->mark = _mark;
27963 D(fprintf(stderr, "%*c%s _tmp_145[%d-%d]: %s failed!\n", p->level, ' ',
27964 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','"));
27965 }
27966 _res = NULL;
27967 done:
27968 D(p->level--);
27969 return _res;
27970}
27971
27972// _loop0_146: star_named_expressions
Pablo Galindo58fb1562021-02-02 19:54:22 +000027973static asdl_seq *
Pablo Galindob86ed8e2021-04-12 16:59:30 +010027974_loop0_146_rule(Parser *p)
Pablo Galindo58fb1562021-02-02 19:54:22 +000027975{
27976 D(p->level++);
27977 if (p->error_indicator) {
27978 D(p->level--);
27979 return NULL;
27980 }
27981 void *_res = NULL;
27982 int _mark = p->mark;
27983 int _start_mark = p->mark;
27984 void **_children = PyMem_Malloc(sizeof(void *));
27985 if (!_children) {
27986 p->error_indicator = 1;
27987 PyErr_NoMemory();
27988 D(p->level--);
27989 return NULL;
27990 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027991 Py_ssize_t _children_capacity = 1;
27992 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080027993 { // star_named_expressions
Pablo Galindo58fb1562021-02-02 19:54:22 +000027994 if (p->error_indicator) {
27995 D(p->level--);
27996 return NULL;
27997 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010027998 D(fprintf(stderr, "%*c> _loop0_146[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_named_expressions"));
Brandt Bucher145bf262021-02-26 14:51:55 -080027999 asdl_expr_seq* star_named_expressions_var;
28000 while (
28001 (star_named_expressions_var = star_named_expressions_rule(p)) // star_named_expressions
28002 )
28003 {
28004 _res = star_named_expressions_var;
28005 if (_n == _children_capacity) {
28006 _children_capacity *= 2;
28007 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28008 if (!_new_children) {
28009 p->error_indicator = 1;
28010 PyErr_NoMemory();
28011 D(p->level--);
28012 return NULL;
28013 }
28014 _children = _new_children;
28015 }
28016 _children[_n++] = _res;
28017 _mark = p->mark;
28018 }
28019 p->mark = _mark;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028020 D(fprintf(stderr, "%*c%s _loop0_146[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080028021 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expressions"));
28022 }
28023 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
28024 if (!_seq) {
28025 PyMem_Free(_children);
28026 p->error_indicator = 1;
28027 PyErr_NoMemory();
28028 D(p->level--);
28029 return NULL;
28030 }
28031 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
28032 PyMem_Free(_children);
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028033 _PyPegen_insert_memo(p, _start_mark, _loop0_146_type, _seq);
Brandt Bucher145bf262021-02-26 14:51:55 -080028034 D(p->level--);
28035 return _seq;
28036}
28037
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028038// _loop0_147: (star_targets '=')
Brandt Bucher145bf262021-02-26 14:51:55 -080028039static asdl_seq *
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028040_loop0_147_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080028041{
28042 D(p->level++);
28043 if (p->error_indicator) {
28044 D(p->level--);
28045 return NULL;
28046 }
28047 void *_res = NULL;
28048 int _mark = p->mark;
28049 int _start_mark = p->mark;
28050 void **_children = PyMem_Malloc(sizeof(void *));
28051 if (!_children) {
28052 p->error_indicator = 1;
28053 PyErr_NoMemory();
28054 D(p->level--);
28055 return NULL;
28056 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028057 Py_ssize_t _children_capacity = 1;
28058 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080028059 { // (star_targets '=')
28060 if (p->error_indicator) {
28061 D(p->level--);
28062 return NULL;
28063 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028064 D(fprintf(stderr, "%*c> _loop0_147[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')"));
28065 void *_tmp_178_var;
Brandt Bucher145bf262021-02-26 14:51:55 -080028066 while (
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028067 (_tmp_178_var = _tmp_178_rule(p)) // star_targets '='
Brandt Bucher145bf262021-02-26 14:51:55 -080028068 )
28069 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028070 _res = _tmp_178_var;
Brandt Bucher145bf262021-02-26 14:51:55 -080028071 if (_n == _children_capacity) {
28072 _children_capacity *= 2;
28073 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28074 if (!_new_children) {
28075 p->error_indicator = 1;
28076 PyErr_NoMemory();
28077 D(p->level--);
28078 return NULL;
28079 }
28080 _children = _new_children;
28081 }
28082 _children[_n++] = _res;
28083 _mark = p->mark;
28084 }
28085 p->mark = _mark;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028086 D(fprintf(stderr, "%*c%s _loop0_147[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080028087 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(star_targets '=')"));
28088 }
28089 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
28090 if (!_seq) {
28091 PyMem_Free(_children);
28092 p->error_indicator = 1;
28093 PyErr_NoMemory();
28094 D(p->level--);
28095 return NULL;
28096 }
28097 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
28098 PyMem_Free(_children);
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028099 _PyPegen_insert_memo(p, _start_mark, _loop0_147_type, _seq);
Brandt Bucher145bf262021-02-26 14:51:55 -080028100 D(p->level--);
28101 return _seq;
28102}
28103
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028104// _loop0_148: (star_targets '=')
Brandt Bucher145bf262021-02-26 14:51:55 -080028105static asdl_seq *
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028106_loop0_148_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080028107{
28108 D(p->level++);
28109 if (p->error_indicator) {
28110 D(p->level--);
28111 return NULL;
28112 }
28113 void *_res = NULL;
28114 int _mark = p->mark;
28115 int _start_mark = p->mark;
28116 void **_children = PyMem_Malloc(sizeof(void *));
28117 if (!_children) {
28118 p->error_indicator = 1;
28119 PyErr_NoMemory();
28120 D(p->level--);
28121 return NULL;
28122 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028123 Py_ssize_t _children_capacity = 1;
28124 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080028125 { // (star_targets '=')
28126 if (p->error_indicator) {
28127 D(p->level--);
28128 return NULL;
28129 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028130 D(fprintf(stderr, "%*c> _loop0_148[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')"));
28131 void *_tmp_179_var;
Brandt Bucher145bf262021-02-26 14:51:55 -080028132 while (
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028133 (_tmp_179_var = _tmp_179_rule(p)) // star_targets '='
Brandt Bucher145bf262021-02-26 14:51:55 -080028134 )
28135 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028136 _res = _tmp_179_var;
Brandt Bucher145bf262021-02-26 14:51:55 -080028137 if (_n == _children_capacity) {
28138 _children_capacity *= 2;
28139 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28140 if (!_new_children) {
28141 p->error_indicator = 1;
28142 PyErr_NoMemory();
28143 D(p->level--);
28144 return NULL;
28145 }
28146 _children = _new_children;
28147 }
28148 _children[_n++] = _res;
28149 _mark = p->mark;
28150 }
28151 p->mark = _mark;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028152 D(fprintf(stderr, "%*c%s _loop0_148[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080028153 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(star_targets '=')"));
28154 }
28155 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
28156 if (!_seq) {
28157 PyMem_Free(_children);
28158 p->error_indicator = 1;
28159 PyErr_NoMemory();
28160 D(p->level--);
28161 return NULL;
28162 }
28163 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
28164 PyMem_Free(_children);
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028165 _PyPegen_insert_memo(p, _start_mark, _loop0_148_type, _seq);
Brandt Bucher145bf262021-02-26 14:51:55 -080028166 D(p->level--);
28167 return _seq;
28168}
28169
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028170// _tmp_149: yield_expr | star_expressions
Brandt Bucher145bf262021-02-26 14:51:55 -080028171static void *
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028172_tmp_149_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080028173{
28174 D(p->level++);
28175 if (p->error_indicator) {
28176 D(p->level--);
28177 return NULL;
28178 }
28179 void * _res = NULL;
28180 int _mark = p->mark;
28181 { // yield_expr
28182 if (p->error_indicator) {
28183 D(p->level--);
28184 return NULL;
28185 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028186 D(fprintf(stderr, "%*c> _tmp_149[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
Brandt Bucher145bf262021-02-26 14:51:55 -080028187 expr_ty yield_expr_var;
28188 if (
28189 (yield_expr_var = yield_expr_rule(p)) // yield_expr
28190 )
28191 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028192 D(fprintf(stderr, "%*c+ _tmp_149[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
Brandt Bucher145bf262021-02-26 14:51:55 -080028193 _res = yield_expr_var;
28194 goto done;
28195 }
28196 p->mark = _mark;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028197 D(fprintf(stderr, "%*c%s _tmp_149[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080028198 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
28199 }
28200 { // star_expressions
28201 if (p->error_indicator) {
28202 D(p->level--);
28203 return NULL;
28204 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028205 D(fprintf(stderr, "%*c> _tmp_149[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
Brandt Bucher145bf262021-02-26 14:51:55 -080028206 expr_ty star_expressions_var;
28207 if (
28208 (star_expressions_var = star_expressions_rule(p)) // star_expressions
28209 )
28210 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028211 D(fprintf(stderr, "%*c+ _tmp_149[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
Brandt Bucher145bf262021-02-26 14:51:55 -080028212 _res = star_expressions_var;
28213 goto done;
28214 }
28215 p->mark = _mark;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028216 D(fprintf(stderr, "%*c%s _tmp_149[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080028217 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
28218 }
28219 _res = NULL;
28220 done:
28221 D(p->level--);
28222 return _res;
28223}
28224
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028225// _tmp_150: '[' | '(' | '{'
Brandt Bucher145bf262021-02-26 14:51:55 -080028226static void *
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028227_tmp_150_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080028228{
28229 D(p->level++);
28230 if (p->error_indicator) {
28231 D(p->level--);
28232 return NULL;
28233 }
28234 void * _res = NULL;
28235 int _mark = p->mark;
28236 { // '['
28237 if (p->error_indicator) {
28238 D(p->level--);
28239 return NULL;
28240 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028241 D(fprintf(stderr, "%*c> _tmp_150[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['"));
Brandt Bucher145bf262021-02-26 14:51:55 -080028242 Token * _literal;
28243 if (
28244 (_literal = _PyPegen_expect_token(p, 9)) // token='['
28245 )
28246 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028247 D(fprintf(stderr, "%*c+ _tmp_150[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['"));
Brandt Bucher145bf262021-02-26 14:51:55 -080028248 _res = _literal;
28249 goto done;
28250 }
28251 p->mark = _mark;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028252 D(fprintf(stderr, "%*c%s _tmp_150[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080028253 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['"));
28254 }
28255 { // '('
28256 if (p->error_indicator) {
28257 D(p->level--);
28258 return NULL;
28259 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028260 D(fprintf(stderr, "%*c> _tmp_150[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('"));
Brandt Bucher145bf262021-02-26 14:51:55 -080028261 Token * _literal;
28262 if (
28263 (_literal = _PyPegen_expect_token(p, 7)) // token='('
28264 )
28265 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028266 D(fprintf(stderr, "%*c+ _tmp_150[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('"));
Brandt Bucher145bf262021-02-26 14:51:55 -080028267 _res = _literal;
28268 goto done;
28269 }
28270 p->mark = _mark;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028271 D(fprintf(stderr, "%*c%s _tmp_150[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080028272 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('"));
28273 }
28274 { // '{'
28275 if (p->error_indicator) {
28276 D(p->level--);
28277 return NULL;
28278 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028279 D(fprintf(stderr, "%*c> _tmp_150[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{'"));
Brandt Bucher145bf262021-02-26 14:51:55 -080028280 Token * _literal;
28281 if (
28282 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
28283 )
28284 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028285 D(fprintf(stderr, "%*c+ _tmp_150[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{'"));
Brandt Bucher145bf262021-02-26 14:51:55 -080028286 _res = _literal;
28287 goto done;
28288 }
28289 p->mark = _mark;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028290 D(fprintf(stderr, "%*c%s _tmp_150[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080028291 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{'"));
28292 }
28293 _res = NULL;
28294 done:
28295 D(p->level--);
28296 return _res;
28297}
28298
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028299// _tmp_151: '[' | '{'
Brandt Bucher145bf262021-02-26 14:51:55 -080028300static void *
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028301_tmp_151_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080028302{
28303 D(p->level++);
28304 if (p->error_indicator) {
28305 D(p->level--);
28306 return NULL;
28307 }
28308 void * _res = NULL;
28309 int _mark = p->mark;
28310 { // '['
28311 if (p->error_indicator) {
28312 D(p->level--);
28313 return NULL;
28314 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028315 D(fprintf(stderr, "%*c> _tmp_151[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['"));
Brandt Bucher145bf262021-02-26 14:51:55 -080028316 Token * _literal;
28317 if (
28318 (_literal = _PyPegen_expect_token(p, 9)) // token='['
28319 )
28320 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028321 D(fprintf(stderr, "%*c+ _tmp_151[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['"));
Brandt Bucher145bf262021-02-26 14:51:55 -080028322 _res = _literal;
28323 goto done;
28324 }
28325 p->mark = _mark;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028326 D(fprintf(stderr, "%*c%s _tmp_151[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080028327 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['"));
28328 }
28329 { // '{'
28330 if (p->error_indicator) {
28331 D(p->level--);
28332 return NULL;
28333 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028334 D(fprintf(stderr, "%*c> _tmp_151[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{'"));
Brandt Bucher145bf262021-02-26 14:51:55 -080028335 Token * _literal;
28336 if (
28337 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
28338 )
28339 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028340 D(fprintf(stderr, "%*c+ _tmp_151[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{'"));
Brandt Bucher145bf262021-02-26 14:51:55 -080028341 _res = _literal;
28342 goto done;
28343 }
28344 p->mark = _mark;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028345 D(fprintf(stderr, "%*c%s _tmp_151[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080028346 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{'"));
28347 }
28348 _res = NULL;
28349 done:
28350 D(p->level--);
28351 return _res;
28352}
28353
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028354// _loop0_152: param_no_default
Brandt Bucher145bf262021-02-26 14:51:55 -080028355static asdl_seq *
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028356_loop0_152_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080028357{
28358 D(p->level++);
28359 if (p->error_indicator) {
28360 D(p->level--);
28361 return NULL;
28362 }
28363 void *_res = NULL;
28364 int _mark = p->mark;
28365 int _start_mark = p->mark;
28366 void **_children = PyMem_Malloc(sizeof(void *));
28367 if (!_children) {
28368 p->error_indicator = 1;
28369 PyErr_NoMemory();
28370 D(p->level--);
28371 return NULL;
28372 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028373 Py_ssize_t _children_capacity = 1;
28374 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080028375 { // param_no_default
28376 if (p->error_indicator) {
28377 D(p->level--);
28378 return NULL;
28379 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028380 D(fprintf(stderr, "%*c> _loop0_152[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default"));
Brandt Bucher145bf262021-02-26 14:51:55 -080028381 arg_ty param_no_default_var;
28382 while (
28383 (param_no_default_var = param_no_default_rule(p)) // param_no_default
28384 )
28385 {
28386 _res = param_no_default_var;
28387 if (_n == _children_capacity) {
28388 _children_capacity *= 2;
28389 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28390 if (!_new_children) {
28391 p->error_indicator = 1;
28392 PyErr_NoMemory();
28393 D(p->level--);
28394 return NULL;
28395 }
28396 _children = _new_children;
28397 }
28398 _children[_n++] = _res;
28399 _mark = p->mark;
28400 }
28401 p->mark = _mark;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028402 D(fprintf(stderr, "%*c%s _loop0_152[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080028403 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
28404 }
28405 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
28406 if (!_seq) {
28407 PyMem_Free(_children);
28408 p->error_indicator = 1;
28409 PyErr_NoMemory();
28410 D(p->level--);
28411 return NULL;
28412 }
28413 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
28414 PyMem_Free(_children);
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028415 _PyPegen_insert_memo(p, _start_mark, _loop0_152_type, _seq);
Brandt Bucher145bf262021-02-26 14:51:55 -080028416 D(p->level--);
28417 return _seq;
28418}
28419
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028420// _loop1_153: param_with_default
Brandt Bucher145bf262021-02-26 14:51:55 -080028421static asdl_seq *
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028422_loop1_153_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080028423{
28424 D(p->level++);
28425 if (p->error_indicator) {
28426 D(p->level--);
28427 return NULL;
28428 }
28429 void *_res = NULL;
28430 int _mark = p->mark;
28431 int _start_mark = p->mark;
28432 void **_children = PyMem_Malloc(sizeof(void *));
28433 if (!_children) {
28434 p->error_indicator = 1;
28435 PyErr_NoMemory();
28436 D(p->level--);
28437 return NULL;
28438 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028439 Py_ssize_t _children_capacity = 1;
28440 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080028441 { // param_with_default
28442 if (p->error_indicator) {
28443 D(p->level--);
28444 return NULL;
28445 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028446 D(fprintf(stderr, "%*c> _loop1_153[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default"));
Brandt Bucher145bf262021-02-26 14:51:55 -080028447 NameDefaultPair* param_with_default_var;
28448 while (
28449 (param_with_default_var = param_with_default_rule(p)) // param_with_default
28450 )
28451 {
28452 _res = param_with_default_var;
28453 if (_n == _children_capacity) {
28454 _children_capacity *= 2;
28455 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28456 if (!_new_children) {
28457 p->error_indicator = 1;
28458 PyErr_NoMemory();
28459 D(p->level--);
28460 return NULL;
28461 }
28462 _children = _new_children;
28463 }
28464 _children[_n++] = _res;
28465 _mark = p->mark;
28466 }
28467 p->mark = _mark;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028468 D(fprintf(stderr, "%*c%s _loop1_153[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080028469 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
28470 }
28471 if (_n == 0 || p->error_indicator) {
28472 PyMem_Free(_children);
28473 D(p->level--);
28474 return NULL;
28475 }
28476 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
28477 if (!_seq) {
28478 PyMem_Free(_children);
28479 p->error_indicator = 1;
28480 PyErr_NoMemory();
28481 D(p->level--);
28482 return NULL;
28483 }
28484 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
28485 PyMem_Free(_children);
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028486 _PyPegen_insert_memo(p, _start_mark, _loop1_153_type, _seq);
Brandt Bucher145bf262021-02-26 14:51:55 -080028487 D(p->level--);
28488 return _seq;
28489}
28490
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028491// _loop0_154: lambda_param_no_default
Brandt Bucher145bf262021-02-26 14:51:55 -080028492static asdl_seq *
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028493_loop0_154_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080028494{
28495 D(p->level++);
28496 if (p->error_indicator) {
28497 D(p->level--);
28498 return NULL;
28499 }
28500 void *_res = NULL;
28501 int _mark = p->mark;
28502 int _start_mark = p->mark;
28503 void **_children = PyMem_Malloc(sizeof(void *));
28504 if (!_children) {
28505 p->error_indicator = 1;
28506 PyErr_NoMemory();
28507 D(p->level--);
28508 return NULL;
28509 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028510 Py_ssize_t _children_capacity = 1;
28511 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080028512 { // lambda_param_no_default
28513 if (p->error_indicator) {
28514 D(p->level--);
28515 return NULL;
28516 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028517 D(fprintf(stderr, "%*c> _loop0_154[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
Brandt Bucher145bf262021-02-26 14:51:55 -080028518 arg_ty lambda_param_no_default_var;
28519 while (
28520 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
28521 )
28522 {
28523 _res = lambda_param_no_default_var;
28524 if (_n == _children_capacity) {
28525 _children_capacity *= 2;
28526 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28527 if (!_new_children) {
28528 p->error_indicator = 1;
28529 PyErr_NoMemory();
28530 D(p->level--);
28531 return NULL;
28532 }
28533 _children = _new_children;
28534 }
28535 _children[_n++] = _res;
28536 _mark = p->mark;
28537 }
28538 p->mark = _mark;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028539 D(fprintf(stderr, "%*c%s _loop0_154[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080028540 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
28541 }
28542 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
28543 if (!_seq) {
28544 PyMem_Free(_children);
28545 p->error_indicator = 1;
28546 PyErr_NoMemory();
28547 D(p->level--);
28548 return NULL;
28549 }
28550 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
28551 PyMem_Free(_children);
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028552 _PyPegen_insert_memo(p, _start_mark, _loop0_154_type, _seq);
Brandt Bucher145bf262021-02-26 14:51:55 -080028553 D(p->level--);
28554 return _seq;
28555}
28556
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028557// _loop1_155: lambda_param_with_default
Brandt Bucher145bf262021-02-26 14:51:55 -080028558static asdl_seq *
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028559_loop1_155_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080028560{
28561 D(p->level++);
28562 if (p->error_indicator) {
28563 D(p->level--);
28564 return NULL;
28565 }
28566 void *_res = NULL;
28567 int _mark = p->mark;
28568 int _start_mark = p->mark;
28569 void **_children = PyMem_Malloc(sizeof(void *));
28570 if (!_children) {
28571 p->error_indicator = 1;
28572 PyErr_NoMemory();
28573 D(p->level--);
28574 return NULL;
28575 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028576 Py_ssize_t _children_capacity = 1;
28577 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080028578 { // lambda_param_with_default
28579 if (p->error_indicator) {
28580 D(p->level--);
28581 return NULL;
28582 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028583 D(fprintf(stderr, "%*c> _loop1_155[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default"));
Brandt Bucher145bf262021-02-26 14:51:55 -080028584 NameDefaultPair* lambda_param_with_default_var;
28585 while (
28586 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
28587 )
28588 {
28589 _res = lambda_param_with_default_var;
28590 if (_n == _children_capacity) {
28591 _children_capacity *= 2;
28592 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28593 if (!_new_children) {
28594 p->error_indicator = 1;
28595 PyErr_NoMemory();
28596 D(p->level--);
28597 return NULL;
28598 }
28599 _children = _new_children;
28600 }
28601 _children[_n++] = _res;
28602 _mark = p->mark;
28603 }
28604 p->mark = _mark;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028605 D(fprintf(stderr, "%*c%s _loop1_155[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080028606 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
28607 }
28608 if (_n == 0 || p->error_indicator) {
28609 PyMem_Free(_children);
28610 D(p->level--);
28611 return NULL;
28612 }
28613 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
28614 if (!_seq) {
28615 PyMem_Free(_children);
28616 p->error_indicator = 1;
28617 PyErr_NoMemory();
28618 D(p->level--);
28619 return NULL;
28620 }
28621 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
28622 PyMem_Free(_children);
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028623 _PyPegen_insert_memo(p, _start_mark, _loop1_155_type, _seq);
Brandt Bucher145bf262021-02-26 14:51:55 -080028624 D(p->level--);
28625 return _seq;
28626}
28627
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028628// _tmp_156: ')' | ',' (')' | '**')
Brandt Bucher145bf262021-02-26 14:51:55 -080028629static void *
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028630_tmp_156_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080028631{
28632 D(p->level++);
28633 if (p->error_indicator) {
28634 D(p->level--);
28635 return NULL;
28636 }
28637 void * _res = NULL;
28638 int _mark = p->mark;
28639 { // ')'
28640 if (p->error_indicator) {
28641 D(p->level--);
28642 return NULL;
28643 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028644 D(fprintf(stderr, "%*c> _tmp_156[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
Brandt Bucher145bf262021-02-26 14:51:55 -080028645 Token * _literal;
28646 if (
28647 (_literal = _PyPegen_expect_token(p, 8)) // token=')'
28648 )
28649 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028650 D(fprintf(stderr, "%*c+ _tmp_156[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
Brandt Bucher145bf262021-02-26 14:51:55 -080028651 _res = _literal;
28652 goto done;
28653 }
28654 p->mark = _mark;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028655 D(fprintf(stderr, "%*c%s _tmp_156[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080028656 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
28657 }
28658 { // ',' (')' | '**')
28659 if (p->error_indicator) {
28660 D(p->level--);
28661 return NULL;
28662 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028663 D(fprintf(stderr, "%*c> _tmp_156[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (')' | '**')"));
Brandt Bucher145bf262021-02-26 14:51:55 -080028664 Token * _literal;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028665 void *_tmp_180_var;
Brandt Bucher145bf262021-02-26 14:51:55 -080028666 if (
28667 (_literal = _PyPegen_expect_token(p, 12)) // token=','
28668 &&
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028669 (_tmp_180_var = _tmp_180_rule(p)) // ')' | '**'
Brandt Bucher145bf262021-02-26 14:51:55 -080028670 )
28671 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028672 D(fprintf(stderr, "%*c+ _tmp_156[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' (')' | '**')"));
28673 _res = _PyPegen_dummy_name(p, _literal, _tmp_180_var);
Brandt Bucher145bf262021-02-26 14:51:55 -080028674 goto done;
28675 }
28676 p->mark = _mark;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028677 D(fprintf(stderr, "%*c%s _tmp_156[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080028678 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (')' | '**')"));
28679 }
28680 _res = NULL;
28681 done:
28682 D(p->level--);
28683 return _res;
28684}
28685
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028686// _tmp_157: ':' | ',' (':' | '**')
Brandt Bucher145bf262021-02-26 14:51:55 -080028687static void *
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028688_tmp_157_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080028689{
28690 D(p->level++);
28691 if (p->error_indicator) {
28692 D(p->level--);
28693 return NULL;
28694 }
28695 void * _res = NULL;
28696 int _mark = p->mark;
28697 { // ':'
28698 if (p->error_indicator) {
28699 D(p->level--);
28700 return NULL;
28701 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028702 D(fprintf(stderr, "%*c> _tmp_157[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
Brandt Bucher145bf262021-02-26 14:51:55 -080028703 Token * _literal;
28704 if (
28705 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
28706 )
28707 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028708 D(fprintf(stderr, "%*c+ _tmp_157[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
Brandt Bucher145bf262021-02-26 14:51:55 -080028709 _res = _literal;
28710 goto done;
28711 }
28712 p->mark = _mark;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028713 D(fprintf(stderr, "%*c%s _tmp_157[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080028714 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
28715 }
28716 { // ',' (':' | '**')
28717 if (p->error_indicator) {
28718 D(p->level--);
28719 return NULL;
28720 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028721 D(fprintf(stderr, "%*c> _tmp_157[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (':' | '**')"));
Brandt Bucher145bf262021-02-26 14:51:55 -080028722 Token * _literal;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028723 void *_tmp_181_var;
Brandt Bucher145bf262021-02-26 14:51:55 -080028724 if (
28725 (_literal = _PyPegen_expect_token(p, 12)) // token=','
28726 &&
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028727 (_tmp_181_var = _tmp_181_rule(p)) // ':' | '**'
Brandt Bucher145bf262021-02-26 14:51:55 -080028728 )
28729 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028730 D(fprintf(stderr, "%*c+ _tmp_157[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' (':' | '**')"));
28731 _res = _PyPegen_dummy_name(p, _literal, _tmp_181_var);
Brandt Bucher145bf262021-02-26 14:51:55 -080028732 goto done;
28733 }
28734 p->mark = _mark;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028735 D(fprintf(stderr, "%*c%s _tmp_157[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080028736 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (':' | '**')"));
28737 }
28738 _res = NULL;
28739 done:
28740 D(p->level--);
28741 return _res;
28742}
28743
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028744// _tmp_158: ',' | ')' | ':'
Brandt Bucher145bf262021-02-26 14:51:55 -080028745static void *
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028746_tmp_158_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080028747{
28748 D(p->level++);
28749 if (p->error_indicator) {
28750 D(p->level--);
28751 return NULL;
28752 }
28753 void * _res = NULL;
28754 int _mark = p->mark;
28755 { // ','
28756 if (p->error_indicator) {
28757 D(p->level--);
28758 return NULL;
28759 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028760 D(fprintf(stderr, "%*c> _tmp_158[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','"));
Brandt Bucher145bf262021-02-26 14:51:55 -080028761 Token * _literal;
28762 if (
28763 (_literal = _PyPegen_expect_token(p, 12)) // token=','
28764 )
28765 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028766 D(fprintf(stderr, "%*c+ _tmp_158[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','"));
Brandt Bucher145bf262021-02-26 14:51:55 -080028767 _res = _literal;
28768 goto done;
28769 }
28770 p->mark = _mark;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028771 D(fprintf(stderr, "%*c%s _tmp_158[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080028772 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','"));
28773 }
28774 { // ')'
28775 if (p->error_indicator) {
28776 D(p->level--);
28777 return NULL;
28778 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028779 D(fprintf(stderr, "%*c> _tmp_158[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
Brandt Bucher145bf262021-02-26 14:51:55 -080028780 Token * _literal;
28781 if (
28782 (_literal = _PyPegen_expect_token(p, 8)) // token=')'
28783 )
28784 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028785 D(fprintf(stderr, "%*c+ _tmp_158[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
Brandt Bucher145bf262021-02-26 14:51:55 -080028786 _res = _literal;
28787 goto done;
28788 }
28789 p->mark = _mark;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028790 D(fprintf(stderr, "%*c%s _tmp_158[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080028791 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
28792 }
28793 { // ':'
28794 if (p->error_indicator) {
28795 D(p->level--);
28796 return NULL;
28797 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028798 D(fprintf(stderr, "%*c> _tmp_158[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
Brandt Bucher145bf262021-02-26 14:51:55 -080028799 Token * _literal;
28800 if (
28801 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
28802 )
28803 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028804 D(fprintf(stderr, "%*c+ _tmp_158[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
Brandt Bucher145bf262021-02-26 14:51:55 -080028805 _res = _literal;
28806 goto done;
28807 }
28808 p->mark = _mark;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028809 D(fprintf(stderr, "%*c%s _tmp_158[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080028810 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
28811 }
28812 _res = NULL;
28813 done:
28814 D(p->level--);
28815 return _res;
28816}
28817
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028818// _loop0_160: ',' (expression ['as' star_target])
Brandt Bucher145bf262021-02-26 14:51:55 -080028819static asdl_seq *
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028820_loop0_160_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080028821{
28822 D(p->level++);
28823 if (p->error_indicator) {
28824 D(p->level--);
28825 return NULL;
28826 }
28827 void *_res = NULL;
28828 int _mark = p->mark;
28829 int _start_mark = p->mark;
28830 void **_children = PyMem_Malloc(sizeof(void *));
28831 if (!_children) {
28832 p->error_indicator = 1;
28833 PyErr_NoMemory();
28834 D(p->level--);
28835 return NULL;
28836 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028837 Py_ssize_t _children_capacity = 1;
28838 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080028839 { // ',' (expression ['as' star_target])
28840 if (p->error_indicator) {
28841 D(p->level--);
28842 return NULL;
28843 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028844 D(fprintf(stderr, "%*c> _loop0_160[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (expression ['as' star_target])"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000028845 Token * _literal;
28846 void *elem;
28847 while (
28848 (_literal = _PyPegen_expect_token(p, 12)) // token=','
28849 &&
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028850 (elem = _tmp_182_rule(p)) // expression ['as' star_target]
Pablo Galindo58fb1562021-02-02 19:54:22 +000028851 )
28852 {
28853 _res = elem;
28854 if (_res == NULL && PyErr_Occurred()) {
28855 p->error_indicator = 1;
28856 PyMem_Free(_children);
28857 D(p->level--);
28858 return NULL;
28859 }
28860 if (_n == _children_capacity) {
28861 _children_capacity *= 2;
28862 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28863 if (!_new_children) {
28864 p->error_indicator = 1;
28865 PyErr_NoMemory();
28866 D(p->level--);
28867 return NULL;
28868 }
28869 _children = _new_children;
28870 }
28871 _children[_n++] = _res;
28872 _mark = p->mark;
28873 }
28874 p->mark = _mark;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028875 D(fprintf(stderr, "%*c%s _loop0_160[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080028876 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (expression ['as' star_target])"));
28877 }
28878 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
28879 if (!_seq) {
28880 PyMem_Free(_children);
28881 p->error_indicator = 1;
28882 PyErr_NoMemory();
28883 D(p->level--);
28884 return NULL;
28885 }
28886 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
28887 PyMem_Free(_children);
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028888 _PyPegen_insert_memo(p, _start_mark, _loop0_160_type, _seq);
Brandt Bucher145bf262021-02-26 14:51:55 -080028889 D(p->level--);
28890 return _seq;
28891}
28892
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028893// _gather_159: (expression ['as' star_target]) _loop0_160
Brandt Bucher145bf262021-02-26 14:51:55 -080028894static asdl_seq *
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028895_gather_159_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080028896{
28897 D(p->level++);
28898 if (p->error_indicator) {
28899 D(p->level--);
28900 return NULL;
28901 }
28902 asdl_seq * _res = NULL;
28903 int _mark = p->mark;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028904 { // (expression ['as' star_target]) _loop0_160
Brandt Bucher145bf262021-02-26 14:51:55 -080028905 if (p->error_indicator) {
28906 D(p->level--);
28907 return NULL;
28908 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028909 D(fprintf(stderr, "%*c> _gather_159[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(expression ['as' star_target]) _loop0_160"));
Brandt Bucher145bf262021-02-26 14:51:55 -080028910 void *elem;
28911 asdl_seq * seq;
28912 if (
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028913 (elem = _tmp_182_rule(p)) // expression ['as' star_target]
Brandt Bucher145bf262021-02-26 14:51:55 -080028914 &&
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028915 (seq = _loop0_160_rule(p)) // _loop0_160
Brandt Bucher145bf262021-02-26 14:51:55 -080028916 )
28917 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028918 D(fprintf(stderr, "%*c+ _gather_159[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(expression ['as' star_target]) _loop0_160"));
Brandt Bucher145bf262021-02-26 14:51:55 -080028919 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
28920 goto done;
28921 }
28922 p->mark = _mark;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028923 D(fprintf(stderr, "%*c%s _gather_159[%d-%d]: %s failed!\n", p->level, ' ',
28924 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expression ['as' star_target]) _loop0_160"));
Brandt Bucher145bf262021-02-26 14:51:55 -080028925 }
28926 _res = NULL;
28927 done:
28928 D(p->level--);
28929 return _res;
28930}
28931
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028932// _loop0_162: ',' (expressions ['as' star_target])
Brandt Bucher145bf262021-02-26 14:51:55 -080028933static asdl_seq *
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028934_loop0_162_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080028935{
28936 D(p->level++);
28937 if (p->error_indicator) {
28938 D(p->level--);
28939 return NULL;
28940 }
28941 void *_res = NULL;
28942 int _mark = p->mark;
28943 int _start_mark = p->mark;
28944 void **_children = PyMem_Malloc(sizeof(void *));
28945 if (!_children) {
28946 p->error_indicator = 1;
28947 PyErr_NoMemory();
28948 D(p->level--);
28949 return NULL;
28950 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028951 Py_ssize_t _children_capacity = 1;
28952 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080028953 { // ',' (expressions ['as' star_target])
28954 if (p->error_indicator) {
28955 D(p->level--);
28956 return NULL;
28957 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028958 D(fprintf(stderr, "%*c> _loop0_162[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (expressions ['as' star_target])"));
Brandt Bucher145bf262021-02-26 14:51:55 -080028959 Token * _literal;
28960 void *elem;
28961 while (
28962 (_literal = _PyPegen_expect_token(p, 12)) // token=','
28963 &&
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028964 (elem = _tmp_183_rule(p)) // expressions ['as' star_target]
Brandt Bucher145bf262021-02-26 14:51:55 -080028965 )
28966 {
28967 _res = elem;
28968 if (_res == NULL && PyErr_Occurred()) {
28969 p->error_indicator = 1;
28970 PyMem_Free(_children);
28971 D(p->level--);
28972 return NULL;
28973 }
28974 if (_n == _children_capacity) {
28975 _children_capacity *= 2;
28976 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28977 if (!_new_children) {
28978 p->error_indicator = 1;
28979 PyErr_NoMemory();
28980 D(p->level--);
28981 return NULL;
28982 }
28983 _children = _new_children;
28984 }
28985 _children[_n++] = _res;
28986 _mark = p->mark;
28987 }
28988 p->mark = _mark;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028989 D(fprintf(stderr, "%*c%s _loop0_162[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +000028990 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (expressions ['as' star_target])"));
28991 }
28992 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
28993 if (!_seq) {
28994 PyMem_Free(_children);
28995 p->error_indicator = 1;
28996 PyErr_NoMemory();
28997 D(p->level--);
28998 return NULL;
28999 }
29000 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
29001 PyMem_Free(_children);
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029002 _PyPegen_insert_memo(p, _start_mark, _loop0_162_type, _seq);
Pablo Galindo58fb1562021-02-02 19:54:22 +000029003 D(p->level--);
29004 return _seq;
29005}
29006
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029007// _gather_161: (expressions ['as' star_target]) _loop0_162
Pablo Galindo58fb1562021-02-02 19:54:22 +000029008static asdl_seq *
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029009_gather_161_rule(Parser *p)
Pablo Galindo58fb1562021-02-02 19:54:22 +000029010{
29011 D(p->level++);
29012 if (p->error_indicator) {
29013 D(p->level--);
29014 return NULL;
29015 }
29016 asdl_seq * _res = NULL;
29017 int _mark = p->mark;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029018 { // (expressions ['as' star_target]) _loop0_162
Pablo Galindo58fb1562021-02-02 19:54:22 +000029019 if (p->error_indicator) {
29020 D(p->level--);
29021 return NULL;
29022 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029023 D(fprintf(stderr, "%*c> _gather_161[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(expressions ['as' star_target]) _loop0_162"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000029024 void *elem;
29025 asdl_seq * seq;
29026 if (
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029027 (elem = _tmp_183_rule(p)) // expressions ['as' star_target]
Pablo Galindo58fb1562021-02-02 19:54:22 +000029028 &&
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029029 (seq = _loop0_162_rule(p)) // _loop0_162
Pablo Galindo58fb1562021-02-02 19:54:22 +000029030 )
29031 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029032 D(fprintf(stderr, "%*c+ _gather_161[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(expressions ['as' star_target]) _loop0_162"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000029033 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
29034 goto done;
29035 }
29036 p->mark = _mark;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029037 D(fprintf(stderr, "%*c%s _gather_161[%d-%d]: %s failed!\n", p->level, ' ',
29038 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expressions ['as' star_target]) _loop0_162"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000029039 }
29040 _res = NULL;
29041 done:
29042 D(p->level--);
29043 return _res;
29044}
29045
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029046// _tmp_163: 'as' NAME
Pablo Galindo58fb1562021-02-02 19:54:22 +000029047static void *
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029048_tmp_163_rule(Parser *p)
Pablo Galindo58fb1562021-02-02 19:54:22 +000029049{
29050 D(p->level++);
29051 if (p->error_indicator) {
29052 D(p->level--);
29053 return NULL;
29054 }
29055 void * _res = NULL;
29056 int _mark = p->mark;
Pablo Galindo206cbda2021-02-07 18:42:21 +000029057 { // 'as' NAME
29058 if (p->error_indicator) {
29059 D(p->level--);
29060 return NULL;
29061 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029062 D(fprintf(stderr, "%*c> _tmp_163[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000029063 Token * _keyword;
29064 expr_ty name_var;
29065 if (
29066 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
29067 &&
29068 (name_var = _PyPegen_name_token(p)) // NAME
29069 )
29070 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029071 D(fprintf(stderr, "%*c+ _tmp_163[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000029072 _res = _PyPegen_dummy_name(p, _keyword, name_var);
29073 goto done;
29074 }
29075 p->mark = _mark;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029076 D(fprintf(stderr, "%*c%s _tmp_163[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo206cbda2021-02-07 18:42:21 +000029077 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
29078 }
29079 _res = NULL;
29080 done:
29081 D(p->level--);
29082 return _res;
29083}
29084
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029085// _tmp_164: 'as' NAME
Pablo Galindo206cbda2021-02-07 18:42:21 +000029086static void *
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029087_tmp_164_rule(Parser *p)
Pablo Galindo206cbda2021-02-07 18:42:21 +000029088{
29089 D(p->level++);
29090 if (p->error_indicator) {
29091 D(p->level--);
29092 return NULL;
29093 }
29094 void * _res = NULL;
29095 int _mark = p->mark;
29096 { // 'as' NAME
29097 if (p->error_indicator) {
29098 D(p->level--);
29099 return NULL;
29100 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029101 D(fprintf(stderr, "%*c> _tmp_164[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000029102 Token * _keyword;
29103 expr_ty name_var;
29104 if (
29105 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
29106 &&
29107 (name_var = _PyPegen_name_token(p)) // NAME
29108 )
29109 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029110 D(fprintf(stderr, "%*c+ _tmp_164[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000029111 _res = _PyPegen_dummy_name(p, _keyword, name_var);
29112 goto done;
29113 }
29114 p->mark = _mark;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029115 D(fprintf(stderr, "%*c%s _tmp_164[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo206cbda2021-02-07 18:42:21 +000029116 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
29117 }
29118 _res = NULL;
29119 done:
29120 D(p->level--);
29121 return _res;
29122}
29123
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029124// _tmp_165: star_targets '='
Pablo Galindo206cbda2021-02-07 18:42:21 +000029125static void *
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029126_tmp_165_rule(Parser *p)
Pablo Galindo206cbda2021-02-07 18:42:21 +000029127{
29128 D(p->level++);
29129 if (p->error_indicator) {
29130 D(p->level--);
29131 return NULL;
29132 }
29133 void * _res = NULL;
29134 int _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029135 { // star_targets '='
29136 if (p->error_indicator) {
29137 D(p->level--);
29138 return NULL;
29139 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029140 D(fprintf(stderr, "%*c> _tmp_165[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029141 Token * _literal;
29142 expr_ty z;
29143 if (
29144 (z = star_targets_rule(p)) // star_targets
29145 &&
29146 (_literal = _PyPegen_expect_token(p, 22)) // token='='
29147 )
29148 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029149 D(fprintf(stderr, "%*c+ _tmp_165[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029150 _res = z;
29151 if (_res == NULL && PyErr_Occurred()) {
29152 p->error_indicator = 1;
29153 D(p->level--);
29154 return NULL;
29155 }
29156 goto done;
29157 }
29158 p->mark = _mark;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029159 D(fprintf(stderr, "%*c%s _tmp_165[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029160 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='"));
29161 }
29162 _res = NULL;
29163 done:
29164 D(p->level--);
29165 return _res;
29166}
29167
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029168// _tmp_166: '.' | '...'
Pablo Galindo835f14f2021-01-31 22:52:56 +000029169static void *
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029170_tmp_166_rule(Parser *p)
Pablo Galindo835f14f2021-01-31 22:52:56 +000029171{
29172 D(p->level++);
29173 if (p->error_indicator) {
29174 D(p->level--);
29175 return NULL;
29176 }
29177 void * _res = NULL;
29178 int _mark = p->mark;
Pablo Galindo206cbda2021-02-07 18:42:21 +000029179 { // '.'
29180 if (p->error_indicator) {
29181 D(p->level--);
29182 return NULL;
29183 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029184 D(fprintf(stderr, "%*c> _tmp_166[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000029185 Token * _literal;
29186 if (
29187 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
29188 )
29189 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029190 D(fprintf(stderr, "%*c+ _tmp_166[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000029191 _res = _literal;
29192 goto done;
29193 }
29194 p->mark = _mark;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029195 D(fprintf(stderr, "%*c%s _tmp_166[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo206cbda2021-02-07 18:42:21 +000029196 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
29197 }
29198 { // '...'
29199 if (p->error_indicator) {
29200 D(p->level--);
29201 return NULL;
29202 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029203 D(fprintf(stderr, "%*c> _tmp_166[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000029204 Token * _literal;
29205 if (
29206 (_literal = _PyPegen_expect_token(p, 52)) // token='...'
29207 )
29208 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029209 D(fprintf(stderr, "%*c+ _tmp_166[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000029210 _res = _literal;
29211 goto done;
29212 }
29213 p->mark = _mark;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029214 D(fprintf(stderr, "%*c%s _tmp_166[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo206cbda2021-02-07 18:42:21 +000029215 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'"));
29216 }
29217 _res = NULL;
29218 done:
29219 D(p->level--);
29220 return _res;
29221}
29222
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029223// _tmp_167: '.' | '...'
Pablo Galindo206cbda2021-02-07 18:42:21 +000029224static void *
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029225_tmp_167_rule(Parser *p)
Pablo Galindo206cbda2021-02-07 18:42:21 +000029226{
29227 D(p->level++);
29228 if (p->error_indicator) {
29229 D(p->level--);
29230 return NULL;
29231 }
29232 void * _res = NULL;
29233 int _mark = p->mark;
29234 { // '.'
29235 if (p->error_indicator) {
29236 D(p->level--);
29237 return NULL;
29238 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029239 D(fprintf(stderr, "%*c> _tmp_167[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000029240 Token * _literal;
29241 if (
29242 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
29243 )
29244 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029245 D(fprintf(stderr, "%*c+ _tmp_167[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000029246 _res = _literal;
29247 goto done;
29248 }
29249 p->mark = _mark;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029250 D(fprintf(stderr, "%*c%s _tmp_167[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo206cbda2021-02-07 18:42:21 +000029251 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
29252 }
29253 { // '...'
29254 if (p->error_indicator) {
29255 D(p->level--);
29256 return NULL;
29257 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029258 D(fprintf(stderr, "%*c> _tmp_167[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000029259 Token * _literal;
29260 if (
29261 (_literal = _PyPegen_expect_token(p, 52)) // token='...'
29262 )
29263 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029264 D(fprintf(stderr, "%*c+ _tmp_167[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000029265 _res = _literal;
29266 goto done;
29267 }
29268 p->mark = _mark;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029269 D(fprintf(stderr, "%*c%s _tmp_167[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo206cbda2021-02-07 18:42:21 +000029270 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'"));
29271 }
29272 _res = NULL;
29273 done:
29274 D(p->level--);
29275 return _res;
29276}
29277
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029278// _tmp_168: '@' named_expression NEWLINE
Pablo Galindo206cbda2021-02-07 18:42:21 +000029279static void *
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029280_tmp_168_rule(Parser *p)
Pablo Galindo206cbda2021-02-07 18:42:21 +000029281{
29282 D(p->level++);
29283 if (p->error_indicator) {
29284 D(p->level--);
29285 return NULL;
29286 }
29287 void * _res = NULL;
29288 int _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029289 { // '@' named_expression NEWLINE
29290 if (p->error_indicator) {
29291 D(p->level--);
29292 return NULL;
29293 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029294 D(fprintf(stderr, "%*c> _tmp_168[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@' named_expression NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029295 Token * _literal;
29296 expr_ty f;
29297 Token * newline_var;
29298 if (
29299 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
29300 &&
29301 (f = named_expression_rule(p)) // named_expression
29302 &&
29303 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
29304 )
29305 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029306 D(fprintf(stderr, "%*c+ _tmp_168[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@' named_expression NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029307 _res = f;
29308 if (_res == NULL && PyErr_Occurred()) {
29309 p->error_indicator = 1;
29310 D(p->level--);
29311 return NULL;
29312 }
29313 goto done;
29314 }
29315 p->mark = _mark;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029316 D(fprintf(stderr, "%*c%s _tmp_168[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029317 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@' named_expression NEWLINE"));
29318 }
29319 _res = NULL;
29320 done:
29321 D(p->level--);
29322 return _res;
29323}
29324
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029325// _tmp_169: ',' star_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029326static void *
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029327_tmp_169_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029328{
29329 D(p->level++);
29330 if (p->error_indicator) {
29331 D(p->level--);
29332 return NULL;
29333 }
29334 void * _res = NULL;
29335 int _mark = p->mark;
29336 { // ',' star_expression
29337 if (p->error_indicator) {
29338 D(p->level--);
29339 return NULL;
29340 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029341 D(fprintf(stderr, "%*c> _tmp_169[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029342 Token * _literal;
29343 expr_ty c;
29344 if (
29345 (_literal = _PyPegen_expect_token(p, 12)) // token=','
29346 &&
29347 (c = star_expression_rule(p)) // star_expression
29348 )
29349 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029350 D(fprintf(stderr, "%*c+ _tmp_169[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029351 _res = c;
29352 if (_res == NULL && PyErr_Occurred()) {
29353 p->error_indicator = 1;
29354 D(p->level--);
29355 return NULL;
29356 }
29357 goto done;
29358 }
29359 p->mark = _mark;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029360 D(fprintf(stderr, "%*c%s _tmp_169[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029361 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_expression"));
29362 }
29363 _res = NULL;
29364 done:
29365 D(p->level--);
29366 return _res;
29367}
29368
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029369// _tmp_170: ',' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029370static void *
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029371_tmp_170_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029372{
29373 D(p->level++);
29374 if (p->error_indicator) {
29375 D(p->level--);
29376 return NULL;
29377 }
29378 void * _res = NULL;
29379 int _mark = p->mark;
29380 { // ',' expression
29381 if (p->error_indicator) {
29382 D(p->level--);
29383 return NULL;
29384 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029385 D(fprintf(stderr, "%*c> _tmp_170[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029386 Token * _literal;
29387 expr_ty c;
29388 if (
29389 (_literal = _PyPegen_expect_token(p, 12)) // token=','
29390 &&
29391 (c = expression_rule(p)) // expression
29392 )
29393 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029394 D(fprintf(stderr, "%*c+ _tmp_170[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029395 _res = c;
29396 if (_res == NULL && PyErr_Occurred()) {
29397 p->error_indicator = 1;
29398 D(p->level--);
29399 return NULL;
29400 }
29401 goto done;
29402 }
29403 p->mark = _mark;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029404 D(fprintf(stderr, "%*c%s _tmp_170[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029405 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
29406 }
29407 _res = NULL;
29408 done:
29409 D(p->level--);
29410 return _res;
29411}
29412
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029413// _tmp_171: 'or' conjunction
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029414static void *
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029415_tmp_171_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029416{
29417 D(p->level++);
29418 if (p->error_indicator) {
29419 D(p->level--);
29420 return NULL;
29421 }
29422 void * _res = NULL;
29423 int _mark = p->mark;
29424 { // 'or' conjunction
29425 if (p->error_indicator) {
29426 D(p->level--);
29427 return NULL;
29428 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029429 D(fprintf(stderr, "%*c> _tmp_171[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'or' conjunction"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029430 Token * _keyword;
29431 expr_ty c;
29432 if (
29433 (_keyword = _PyPegen_expect_token(p, 531)) // token='or'
29434 &&
29435 (c = conjunction_rule(p)) // conjunction
29436 )
29437 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029438 D(fprintf(stderr, "%*c+ _tmp_171[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'or' conjunction"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029439 _res = c;
29440 if (_res == NULL && PyErr_Occurred()) {
29441 p->error_indicator = 1;
29442 D(p->level--);
29443 return NULL;
29444 }
29445 goto done;
29446 }
29447 p->mark = _mark;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029448 D(fprintf(stderr, "%*c%s _tmp_171[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029449 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'or' conjunction"));
29450 }
29451 _res = NULL;
29452 done:
29453 D(p->level--);
29454 return _res;
29455}
29456
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029457// _tmp_172: 'and' inversion
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029458static void *
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029459_tmp_172_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029460{
29461 D(p->level++);
29462 if (p->error_indicator) {
29463 D(p->level--);
29464 return NULL;
29465 }
29466 void * _res = NULL;
29467 int _mark = p->mark;
29468 { // 'and' inversion
29469 if (p->error_indicator) {
29470 D(p->level--);
29471 return NULL;
29472 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029473 D(fprintf(stderr, "%*c> _tmp_172[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'and' inversion"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029474 Token * _keyword;
29475 expr_ty c;
29476 if (
29477 (_keyword = _PyPegen_expect_token(p, 532)) // token='and'
29478 &&
29479 (c = inversion_rule(p)) // inversion
29480 )
29481 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029482 D(fprintf(stderr, "%*c+ _tmp_172[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'and' inversion"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029483 _res = c;
29484 if (_res == NULL && PyErr_Occurred()) {
29485 p->error_indicator = 1;
29486 D(p->level--);
29487 return NULL;
29488 }
29489 goto done;
29490 }
29491 p->mark = _mark;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029492 D(fprintf(stderr, "%*c%s _tmp_172[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo835f14f2021-01-31 22:52:56 +000029493 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'and' inversion"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000029494 }
29495 _res = NULL;
29496 done:
29497 D(p->level--);
29498 return _res;
29499}
29500
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029501// _tmp_173: 'if' disjunction
Pablo Galindo835f14f2021-01-31 22:52:56 +000029502static void *
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029503_tmp_173_rule(Parser *p)
Pablo Galindo835f14f2021-01-31 22:52:56 +000029504{
29505 D(p->level++);
29506 if (p->error_indicator) {
29507 D(p->level--);
29508 return NULL;
29509 }
29510 void * _res = NULL;
29511 int _mark = p->mark;
Pablo Galindo206cbda2021-02-07 18:42:21 +000029512 { // 'if' disjunction
29513 if (p->error_indicator) {
29514 D(p->level--);
29515 return NULL;
29516 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029517 D(fprintf(stderr, "%*c> _tmp_173[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000029518 Token * _keyword;
29519 expr_ty z;
29520 if (
29521 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
29522 &&
29523 (z = disjunction_rule(p)) // disjunction
29524 )
29525 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029526 D(fprintf(stderr, "%*c+ _tmp_173[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000029527 _res = z;
29528 if (_res == NULL && PyErr_Occurred()) {
29529 p->error_indicator = 1;
29530 D(p->level--);
29531 return NULL;
29532 }
29533 goto done;
29534 }
29535 p->mark = _mark;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029536 D(fprintf(stderr, "%*c%s _tmp_173[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo206cbda2021-02-07 18:42:21 +000029537 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' disjunction"));
29538 }
29539 _res = NULL;
29540 done:
29541 D(p->level--);
29542 return _res;
29543}
29544
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029545// _tmp_174: 'if' disjunction
Pablo Galindo206cbda2021-02-07 18:42:21 +000029546static void *
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029547_tmp_174_rule(Parser *p)
Pablo Galindo206cbda2021-02-07 18:42:21 +000029548{
29549 D(p->level++);
29550 if (p->error_indicator) {
29551 D(p->level--);
29552 return NULL;
29553 }
29554 void * _res = NULL;
29555 int _mark = p->mark;
29556 { // 'if' disjunction
29557 if (p->error_indicator) {
29558 D(p->level--);
29559 return NULL;
29560 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029561 D(fprintf(stderr, "%*c> _tmp_174[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000029562 Token * _keyword;
29563 expr_ty z;
29564 if (
29565 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
29566 &&
29567 (z = disjunction_rule(p)) // disjunction
29568 )
29569 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029570 D(fprintf(stderr, "%*c+ _tmp_174[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000029571 _res = z;
29572 if (_res == NULL && PyErr_Occurred()) {
29573 p->error_indicator = 1;
29574 D(p->level--);
29575 return NULL;
29576 }
29577 goto done;
29578 }
29579 p->mark = _mark;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029580 D(fprintf(stderr, "%*c%s _tmp_174[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo206cbda2021-02-07 18:42:21 +000029581 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' disjunction"));
29582 }
29583 _res = NULL;
29584 done:
29585 D(p->level--);
29586 return _res;
29587}
29588
Pablo Galindod9151cb2021-04-13 02:32:33 +010029589// _tmp_175: starred_expression | direct_named_expression !'='
Pablo Galindo206cbda2021-02-07 18:42:21 +000029590static void *
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029591_tmp_175_rule(Parser *p)
Pablo Galindo206cbda2021-02-07 18:42:21 +000029592{
29593 D(p->level++);
29594 if (p->error_indicator) {
29595 D(p->level--);
29596 return NULL;
29597 }
29598 void * _res = NULL;
29599 int _mark = p->mark;
Pablo Galindo4a97b152020-09-02 17:44:19 +010029600 { // starred_expression
29601 if (p->error_indicator) {
29602 D(p->level--);
29603 return NULL;
29604 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029605 D(fprintf(stderr, "%*c> _tmp_175[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "starred_expression"));
Pablo Galindo4a97b152020-09-02 17:44:19 +010029606 expr_ty starred_expression_var;
29607 if (
29608 (starred_expression_var = starred_expression_rule(p)) // starred_expression
29609 )
29610 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029611 D(fprintf(stderr, "%*c+ _tmp_175[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "starred_expression"));
Pablo Galindo4a97b152020-09-02 17:44:19 +010029612 _res = starred_expression_var;
29613 goto done;
29614 }
29615 p->mark = _mark;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029616 D(fprintf(stderr, "%*c%s _tmp_175[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo4a97b152020-09-02 17:44:19 +010029617 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "starred_expression"));
29618 }
Pablo Galindod9151cb2021-04-13 02:32:33 +010029619 { // direct_named_expression !'='
Pablo Galindo4a97b152020-09-02 17:44:19 +010029620 if (p->error_indicator) {
29621 D(p->level--);
29622 return NULL;
29623 }
Pablo Galindod9151cb2021-04-13 02:32:33 +010029624 D(fprintf(stderr, "%*c> _tmp_175[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "direct_named_expression !'='"));
29625 expr_ty direct_named_expression_var;
Pablo Galindo4a97b152020-09-02 17:44:19 +010029626 if (
Pablo Galindod9151cb2021-04-13 02:32:33 +010029627 (direct_named_expression_var = direct_named_expression_rule(p)) // direct_named_expression
Pablo Galindo4a97b152020-09-02 17:44:19 +010029628 &&
29629 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 22) // token='='
29630 )
29631 {
Pablo Galindod9151cb2021-04-13 02:32:33 +010029632 D(fprintf(stderr, "%*c+ _tmp_175[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "direct_named_expression !'='"));
29633 _res = direct_named_expression_var;
Pablo Galindo4a97b152020-09-02 17:44:19 +010029634 goto done;
29635 }
29636 p->mark = _mark;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029637 D(fprintf(stderr, "%*c%s _tmp_175[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindod9151cb2021-04-13 02:32:33 +010029638 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "direct_named_expression !'='"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029639 }
29640 _res = NULL;
29641 done:
29642 D(p->level--);
29643 return _res;
29644}
29645
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029646// _tmp_176: ',' star_target
Pablo Galindo835f14f2021-01-31 22:52:56 +000029647static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080029648_tmp_176_rule(Parser *p)
Pablo Galindo206cbda2021-02-07 18:42:21 +000029649{
29650 D(p->level++);
29651 if (p->error_indicator) {
29652 D(p->level--);
29653 return NULL;
29654 }
29655 void * _res = NULL;
29656 int _mark = p->mark;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029657 { // ',' star_target
29658 if (p->error_indicator) {
29659 D(p->level--);
29660 return NULL;
29661 }
29662 D(fprintf(stderr, "%*c> _tmp_176[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target"));
29663 Token * _literal;
29664 expr_ty c;
29665 if (
29666 (_literal = _PyPegen_expect_token(p, 12)) // token=','
29667 &&
29668 (c = star_target_rule(p)) // star_target
29669 )
29670 {
29671 D(fprintf(stderr, "%*c+ _tmp_176[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_target"));
29672 _res = c;
29673 if (_res == NULL && PyErr_Occurred()) {
29674 p->error_indicator = 1;
29675 D(p->level--);
29676 return NULL;
29677 }
29678 goto done;
29679 }
29680 p->mark = _mark;
29681 D(fprintf(stderr, "%*c%s _tmp_176[%d-%d]: %s failed!\n", p->level, ' ',
29682 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_target"));
29683 }
29684 _res = NULL;
29685 done:
29686 D(p->level--);
29687 return _res;
29688}
29689
29690// _tmp_177: ',' star_target
29691static void *
29692_tmp_177_rule(Parser *p)
29693{
29694 D(p->level++);
29695 if (p->error_indicator) {
29696 D(p->level--);
29697 return NULL;
29698 }
29699 void * _res = NULL;
29700 int _mark = p->mark;
29701 { // ',' star_target
29702 if (p->error_indicator) {
29703 D(p->level--);
29704 return NULL;
29705 }
29706 D(fprintf(stderr, "%*c> _tmp_177[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target"));
29707 Token * _literal;
29708 expr_ty c;
29709 if (
29710 (_literal = _PyPegen_expect_token(p, 12)) // token=','
29711 &&
29712 (c = star_target_rule(p)) // star_target
29713 )
29714 {
29715 D(fprintf(stderr, "%*c+ _tmp_177[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_target"));
29716 _res = c;
29717 if (_res == NULL && PyErr_Occurred()) {
29718 p->error_indicator = 1;
29719 D(p->level--);
29720 return NULL;
29721 }
29722 goto done;
29723 }
29724 p->mark = _mark;
29725 D(fprintf(stderr, "%*c%s _tmp_177[%d-%d]: %s failed!\n", p->level, ' ',
29726 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_target"));
29727 }
29728 _res = NULL;
29729 done:
29730 D(p->level--);
29731 return _res;
29732}
29733
29734// _tmp_178: star_targets '='
29735static void *
29736_tmp_178_rule(Parser *p)
29737{
29738 D(p->level++);
29739 if (p->error_indicator) {
29740 D(p->level--);
29741 return NULL;
29742 }
29743 void * _res = NULL;
29744 int _mark = p->mark;
Pablo Galindo206cbda2021-02-07 18:42:21 +000029745 { // star_targets '='
29746 if (p->error_indicator) {
29747 D(p->level--);
29748 return NULL;
29749 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029750 D(fprintf(stderr, "%*c> _tmp_178[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000029751 Token * _literal;
29752 expr_ty star_targets_var;
29753 if (
29754 (star_targets_var = star_targets_rule(p)) // star_targets
29755 &&
29756 (_literal = _PyPegen_expect_token(p, 22)) // token='='
29757 )
29758 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029759 D(fprintf(stderr, "%*c+ _tmp_178[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000029760 _res = _PyPegen_dummy_name(p, star_targets_var, _literal);
29761 goto done;
29762 }
29763 p->mark = _mark;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029764 D(fprintf(stderr, "%*c%s _tmp_178[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo206cbda2021-02-07 18:42:21 +000029765 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='"));
29766 }
29767 _res = NULL;
29768 done:
29769 D(p->level--);
29770 return _res;
29771}
29772
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029773// _tmp_179: star_targets '='
Pablo Galindo206cbda2021-02-07 18:42:21 +000029774static void *
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029775_tmp_179_rule(Parser *p)
29776{
29777 D(p->level++);
29778 if (p->error_indicator) {
29779 D(p->level--);
29780 return NULL;
29781 }
29782 void * _res = NULL;
29783 int _mark = p->mark;
29784 { // star_targets '='
29785 if (p->error_indicator) {
29786 D(p->level--);
29787 return NULL;
29788 }
29789 D(fprintf(stderr, "%*c> _tmp_179[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
29790 Token * _literal;
29791 expr_ty star_targets_var;
29792 if (
29793 (star_targets_var = star_targets_rule(p)) // star_targets
29794 &&
29795 (_literal = _PyPegen_expect_token(p, 22)) // token='='
29796 )
29797 {
29798 D(fprintf(stderr, "%*c+ _tmp_179[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
29799 _res = _PyPegen_dummy_name(p, star_targets_var, _literal);
29800 goto done;
29801 }
29802 p->mark = _mark;
29803 D(fprintf(stderr, "%*c%s _tmp_179[%d-%d]: %s failed!\n", p->level, ' ',
29804 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='"));
29805 }
29806 _res = NULL;
29807 done:
29808 D(p->level--);
29809 return _res;
29810}
29811
29812// _tmp_180: ')' | '**'
29813static void *
29814_tmp_180_rule(Parser *p)
Pablo Galindo835f14f2021-01-31 22:52:56 +000029815{
29816 D(p->level++);
29817 if (p->error_indicator) {
29818 D(p->level--);
29819 return NULL;
29820 }
29821 void * _res = NULL;
29822 int _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029823 { // ')'
29824 if (p->error_indicator) {
29825 D(p->level--);
29826 return NULL;
29827 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029828 D(fprintf(stderr, "%*c> _tmp_180[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029829 Token * _literal;
29830 if (
29831 (_literal = _PyPegen_expect_token(p, 8)) // token=')'
29832 )
29833 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029834 D(fprintf(stderr, "%*c+ _tmp_180[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029835 _res = _literal;
29836 goto done;
29837 }
29838 p->mark = _mark;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029839 D(fprintf(stderr, "%*c%s _tmp_180[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo835f14f2021-01-31 22:52:56 +000029840 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029841 }
29842 { // '**'
29843 if (p->error_indicator) {
29844 D(p->level--);
29845 return NULL;
29846 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029847 D(fprintf(stderr, "%*c> _tmp_180[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029848 Token * _literal;
29849 if (
29850 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
29851 )
29852 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029853 D(fprintf(stderr, "%*c+ _tmp_180[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029854 _res = _literal;
29855 goto done;
29856 }
29857 p->mark = _mark;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029858 D(fprintf(stderr, "%*c%s _tmp_180[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029859 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**'"));
29860 }
29861 _res = NULL;
29862 done:
29863 D(p->level--);
29864 return _res;
29865}
29866
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029867// _tmp_181: ':' | '**'
Pablo Galindo835f14f2021-01-31 22:52:56 +000029868static void *
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029869_tmp_181_rule(Parser *p)
Pablo Galindo835f14f2021-01-31 22:52:56 +000029870{
29871 D(p->level++);
29872 if (p->error_indicator) {
29873 D(p->level--);
29874 return NULL;
29875 }
29876 void * _res = NULL;
29877 int _mark = p->mark;
29878 { // ':'
29879 if (p->error_indicator) {
29880 D(p->level--);
29881 return NULL;
29882 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029883 D(fprintf(stderr, "%*c> _tmp_181[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
Pablo Galindo835f14f2021-01-31 22:52:56 +000029884 Token * _literal;
29885 if (
29886 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
29887 )
29888 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029889 D(fprintf(stderr, "%*c+ _tmp_181[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
Pablo Galindo835f14f2021-01-31 22:52:56 +000029890 _res = _literal;
29891 goto done;
29892 }
29893 p->mark = _mark;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029894 D(fprintf(stderr, "%*c%s _tmp_181[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo835f14f2021-01-31 22:52:56 +000029895 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
29896 }
29897 { // '**'
29898 if (p->error_indicator) {
29899 D(p->level--);
29900 return NULL;
29901 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029902 D(fprintf(stderr, "%*c> _tmp_181[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**'"));
Pablo Galindo835f14f2021-01-31 22:52:56 +000029903 Token * _literal;
29904 if (
29905 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
29906 )
29907 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029908 D(fprintf(stderr, "%*c+ _tmp_181[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**'"));
Pablo Galindo835f14f2021-01-31 22:52:56 +000029909 _res = _literal;
29910 goto done;
29911 }
29912 p->mark = _mark;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029913 D(fprintf(stderr, "%*c%s _tmp_181[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo835f14f2021-01-31 22:52:56 +000029914 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**'"));
29915 }
29916 _res = NULL;
29917 done:
29918 D(p->level--);
29919 return _res;
29920}
29921
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029922// _tmp_182: expression ['as' star_target]
Pablo Galindo58fb1562021-02-02 19:54:22 +000029923static void *
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029924_tmp_182_rule(Parser *p)
Pablo Galindo58fb1562021-02-02 19:54:22 +000029925{
29926 D(p->level++);
29927 if (p->error_indicator) {
29928 D(p->level--);
29929 return NULL;
29930 }
29931 void * _res = NULL;
29932 int _mark = p->mark;
29933 { // expression ['as' star_target]
29934 if (p->error_indicator) {
29935 D(p->level--);
29936 return NULL;
29937 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029938 D(fprintf(stderr, "%*c> _tmp_182[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000029939 void *_opt_var;
29940 UNUSED(_opt_var); // Silence compiler warnings
29941 expr_ty expression_var;
29942 if (
29943 (expression_var = expression_rule(p)) // expression
29944 &&
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029945 (_opt_var = _tmp_184_rule(p), 1) // ['as' star_target]
Pablo Galindo58fb1562021-02-02 19:54:22 +000029946 )
29947 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029948 D(fprintf(stderr, "%*c+ _tmp_182[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000029949 _res = _PyPegen_dummy_name(p, expression_var, _opt_var);
29950 goto done;
29951 }
29952 p->mark = _mark;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029953 D(fprintf(stderr, "%*c%s _tmp_182[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +000029954 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ['as' star_target]"));
29955 }
29956 _res = NULL;
29957 done:
29958 D(p->level--);
29959 return _res;
29960}
29961
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029962// _tmp_183: expressions ['as' star_target]
Pablo Galindo58fb1562021-02-02 19:54:22 +000029963static void *
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029964_tmp_183_rule(Parser *p)
Pablo Galindo58fb1562021-02-02 19:54:22 +000029965{
29966 D(p->level++);
29967 if (p->error_indicator) {
29968 D(p->level--);
29969 return NULL;
29970 }
29971 void * _res = NULL;
29972 int _mark = p->mark;
29973 { // expressions ['as' star_target]
29974 if (p->error_indicator) {
29975 D(p->level--);
29976 return NULL;
29977 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029978 D(fprintf(stderr, "%*c> _tmp_183[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000029979 void *_opt_var;
29980 UNUSED(_opt_var); // Silence compiler warnings
29981 expr_ty expressions_var;
29982 if (
29983 (expressions_var = expressions_rule(p)) // expressions
29984 &&
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029985 (_opt_var = _tmp_185_rule(p), 1) // ['as' star_target]
Pablo Galindo58fb1562021-02-02 19:54:22 +000029986 )
29987 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029988 D(fprintf(stderr, "%*c+ _tmp_183[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000029989 _res = _PyPegen_dummy_name(p, expressions_var, _opt_var);
29990 goto done;
29991 }
29992 p->mark = _mark;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029993 D(fprintf(stderr, "%*c%s _tmp_183[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +000029994 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expressions ['as' star_target]"));
29995 }
29996 _res = NULL;
29997 done:
29998 D(p->level--);
29999 return _res;
30000}
30001
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030002// _tmp_184: 'as' star_target
Pablo Galindo58fb1562021-02-02 19:54:22 +000030003static void *
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030004_tmp_184_rule(Parser *p)
Pablo Galindo58fb1562021-02-02 19:54:22 +000030005{
30006 D(p->level++);
30007 if (p->error_indicator) {
30008 D(p->level--);
30009 return NULL;
30010 }
30011 void * _res = NULL;
30012 int _mark = p->mark;
30013 { // 'as' star_target
30014 if (p->error_indicator) {
30015 D(p->level--);
30016 return NULL;
30017 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030018 D(fprintf(stderr, "%*c> _tmp_184[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000030019 Token * _keyword;
30020 expr_ty star_target_var;
30021 if (
30022 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
30023 &&
30024 (star_target_var = star_target_rule(p)) // star_target
30025 )
30026 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030027 D(fprintf(stderr, "%*c+ _tmp_184[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000030028 _res = _PyPegen_dummy_name(p, _keyword, star_target_var);
30029 goto done;
30030 }
30031 p->mark = _mark;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030032 D(fprintf(stderr, "%*c%s _tmp_184[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +000030033 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' star_target"));
30034 }
30035 _res = NULL;
30036 done:
30037 D(p->level--);
30038 return _res;
30039}
30040
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030041// _tmp_185: 'as' star_target
Pablo Galindo58fb1562021-02-02 19:54:22 +000030042static void *
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030043_tmp_185_rule(Parser *p)
Pablo Galindo58fb1562021-02-02 19:54:22 +000030044{
30045 D(p->level++);
30046 if (p->error_indicator) {
30047 D(p->level--);
30048 return NULL;
30049 }
30050 void * _res = NULL;
30051 int _mark = p->mark;
30052 { // 'as' star_target
30053 if (p->error_indicator) {
30054 D(p->level--);
30055 return NULL;
30056 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030057 D(fprintf(stderr, "%*c> _tmp_185[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000030058 Token * _keyword;
30059 expr_ty star_target_var;
30060 if (
30061 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
30062 &&
30063 (star_target_var = star_target_rule(p)) // star_target
30064 )
30065 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030066 D(fprintf(stderr, "%*c+ _tmp_185[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000030067 _res = _PyPegen_dummy_name(p, _keyword, star_target_var);
30068 goto done;
30069 }
30070 p->mark = _mark;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030071 D(fprintf(stderr, "%*c%s _tmp_185[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +000030072 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' star_target"));
30073 }
30074 _res = NULL;
30075 done:
30076 D(p->level--);
30077 return _res;
30078}
30079
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010030080void *
30081_PyPegen_parse(Parser *p)
30082{
30083 // Initialize keywords
30084 p->keywords = reserved_keywords;
30085 p->n_keyword_lists = n_keyword_lists;
30086
30087 // Run parser
30088 void *result = NULL;
30089 if (p->start_rule == Py_file_input) {
30090 result = file_rule(p);
30091 } else if (p->start_rule == Py_single_input) {
30092 result = interactive_rule(p);
30093 } else if (p->start_rule == Py_eval_input) {
30094 result = eval_rule(p);
30095 } else if (p->start_rule == Py_func_type_input) {
30096 result = func_type_rule(p);
30097 } else if (p->start_rule == Py_fstring_input) {
30098 result = fstring_rule(p);
30099 }
30100
30101 return result;
30102}
30103
30104// The end