blob: 2ead05225be5fd3dd5ac3b8539d0f2594b663566 [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
Pablo Galindoda743502021-04-15 14:06:39 +0100271#define invalid_double_starred_kvpairs_type 1203
272#define invalid_kvpair_type 1204
273#define _loop0_1_type 1205
274#define _loop0_2_type 1206
275#define _loop0_4_type 1207
276#define _gather_3_type 1208
277#define _loop0_6_type 1209
278#define _gather_5_type 1210
279#define _loop0_8_type 1211
280#define _gather_7_type 1212
281#define _loop0_10_type 1213
282#define _gather_9_type 1214
283#define _loop1_11_type 1215
284#define _loop0_13_type 1216
285#define _gather_12_type 1217
286#define _tmp_14_type 1218
287#define _tmp_15_type 1219
288#define _tmp_16_type 1220
289#define _tmp_17_type 1221
290#define _tmp_18_type 1222
291#define _tmp_19_type 1223
292#define _tmp_20_type 1224
293#define _tmp_21_type 1225
294#define _loop1_22_type 1226
295#define _tmp_23_type 1227
296#define _tmp_24_type 1228
297#define _loop0_26_type 1229
298#define _gather_25_type 1230
299#define _loop0_28_type 1231
300#define _gather_27_type 1232
301#define _tmp_29_type 1233
302#define _tmp_30_type 1234
303#define _loop0_31_type 1235
304#define _loop1_32_type 1236
305#define _loop0_34_type 1237
306#define _gather_33_type 1238
307#define _tmp_35_type 1239
308#define _loop0_37_type 1240
309#define _gather_36_type 1241
310#define _tmp_38_type 1242
311#define _loop0_40_type 1243
312#define _gather_39_type 1244
313#define _loop0_42_type 1245
314#define _gather_41_type 1246
315#define _loop0_44_type 1247
316#define _gather_43_type 1248
317#define _loop0_46_type 1249
318#define _gather_45_type 1250
319#define _tmp_47_type 1251
320#define _loop1_48_type 1252
321#define _tmp_49_type 1253
322#define _loop1_50_type 1254
323#define _loop0_52_type 1255
324#define _gather_51_type 1256
325#define _tmp_53_type 1257
326#define _tmp_54_type 1258
327#define _tmp_55_type 1259
328#define _loop0_57_type 1260
329#define _gather_56_type 1261
330#define _tmp_58_type 1262
331#define _loop0_60_type 1263
332#define _gather_59_type 1264
333#define _tmp_61_type 1265
334#define _loop0_63_type 1266
335#define _gather_62_type 1267
336#define _loop0_65_type 1268
337#define _gather_64_type 1269
338#define _tmp_66_type 1270
339#define _tmp_67_type 1271
340#define _tmp_68_type 1272
341#define _tmp_69_type 1273
342#define _loop0_70_type 1274
343#define _loop0_71_type 1275
344#define _loop0_72_type 1276
345#define _loop1_73_type 1277
346#define _loop0_74_type 1278
347#define _loop1_75_type 1279
348#define _loop1_76_type 1280
349#define _loop1_77_type 1281
350#define _loop0_78_type 1282
351#define _loop1_79_type 1283
352#define _loop0_80_type 1284
353#define _loop1_81_type 1285
354#define _loop0_82_type 1286
355#define _loop1_83_type 1287
356#define _loop1_84_type 1288
357#define _tmp_85_type 1289
358#define _loop1_86_type 1290
359#define _loop0_88_type 1291
360#define _gather_87_type 1292
361#define _loop1_89_type 1293
362#define _loop0_90_type 1294
363#define _loop0_91_type 1295
364#define _loop0_92_type 1296
365#define _loop1_93_type 1297
366#define _loop0_94_type 1298
367#define _loop1_95_type 1299
368#define _loop1_96_type 1300
369#define _loop1_97_type 1301
370#define _loop0_98_type 1302
371#define _loop1_99_type 1303
372#define _loop0_100_type 1304
373#define _loop1_101_type 1305
374#define _loop0_102_type 1306
375#define _loop1_103_type 1307
376#define _loop1_104_type 1308
377#define _loop1_105_type 1309
378#define _loop1_106_type 1310
379#define _tmp_107_type 1311
380#define _loop0_109_type 1312
381#define _gather_108_type 1313
382#define _tmp_110_type 1314
383#define _tmp_111_type 1315
384#define _tmp_112_type 1316
385#define _tmp_113_type 1317
386#define _loop1_114_type 1318
387#define _tmp_115_type 1319
388#define _tmp_116_type 1320
389#define _loop0_118_type 1321
390#define _gather_117_type 1322
391#define _loop1_119_type 1323
392#define _loop0_120_type 1324
393#define _loop0_121_type 1325
394#define _loop0_123_type 1326
395#define _gather_122_type 1327
396#define _tmp_124_type 1328
397#define _loop0_126_type 1329
398#define _gather_125_type 1330
399#define _loop0_128_type 1331
400#define _gather_127_type 1332
401#define _loop0_130_type 1333
402#define _gather_129_type 1334
403#define _loop0_132_type 1335
404#define _gather_131_type 1336
405#define _loop0_133_type 1337
406#define _loop0_135_type 1338
407#define _gather_134_type 1339
408#define _loop1_136_type 1340
409#define _tmp_137_type 1341
410#define _loop0_139_type 1342
411#define _gather_138_type 1343
412#define _loop0_141_type 1344
413#define _gather_140_type 1345
414#define _tmp_142_type 1346
415#define _tmp_143_type 1347
416#define _tmp_144_type 1348
417#define _tmp_145_type 1349
418#define _loop0_146_type 1350
419#define _loop0_147_type 1351
420#define _loop0_148_type 1352
421#define _tmp_149_type 1353
422#define _tmp_150_type 1354
423#define _tmp_151_type 1355
424#define _loop0_152_type 1356
425#define _loop1_153_type 1357
426#define _loop0_154_type 1358
427#define _loop1_155_type 1359
428#define _tmp_156_type 1360
429#define _tmp_157_type 1361
430#define _tmp_158_type 1362
431#define _loop0_160_type 1363
432#define _gather_159_type 1364
433#define _loop0_162_type 1365
434#define _gather_161_type 1366
435#define _tmp_163_type 1367
436#define _tmp_164_type 1368
437#define _loop0_166_type 1369
438#define _gather_165_type 1370
439#define _tmp_167_type 1371
440#define _tmp_168_type 1372
441#define _tmp_169_type 1373
442#define _tmp_170_type 1374
443#define _tmp_171_type 1375
444#define _tmp_172_type 1376
445#define _tmp_173_type 1377
446#define _tmp_174_type 1378
447#define _tmp_175_type 1379
448#define _tmp_176_type 1380
449#define _tmp_177_type 1381
450#define _tmp_178_type 1382
451#define _tmp_179_type 1383
452#define _tmp_180_type 1384
453#define _tmp_181_type 1385
454#define _tmp_182_type 1386
455#define _tmp_183_type 1387
456#define _tmp_184_type 1388
457#define _tmp_185_type 1389
458#define _tmp_186_type 1390
459#define _tmp_187_type 1391
460#define _tmp_188_type 1392
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100461
462static mod_ty file_rule(Parser *p);
463static mod_ty interactive_rule(Parser *p);
464static mod_ty eval_rule(Parser *p);
465static mod_ty func_type_rule(Parser *p);
466static expr_ty fstring_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100467static asdl_expr_seq* type_expressions_rule(Parser *p);
468static asdl_stmt_seq* statements_rule(Parser *p);
469static asdl_stmt_seq* statement_rule(Parser *p);
470static asdl_stmt_seq* statement_newline_rule(Parser *p);
Pablo Galindo9bdc40e2020-11-30 19:42:38 +0000471static asdl_stmt_seq* simple_stmts_rule(Parser *p);
472static stmt_ty simple_stmt_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100473static stmt_ty compound_stmt_rule(Parser *p);
474static stmt_ty assignment_rule(Parser *p);
475static AugOperator* augassign_rule(Parser *p);
476static stmt_ty global_stmt_rule(Parser *p);
477static stmt_ty nonlocal_stmt_rule(Parser *p);
478static stmt_ty yield_stmt_rule(Parser *p);
479static stmt_ty assert_stmt_rule(Parser *p);
480static stmt_ty del_stmt_rule(Parser *p);
481static stmt_ty import_stmt_rule(Parser *p);
482static stmt_ty import_name_rule(Parser *p);
483static stmt_ty import_from_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100484static asdl_alias_seq* import_from_targets_rule(Parser *p);
485static asdl_alias_seq* import_from_as_names_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100486static alias_ty import_from_as_name_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100487static asdl_alias_seq* dotted_as_names_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100488static alias_ty dotted_as_name_rule(Parser *p);
489static expr_ty dotted_name_rule(Parser *p);
490static stmt_ty if_stmt_rule(Parser *p);
491static stmt_ty elif_stmt_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100492static asdl_stmt_seq* else_block_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100493static stmt_ty while_stmt_rule(Parser *p);
494static stmt_ty for_stmt_rule(Parser *p);
495static stmt_ty with_stmt_rule(Parser *p);
496static withitem_ty with_item_rule(Parser *p);
497static stmt_ty try_stmt_rule(Parser *p);
498static excepthandler_ty except_block_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100499static asdl_stmt_seq* finally_block_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800500static stmt_ty match_stmt_rule(Parser *p);
501static expr_ty subject_expr_rule(Parser *p);
502static match_case_ty case_block_rule(Parser *p);
503static expr_ty guard_rule(Parser *p);
504static expr_ty patterns_rule(Parser *p);
505static expr_ty pattern_rule(Parser *p);
506static expr_ty as_pattern_rule(Parser *p);
507static expr_ty or_pattern_rule(Parser *p);
508static expr_ty closed_pattern_rule(Parser *p);
509static expr_ty literal_pattern_rule(Parser *p);
510static expr_ty signed_number_rule(Parser *p);
511static expr_ty capture_pattern_rule(Parser *p);
512static expr_ty wildcard_pattern_rule(Parser *p);
513static expr_ty value_pattern_rule(Parser *p);
514static expr_ty attr_rule(Parser *p);
515static expr_ty name_or_attr_rule(Parser *p);
516static expr_ty group_pattern_rule(Parser *p);
517static expr_ty sequence_pattern_rule(Parser *p);
518static asdl_seq* open_sequence_pattern_rule(Parser *p);
519static asdl_seq* maybe_sequence_pattern_rule(Parser *p);
520static expr_ty maybe_star_pattern_rule(Parser *p);
521static expr_ty star_pattern_rule(Parser *p);
522static expr_ty mapping_pattern_rule(Parser *p);
523static asdl_seq* items_pattern_rule(Parser *p);
524static KeyValuePair* key_value_pattern_rule(Parser *p);
525static KeyValuePair* double_star_pattern_rule(Parser *p);
526static expr_ty class_pattern_rule(Parser *p);
527static asdl_expr_seq* positional_patterns_rule(Parser *p);
528static asdl_keyword_seq* keyword_patterns_rule(Parser *p);
529static keyword_ty keyword_pattern_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100530static stmt_ty return_stmt_rule(Parser *p);
531static stmt_ty raise_stmt_rule(Parser *p);
532static stmt_ty function_def_rule(Parser *p);
533static stmt_ty function_def_raw_rule(Parser *p);
534static Token* func_type_comment_rule(Parser *p);
535static arguments_ty params_rule(Parser *p);
536static arguments_ty parameters_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100537static asdl_arg_seq* slash_no_default_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100538static SlashWithDefault* slash_with_default_rule(Parser *p);
539static StarEtc* star_etc_rule(Parser *p);
540static arg_ty kwds_rule(Parser *p);
541static arg_ty param_no_default_rule(Parser *p);
542static NameDefaultPair* param_with_default_rule(Parser *p);
543static NameDefaultPair* param_maybe_default_rule(Parser *p);
544static arg_ty param_rule(Parser *p);
545static expr_ty annotation_rule(Parser *p);
546static expr_ty default_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100547static asdl_expr_seq* decorators_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100548static stmt_ty class_def_rule(Parser *p);
549static stmt_ty class_def_raw_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100550static asdl_stmt_seq* block_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100551static expr_ty star_expressions_rule(Parser *p);
552static expr_ty star_expression_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100553static asdl_expr_seq* star_named_expressions_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100554static expr_ty star_named_expression_rule(Parser *p);
555static expr_ty named_expression_rule(Parser *p);
Pablo Galindod9151cb2021-04-13 02:32:33 +0100556static expr_ty direct_named_expression_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100557static expr_ty annotated_rhs_rule(Parser *p);
558static expr_ty expressions_rule(Parser *p);
559static expr_ty expression_rule(Parser *p);
560static expr_ty lambdef_rule(Parser *p);
561static arguments_ty lambda_params_rule(Parser *p);
562static arguments_ty lambda_parameters_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100563static asdl_arg_seq* lambda_slash_no_default_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100564static SlashWithDefault* lambda_slash_with_default_rule(Parser *p);
565static StarEtc* lambda_star_etc_rule(Parser *p);
566static arg_ty lambda_kwds_rule(Parser *p);
567static arg_ty lambda_param_no_default_rule(Parser *p);
568static NameDefaultPair* lambda_param_with_default_rule(Parser *p);
569static NameDefaultPair* lambda_param_maybe_default_rule(Parser *p);
570static arg_ty lambda_param_rule(Parser *p);
571static expr_ty disjunction_rule(Parser *p);
572static expr_ty conjunction_rule(Parser *p);
573static expr_ty inversion_rule(Parser *p);
574static expr_ty comparison_rule(Parser *p);
575static CmpopExprPair* compare_op_bitwise_or_pair_rule(Parser *p);
576static CmpopExprPair* eq_bitwise_or_rule(Parser *p);
577static CmpopExprPair* noteq_bitwise_or_rule(Parser *p);
578static CmpopExprPair* lte_bitwise_or_rule(Parser *p);
579static CmpopExprPair* lt_bitwise_or_rule(Parser *p);
580static CmpopExprPair* gte_bitwise_or_rule(Parser *p);
581static CmpopExprPair* gt_bitwise_or_rule(Parser *p);
582static CmpopExprPair* notin_bitwise_or_rule(Parser *p);
583static CmpopExprPair* in_bitwise_or_rule(Parser *p);
584static CmpopExprPair* isnot_bitwise_or_rule(Parser *p);
585static CmpopExprPair* is_bitwise_or_rule(Parser *p);
586static expr_ty bitwise_or_rule(Parser *p);
587static expr_ty bitwise_xor_rule(Parser *p);
588static expr_ty bitwise_and_rule(Parser *p);
589static expr_ty shift_expr_rule(Parser *p);
590static expr_ty sum_rule(Parser *p);
591static expr_ty term_rule(Parser *p);
592static expr_ty factor_rule(Parser *p);
593static expr_ty power_rule(Parser *p);
594static expr_ty await_primary_rule(Parser *p);
595static expr_ty primary_rule(Parser *p);
596static expr_ty slices_rule(Parser *p);
597static expr_ty slice_rule(Parser *p);
598static expr_ty atom_rule(Parser *p);
599static expr_ty strings_rule(Parser *p);
600static expr_ty list_rule(Parser *p);
601static expr_ty listcomp_rule(Parser *p);
602static expr_ty tuple_rule(Parser *p);
603static expr_ty group_rule(Parser *p);
604static expr_ty genexp_rule(Parser *p);
605static expr_ty set_rule(Parser *p);
606static expr_ty setcomp_rule(Parser *p);
607static expr_ty dict_rule(Parser *p);
608static expr_ty dictcomp_rule(Parser *p);
609static asdl_seq* double_starred_kvpairs_rule(Parser *p);
610static KeyValuePair* double_starred_kvpair_rule(Parser *p);
611static KeyValuePair* kvpair_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100612static asdl_comprehension_seq* for_if_clauses_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100613static comprehension_ty for_if_clause_rule(Parser *p);
614static expr_ty yield_expr_rule(Parser *p);
615static expr_ty arguments_rule(Parser *p);
616static expr_ty args_rule(Parser *p);
617static asdl_seq* kwargs_rule(Parser *p);
618static expr_ty starred_expression_rule(Parser *p);
619static KeywordOrStarred* kwarg_or_starred_rule(Parser *p);
620static KeywordOrStarred* kwarg_or_double_starred_rule(Parser *p);
621static expr_ty star_targets_rule(Parser *p);
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +0200622static asdl_expr_seq* star_targets_list_seq_rule(Parser *p);
623static asdl_expr_seq* star_targets_tuple_seq_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100624static expr_ty star_target_rule(Parser *p);
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +0200625static expr_ty target_with_star_atom_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100626static expr_ty star_atom_rule(Parser *p);
627static expr_ty single_target_rule(Parser *p);
628static expr_ty single_subscript_attribute_target_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100629static asdl_expr_seq* del_targets_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100630static expr_ty del_target_rule(Parser *p);
631static expr_ty del_t_atom_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100632static asdl_expr_seq* targets_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100633static expr_ty target_rule(Parser *p);
634static expr_ty t_primary_rule(Parser *p);
635static void *t_lookahead_rule(Parser *p);
636static expr_ty t_atom_rule(Parser *p);
Lysandros Nikolaoubca70142020-10-27 00:42:04 +0200637static void *invalid_arguments_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100638static void *invalid_kwarg_rule(Parser *p);
639static void *invalid_named_expression_rule(Parser *p);
640static void *invalid_assignment_rule(Parser *p);
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +0300641static expr_ty invalid_ann_assign_target_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300642static void *invalid_del_stmt_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100643static void *invalid_block_rule(Parser *p);
Lysandros Nikolaou15acc4e2020-10-27 20:54:20 +0200644static void *invalid_primary_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100645static void *invalid_comprehension_rule(Parser *p);
646static void *invalid_dict_comprehension_rule(Parser *p);
647static void *invalid_parameters_rule(Parser *p);
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +0200648static void *invalid_parameters_helper_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100649static void *invalid_lambda_parameters_rule(Parser *p);
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +0200650static void *invalid_lambda_parameters_helper_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100651static void *invalid_star_etc_rule(Parser *p);
652static void *invalid_lambda_star_etc_rule(Parser *p);
653static void *invalid_double_type_comments_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300654static void *invalid_with_item_rule(Parser *p);
655static void *invalid_for_target_rule(Parser *p);
656static void *invalid_group_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100657static void *invalid_import_from_targets_rule(Parser *p);
Pablo Galindo58fb1562021-02-02 19:54:22 +0000658static void *invalid_with_stmt_rule(Parser *p);
Pablo Galindo206cbda2021-02-07 18:42:21 +0000659static void *invalid_except_block_rule(Parser *p);
Pablo Galindo08fb8ac2021-03-18 01:03:11 +0000660static void *invalid_match_stmt_rule(Parser *p);
661static void *invalid_case_block_rule(Parser *p);
Pablo Galindob86ed8e2021-04-12 16:59:30 +0100662static void *invalid_if_stmt_rule(Parser *p);
663static void *invalid_elif_stmt_rule(Parser *p);
664static void *invalid_while_stmt_rule(Parser *p);
Pablo Galindoda743502021-04-15 14:06:39 +0100665static void *invalid_double_starred_kvpairs_rule(Parser *p);
666static void *invalid_kvpair_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100667static asdl_seq *_loop0_1_rule(Parser *p);
668static asdl_seq *_loop0_2_rule(Parser *p);
669static asdl_seq *_loop0_4_rule(Parser *p);
670static asdl_seq *_gather_3_rule(Parser *p);
671static asdl_seq *_loop0_6_rule(Parser *p);
672static asdl_seq *_gather_5_rule(Parser *p);
673static asdl_seq *_loop0_8_rule(Parser *p);
674static asdl_seq *_gather_7_rule(Parser *p);
675static asdl_seq *_loop0_10_rule(Parser *p);
676static asdl_seq *_gather_9_rule(Parser *p);
677static asdl_seq *_loop1_11_rule(Parser *p);
678static asdl_seq *_loop0_13_rule(Parser *p);
679static asdl_seq *_gather_12_rule(Parser *p);
680static void *_tmp_14_rule(Parser *p);
681static void *_tmp_15_rule(Parser *p);
682static void *_tmp_16_rule(Parser *p);
683static void *_tmp_17_rule(Parser *p);
684static void *_tmp_18_rule(Parser *p);
685static void *_tmp_19_rule(Parser *p);
686static void *_tmp_20_rule(Parser *p);
687static void *_tmp_21_rule(Parser *p);
688static asdl_seq *_loop1_22_rule(Parser *p);
689static void *_tmp_23_rule(Parser *p);
690static void *_tmp_24_rule(Parser *p);
691static asdl_seq *_loop0_26_rule(Parser *p);
692static asdl_seq *_gather_25_rule(Parser *p);
693static asdl_seq *_loop0_28_rule(Parser *p);
694static asdl_seq *_gather_27_rule(Parser *p);
695static void *_tmp_29_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300696static void *_tmp_30_rule(Parser *p);
697static asdl_seq *_loop0_31_rule(Parser *p);
698static asdl_seq *_loop1_32_rule(Parser *p);
699static asdl_seq *_loop0_34_rule(Parser *p);
700static asdl_seq *_gather_33_rule(Parser *p);
701static void *_tmp_35_rule(Parser *p);
702static asdl_seq *_loop0_37_rule(Parser *p);
703static asdl_seq *_gather_36_rule(Parser *p);
704static void *_tmp_38_rule(Parser *p);
705static asdl_seq *_loop0_40_rule(Parser *p);
706static asdl_seq *_gather_39_rule(Parser *p);
707static asdl_seq *_loop0_42_rule(Parser *p);
708static asdl_seq *_gather_41_rule(Parser *p);
709static asdl_seq *_loop0_44_rule(Parser *p);
710static asdl_seq *_gather_43_rule(Parser *p);
711static asdl_seq *_loop0_46_rule(Parser *p);
712static asdl_seq *_gather_45_rule(Parser *p);
713static void *_tmp_47_rule(Parser *p);
714static asdl_seq *_loop1_48_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100715static void *_tmp_49_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800716static asdl_seq *_loop1_50_rule(Parser *p);
717static asdl_seq *_loop0_52_rule(Parser *p);
718static asdl_seq *_gather_51_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300719static void *_tmp_53_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800720static void *_tmp_54_rule(Parser *p);
721static void *_tmp_55_rule(Parser *p);
722static asdl_seq *_loop0_57_rule(Parser *p);
723static asdl_seq *_gather_56_rule(Parser *p);
724static void *_tmp_58_rule(Parser *p);
725static asdl_seq *_loop0_60_rule(Parser *p);
726static asdl_seq *_gather_59_rule(Parser *p);
727static void *_tmp_61_rule(Parser *p);
728static asdl_seq *_loop0_63_rule(Parser *p);
729static asdl_seq *_gather_62_rule(Parser *p);
730static asdl_seq *_loop0_65_rule(Parser *p);
731static asdl_seq *_gather_64_rule(Parser *p);
732static void *_tmp_66_rule(Parser *p);
733static void *_tmp_67_rule(Parser *p);
734static void *_tmp_68_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300735static void *_tmp_69_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800736static asdl_seq *_loop0_70_rule(Parser *p);
737static asdl_seq *_loop0_71_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000738static asdl_seq *_loop0_72_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000739static asdl_seq *_loop1_73_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300740static asdl_seq *_loop0_74_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800741static asdl_seq *_loop1_75_rule(Parser *p);
742static asdl_seq *_loop1_76_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000743static asdl_seq *_loop1_77_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300744static asdl_seq *_loop0_78_rule(Parser *p);
745static asdl_seq *_loop1_79_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800746static asdl_seq *_loop0_80_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100747static asdl_seq *_loop1_81_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000748static asdl_seq *_loop0_82_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300749static asdl_seq *_loop1_83_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800750static asdl_seq *_loop1_84_rule(Parser *p);
751static void *_tmp_85_rule(Parser *p);
752static asdl_seq *_loop1_86_rule(Parser *p);
753static asdl_seq *_loop0_88_rule(Parser *p);
754static asdl_seq *_gather_87_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100755static asdl_seq *_loop1_89_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800756static asdl_seq *_loop0_90_rule(Parser *p);
757static asdl_seq *_loop0_91_rule(Parser *p);
758static asdl_seq *_loop0_92_rule(Parser *p);
759static asdl_seq *_loop1_93_rule(Parser *p);
760static asdl_seq *_loop0_94_rule(Parser *p);
761static asdl_seq *_loop1_95_rule(Parser *p);
762static asdl_seq *_loop1_96_rule(Parser *p);
763static asdl_seq *_loop1_97_rule(Parser *p);
764static asdl_seq *_loop0_98_rule(Parser *p);
765static asdl_seq *_loop1_99_rule(Parser *p);
766static asdl_seq *_loop0_100_rule(Parser *p);
767static asdl_seq *_loop1_101_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000768static asdl_seq *_loop0_102_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000769static asdl_seq *_loop1_103_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800770static asdl_seq *_loop1_104_rule(Parser *p);
771static asdl_seq *_loop1_105_rule(Parser *p);
772static asdl_seq *_loop1_106_rule(Parser *p);
773static void *_tmp_107_rule(Parser *p);
774static asdl_seq *_loop0_109_rule(Parser *p);
775static asdl_seq *_gather_108_rule(Parser *p);
776static void *_tmp_110_rule(Parser *p);
777static void *_tmp_111_rule(Parser *p);
778static void *_tmp_112_rule(Parser *p);
779static void *_tmp_113_rule(Parser *p);
780static asdl_seq *_loop1_114_rule(Parser *p);
781static void *_tmp_115_rule(Parser *p);
782static void *_tmp_116_rule(Parser *p);
783static asdl_seq *_loop0_118_rule(Parser *p);
784static asdl_seq *_gather_117_rule(Parser *p);
785static asdl_seq *_loop1_119_rule(Parser *p);
786static asdl_seq *_loop0_120_rule(Parser *p);
787static asdl_seq *_loop0_121_rule(Parser *p);
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +0200788static asdl_seq *_loop0_123_rule(Parser *p);
789static asdl_seq *_gather_122_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800790static void *_tmp_124_rule(Parser *p);
791static asdl_seq *_loop0_126_rule(Parser *p);
792static asdl_seq *_gather_125_rule(Parser *p);
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +0300793static asdl_seq *_loop0_128_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800794static asdl_seq *_gather_127_rule(Parser *p);
795static asdl_seq *_loop0_130_rule(Parser *p);
796static asdl_seq *_gather_129_rule(Parser *p);
797static asdl_seq *_loop0_132_rule(Parser *p);
798static asdl_seq *_gather_131_rule(Parser *p);
Pablo Galindo835f14f2021-01-31 22:52:56 +0000799static asdl_seq *_loop0_133_rule(Parser *p);
Pablo Galindo835f14f2021-01-31 22:52:56 +0000800static asdl_seq *_loop0_135_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800801static asdl_seq *_gather_134_rule(Parser *p);
Pablo Galindo835f14f2021-01-31 22:52:56 +0000802static asdl_seq *_loop1_136_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100803static void *_tmp_137_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800804static asdl_seq *_loop0_139_rule(Parser *p);
805static asdl_seq *_gather_138_rule(Parser *p);
Pablo Galindo58fb1562021-02-02 19:54:22 +0000806static asdl_seq *_loop0_141_rule(Parser *p);
807static asdl_seq *_gather_140_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800808static void *_tmp_142_rule(Parser *p);
Pablo Galindob86ed8e2021-04-12 16:59:30 +0100809static void *_tmp_143_rule(Parser *p);
810static void *_tmp_144_rule(Parser *p);
811static void *_tmp_145_rule(Parser *p);
812static asdl_seq *_loop0_146_rule(Parser *p);
813static asdl_seq *_loop0_147_rule(Parser *p);
814static asdl_seq *_loop0_148_rule(Parser *p);
815static void *_tmp_149_rule(Parser *p);
816static void *_tmp_150_rule(Parser *p);
817static void *_tmp_151_rule(Parser *p);
818static asdl_seq *_loop0_152_rule(Parser *p);
819static asdl_seq *_loop1_153_rule(Parser *p);
820static asdl_seq *_loop0_154_rule(Parser *p);
821static asdl_seq *_loop1_155_rule(Parser *p);
822static void *_tmp_156_rule(Parser *p);
823static void *_tmp_157_rule(Parser *p);
824static void *_tmp_158_rule(Parser *p);
825static asdl_seq *_loop0_160_rule(Parser *p);
826static asdl_seq *_gather_159_rule(Parser *p);
827static asdl_seq *_loop0_162_rule(Parser *p);
828static asdl_seq *_gather_161_rule(Parser *p);
Pablo Galindo58fb1562021-02-02 19:54:22 +0000829static void *_tmp_163_rule(Parser *p);
830static void *_tmp_164_rule(Parser *p);
Pablo Galindoda743502021-04-15 14:06:39 +0100831static asdl_seq *_loop0_166_rule(Parser *p);
832static asdl_seq *_gather_165_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800833static void *_tmp_167_rule(Parser *p);
834static void *_tmp_168_rule(Parser *p);
835static void *_tmp_169_rule(Parser *p);
836static void *_tmp_170_rule(Parser *p);
837static void *_tmp_171_rule(Parser *p);
838static void *_tmp_172_rule(Parser *p);
839static void *_tmp_173_rule(Parser *p);
840static void *_tmp_174_rule(Parser *p);
841static void *_tmp_175_rule(Parser *p);
842static void *_tmp_176_rule(Parser *p);
843static void *_tmp_177_rule(Parser *p);
844static void *_tmp_178_rule(Parser *p);
845static void *_tmp_179_rule(Parser *p);
846static void *_tmp_180_rule(Parser *p);
847static void *_tmp_181_rule(Parser *p);
848static void *_tmp_182_rule(Parser *p);
Pablo Galindob86ed8e2021-04-12 16:59:30 +0100849static void *_tmp_183_rule(Parser *p);
850static void *_tmp_184_rule(Parser *p);
851static void *_tmp_185_rule(Parser *p);
Pablo Galindoda743502021-04-15 14:06:39 +0100852static void *_tmp_186_rule(Parser *p);
853static void *_tmp_187_rule(Parser *p);
854static void *_tmp_188_rule(Parser *p);
Guido van Rossum85a5fbb1990-10-14 12:07:46 +0000855
856
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100857// file: statements? $
858static mod_ty
859file_rule(Parser *p)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +0000860{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100861 D(p->level++);
862 if (p->error_indicator) {
863 D(p->level--);
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000864 return NULL;
865 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100866 mod_ty _res = NULL;
867 int _mark = p->mark;
868 { // statements? $
869 if (p->error_indicator) {
870 D(p->level--);
871 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000872 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100873 D(fprintf(stderr, "%*c> file[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statements? $"));
874 void *a;
875 Token * endmarker_var;
876 if (
877 (a = statements_rule(p), 1) // statements?
878 &&
879 (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
880 )
881 {
882 D(fprintf(stderr, "%*c+ file[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "statements? $"));
883 _res = _PyPegen_make_module ( p , a );
884 if (_res == NULL && PyErr_Occurred()) {
885 p->error_indicator = 1;
886 D(p->level--);
887 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000888 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100889 goto done;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000890 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100891 p->mark = _mark;
892 D(fprintf(stderr, "%*c%s file[%d-%d]: %s failed!\n", p->level, ' ',
893 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statements? $"));
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000894 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100895 _res = NULL;
896 done:
897 D(p->level--);
898 return _res;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +0000899}
900
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100901// interactive: statement_newline
902static mod_ty
903interactive_rule(Parser *p)
Guido van Rossumb09f7ed2001-07-15 21:08:29 +0000904{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100905 D(p->level++);
906 if (p->error_indicator) {
907 D(p->level--);
908 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000909 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100910 mod_ty _res = NULL;
911 int _mark = p->mark;
912 { // statement_newline
913 if (p->error_indicator) {
914 D(p->level--);
915 return NULL;
916 }
917 D(fprintf(stderr, "%*c> interactive[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statement_newline"));
Pablo Galindoa5634c42020-09-16 19:42:00 +0100918 asdl_stmt_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100919 if (
920 (a = statement_newline_rule(p)) // statement_newline
921 )
922 {
923 D(fprintf(stderr, "%*c+ interactive[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "statement_newline"));
Victor Stinnerd27f8d22021-04-07 21:34:22 +0200924 _res = _PyAST_Interactive ( a , p -> arena );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100925 if (_res == NULL && PyErr_Occurred()) {
926 p->error_indicator = 1;
927 D(p->level--);
928 return NULL;
929 }
930 goto done;
931 }
932 p->mark = _mark;
933 D(fprintf(stderr, "%*c%s interactive[%d-%d]: %s failed!\n", p->level, ' ',
934 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statement_newline"));
935 }
936 _res = NULL;
937 done:
938 D(p->level--);
939 return _res;
Guido van Rossumb09f7ed2001-07-15 21:08:29 +0000940}
941
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100942// eval: expressions NEWLINE* $
943static mod_ty
944eval_rule(Parser *p)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +0000945{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100946 D(p->level++);
947 if (p->error_indicator) {
948 D(p->level--);
949 return NULL;
950 }
951 mod_ty _res = NULL;
952 int _mark = p->mark;
953 { // expressions NEWLINE* $
954 if (p->error_indicator) {
955 D(p->level--);
956 return NULL;
957 }
958 D(fprintf(stderr, "%*c> eval[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expressions NEWLINE* $"));
959 asdl_seq * _loop0_1_var;
960 expr_ty a;
961 Token * endmarker_var;
962 if (
963 (a = expressions_rule(p)) // expressions
964 &&
965 (_loop0_1_var = _loop0_1_rule(p)) // NEWLINE*
966 &&
967 (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
968 )
969 {
970 D(fprintf(stderr, "%*c+ eval[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expressions NEWLINE* $"));
Victor Stinnerd27f8d22021-04-07 21:34:22 +0200971 _res = _PyAST_Expression ( a , p -> arena );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100972 if (_res == NULL && PyErr_Occurred()) {
973 p->error_indicator = 1;
974 D(p->level--);
975 return NULL;
976 }
977 goto done;
978 }
979 p->mark = _mark;
980 D(fprintf(stderr, "%*c%s eval[%d-%d]: %s failed!\n", p->level, ' ',
981 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expressions NEWLINE* $"));
982 }
983 _res = NULL;
984 done:
985 D(p->level--);
986 return _res;
987}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000988
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100989// func_type: '(' type_expressions? ')' '->' expression NEWLINE* $
990static mod_ty
991func_type_rule(Parser *p)
992{
993 D(p->level++);
994 if (p->error_indicator) {
995 D(p->level--);
996 return NULL;
997 }
998 mod_ty _res = NULL;
999 int _mark = p->mark;
1000 { // '(' type_expressions? ')' '->' expression NEWLINE* $
1001 if (p->error_indicator) {
1002 D(p->level--);
1003 return NULL;
1004 }
1005 D(fprintf(stderr, "%*c> func_type[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' type_expressions? ')' '->' expression NEWLINE* $"));
1006 Token * _literal;
1007 Token * _literal_1;
1008 Token * _literal_2;
1009 asdl_seq * _loop0_2_var;
1010 void *a;
1011 expr_ty b;
1012 Token * endmarker_var;
1013 if (
1014 (_literal = _PyPegen_expect_token(p, 7)) // token='('
1015 &&
1016 (a = type_expressions_rule(p), 1) // type_expressions?
1017 &&
1018 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
1019 &&
1020 (_literal_2 = _PyPegen_expect_token(p, 51)) // token='->'
1021 &&
1022 (b = expression_rule(p)) // expression
1023 &&
1024 (_loop0_2_var = _loop0_2_rule(p)) // NEWLINE*
1025 &&
1026 (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
1027 )
1028 {
1029 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 +02001030 _res = _PyAST_FunctionType ( a , b , p -> arena );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001031 if (_res == NULL && PyErr_Occurred()) {
1032 p->error_indicator = 1;
1033 D(p->level--);
1034 return NULL;
1035 }
1036 goto done;
1037 }
1038 p->mark = _mark;
1039 D(fprintf(stderr, "%*c%s func_type[%d-%d]: %s failed!\n", p->level, ' ',
1040 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' type_expressions? ')' '->' expression NEWLINE* $"));
1041 }
1042 _res = NULL;
1043 done:
1044 D(p->level--);
1045 return _res;
1046}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +00001047
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001048// fstring: star_expressions
1049static expr_ty
1050fstring_rule(Parser *p)
1051{
1052 D(p->level++);
1053 if (p->error_indicator) {
1054 D(p->level--);
1055 return NULL;
1056 }
1057 expr_ty _res = NULL;
1058 int _mark = p->mark;
1059 { // star_expressions
1060 if (p->error_indicator) {
1061 D(p->level--);
1062 return NULL;
1063 }
1064 D(fprintf(stderr, "%*c> fstring[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
1065 expr_ty star_expressions_var;
1066 if (
1067 (star_expressions_var = star_expressions_rule(p)) // star_expressions
1068 )
1069 {
1070 D(fprintf(stderr, "%*c+ fstring[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
1071 _res = star_expressions_var;
1072 goto done;
1073 }
1074 p->mark = _mark;
1075 D(fprintf(stderr, "%*c%s fstring[%d-%d]: %s failed!\n", p->level, ' ',
1076 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
1077 }
1078 _res = NULL;
1079 done:
1080 D(p->level--);
1081 return _res;
1082}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +00001083
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001084// type_expressions:
1085// | ','.expression+ ',' '*' expression ',' '**' expression
1086// | ','.expression+ ',' '*' expression
1087// | ','.expression+ ',' '**' expression
1088// | '*' expression ',' '**' expression
1089// | '*' expression
1090// | '**' expression
1091// | ','.expression+
Pablo Galindoa5634c42020-09-16 19:42:00 +01001092static asdl_expr_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001093type_expressions_rule(Parser *p)
1094{
1095 D(p->level++);
1096 if (p->error_indicator) {
1097 D(p->level--);
1098 return NULL;
1099 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01001100 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001101 int _mark = p->mark;
1102 { // ','.expression+ ',' '*' expression ',' '**' expression
1103 if (p->error_indicator) {
1104 D(p->level--);
1105 return NULL;
1106 }
1107 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '*' expression ',' '**' expression"));
1108 Token * _literal;
1109 Token * _literal_1;
1110 Token * _literal_2;
1111 Token * _literal_3;
1112 asdl_seq * a;
1113 expr_ty b;
1114 expr_ty c;
1115 if (
1116 (a = _gather_3_rule(p)) // ','.expression+
1117 &&
1118 (_literal = _PyPegen_expect_token(p, 12)) // token=','
1119 &&
1120 (_literal_1 = _PyPegen_expect_token(p, 16)) // token='*'
1121 &&
1122 (b = expression_rule(p)) // expression
1123 &&
1124 (_literal_2 = _PyPegen_expect_token(p, 12)) // token=','
1125 &&
1126 (_literal_3 = _PyPegen_expect_token(p, 35)) // token='**'
1127 &&
1128 (c = expression_rule(p)) // expression
1129 )
1130 {
1131 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 +03001132 _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 +01001133 if (_res == NULL && PyErr_Occurred()) {
1134 p->error_indicator = 1;
1135 D(p->level--);
1136 return NULL;
1137 }
1138 goto done;
1139 }
1140 p->mark = _mark;
1141 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1142 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+ ',' '*' expression ',' '**' expression"));
1143 }
1144 { // ','.expression+ ',' '*' expression
1145 if (p->error_indicator) {
1146 D(p->level--);
1147 return NULL;
1148 }
1149 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '*' expression"));
1150 Token * _literal;
1151 Token * _literal_1;
1152 asdl_seq * a;
1153 expr_ty b;
1154 if (
1155 (a = _gather_5_rule(p)) // ','.expression+
1156 &&
1157 (_literal = _PyPegen_expect_token(p, 12)) // token=','
1158 &&
1159 (_literal_1 = _PyPegen_expect_token(p, 16)) // token='*'
1160 &&
1161 (b = expression_rule(p)) // expression
1162 )
1163 {
1164 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 +01001165 _res = ( asdl_expr_seq * ) _PyPegen_seq_append_to_end ( p , a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001166 if (_res == NULL && PyErr_Occurred()) {
1167 p->error_indicator = 1;
1168 D(p->level--);
1169 return NULL;
1170 }
1171 goto done;
1172 }
1173 p->mark = _mark;
1174 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1175 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+ ',' '*' expression"));
1176 }
1177 { // ','.expression+ ',' '**' expression
1178 if (p->error_indicator) {
1179 D(p->level--);
1180 return NULL;
1181 }
1182 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '**' expression"));
1183 Token * _literal;
1184 Token * _literal_1;
1185 asdl_seq * a;
1186 expr_ty b;
1187 if (
1188 (a = _gather_7_rule(p)) // ','.expression+
1189 &&
1190 (_literal = _PyPegen_expect_token(p, 12)) // token=','
1191 &&
1192 (_literal_1 = _PyPegen_expect_token(p, 35)) // token='**'
1193 &&
1194 (b = expression_rule(p)) // expression
1195 )
1196 {
1197 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 +01001198 _res = ( asdl_expr_seq * ) _PyPegen_seq_append_to_end ( p , a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001199 if (_res == NULL && PyErr_Occurred()) {
1200 p->error_indicator = 1;
1201 D(p->level--);
1202 return NULL;
1203 }
1204 goto done;
1205 }
1206 p->mark = _mark;
1207 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1208 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+ ',' '**' expression"));
1209 }
1210 { // '*' expression ',' '**' expression
1211 if (p->error_indicator) {
1212 D(p->level--);
1213 return NULL;
1214 }
1215 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' expression ',' '**' expression"));
1216 Token * _literal;
1217 Token * _literal_1;
1218 Token * _literal_2;
1219 expr_ty a;
1220 expr_ty b;
1221 if (
1222 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
1223 &&
1224 (a = expression_rule(p)) // expression
1225 &&
1226 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
1227 &&
1228 (_literal_2 = _PyPegen_expect_token(p, 35)) // token='**'
1229 &&
1230 (b = expression_rule(p)) // expression
1231 )
1232 {
1233 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 +03001234 _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 +01001235 if (_res == NULL && PyErr_Occurred()) {
1236 p->error_indicator = 1;
1237 D(p->level--);
1238 return NULL;
1239 }
1240 goto done;
1241 }
1242 p->mark = _mark;
1243 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1244 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' expression ',' '**' expression"));
1245 }
1246 { // '*' expression
1247 if (p->error_indicator) {
1248 D(p->level--);
1249 return NULL;
1250 }
1251 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' expression"));
1252 Token * _literal;
1253 expr_ty a;
1254 if (
1255 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
1256 &&
1257 (a = expression_rule(p)) // expression
1258 )
1259 {
1260 D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' expression"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001261 _res = ( asdl_expr_seq * ) _PyPegen_singleton_seq ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001262 if (_res == NULL && PyErr_Occurred()) {
1263 p->error_indicator = 1;
1264 D(p->level--);
1265 return NULL;
1266 }
1267 goto done;
1268 }
1269 p->mark = _mark;
1270 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1271 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' expression"));
1272 }
1273 { // '**' expression
1274 if (p->error_indicator) {
1275 D(p->level--);
1276 return NULL;
1277 }
1278 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' expression"));
1279 Token * _literal;
1280 expr_ty a;
1281 if (
1282 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
1283 &&
1284 (a = expression_rule(p)) // expression
1285 )
1286 {
1287 D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' expression"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001288 _res = ( asdl_expr_seq * ) _PyPegen_singleton_seq ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001289 if (_res == NULL && PyErr_Occurred()) {
1290 p->error_indicator = 1;
1291 D(p->level--);
1292 return NULL;
1293 }
1294 goto done;
1295 }
1296 p->mark = _mark;
1297 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1298 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' expression"));
1299 }
1300 { // ','.expression+
1301 if (p->error_indicator) {
1302 D(p->level--);
1303 return NULL;
1304 }
1305 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001306 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001307 if (
Pablo Galindoa5634c42020-09-16 19:42:00 +01001308 (a = (asdl_expr_seq*)_gather_9_rule(p)) // ','.expression+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001309 )
1310 {
1311 D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.expression+"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001312 _res = a;
1313 if (_res == NULL && PyErr_Occurred()) {
1314 p->error_indicator = 1;
1315 D(p->level--);
1316 return NULL;
1317 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001318 goto done;
1319 }
1320 p->mark = _mark;
1321 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1322 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+"));
1323 }
1324 _res = NULL;
1325 done:
1326 D(p->level--);
1327 return _res;
1328}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +00001329
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001330// statements: statement+
Pablo Galindoa5634c42020-09-16 19:42:00 +01001331static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001332statements_rule(Parser *p)
1333{
1334 D(p->level++);
1335 if (p->error_indicator) {
1336 D(p->level--);
1337 return NULL;
1338 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01001339 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001340 int _mark = p->mark;
1341 { // statement+
1342 if (p->error_indicator) {
1343 D(p->level--);
1344 return NULL;
1345 }
1346 D(fprintf(stderr, "%*c> statements[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statement+"));
1347 asdl_seq * a;
1348 if (
1349 (a = _loop1_11_rule(p)) // statement+
1350 )
1351 {
1352 D(fprintf(stderr, "%*c+ statements[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "statement+"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001353 _res = ( asdl_stmt_seq * ) _PyPegen_seq_flatten ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001354 if (_res == NULL && PyErr_Occurred()) {
1355 p->error_indicator = 1;
1356 D(p->level--);
1357 return NULL;
1358 }
1359 goto done;
1360 }
1361 p->mark = _mark;
1362 D(fprintf(stderr, "%*c%s statements[%d-%d]: %s failed!\n", p->level, ' ',
1363 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statement+"));
1364 }
1365 _res = NULL;
1366 done:
1367 D(p->level--);
1368 return _res;
1369}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +00001370
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001371// statement: compound_stmt | simple_stmts
Pablo Galindoa5634c42020-09-16 19:42:00 +01001372static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001373statement_rule(Parser *p)
1374{
1375 D(p->level++);
1376 if (p->error_indicator) {
1377 D(p->level--);
1378 return NULL;
1379 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01001380 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001381 int _mark = p->mark;
1382 { // compound_stmt
1383 if (p->error_indicator) {
1384 D(p->level--);
1385 return NULL;
1386 }
1387 D(fprintf(stderr, "%*c> statement[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "compound_stmt"));
1388 stmt_ty a;
1389 if (
1390 (a = compound_stmt_rule(p)) // compound_stmt
1391 )
1392 {
1393 D(fprintf(stderr, "%*c+ statement[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "compound_stmt"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001394 _res = ( asdl_stmt_seq * ) _PyPegen_singleton_seq ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001395 if (_res == NULL && PyErr_Occurred()) {
1396 p->error_indicator = 1;
1397 D(p->level--);
1398 return NULL;
1399 }
1400 goto done;
1401 }
1402 p->mark = _mark;
1403 D(fprintf(stderr, "%*c%s statement[%d-%d]: %s failed!\n", p->level, ' ',
1404 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "compound_stmt"));
1405 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001406 { // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001407 if (p->error_indicator) {
1408 D(p->level--);
1409 return NULL;
1410 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001411 D(fprintf(stderr, "%*c> statement[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001412 asdl_stmt_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001413 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001414 (a = (asdl_stmt_seq*)simple_stmts_rule(p)) // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001415 )
1416 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001417 D(fprintf(stderr, "%*c+ statement[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001418 _res = a;
1419 if (_res == NULL && PyErr_Occurred()) {
1420 p->error_indicator = 1;
1421 D(p->level--);
1422 return NULL;
1423 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001424 goto done;
1425 }
1426 p->mark = _mark;
1427 D(fprintf(stderr, "%*c%s statement[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001428 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmts"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001429 }
1430 _res = NULL;
1431 done:
1432 D(p->level--);
1433 return _res;
1434}
1435
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001436// statement_newline: compound_stmt NEWLINE | simple_stmts | NEWLINE | $
Pablo Galindoa5634c42020-09-16 19:42:00 +01001437static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001438statement_newline_rule(Parser *p)
1439{
1440 D(p->level++);
1441 if (p->error_indicator) {
1442 D(p->level--);
1443 return NULL;
1444 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01001445 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001446 int _mark = p->mark;
1447 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
1448 p->error_indicator = 1;
1449 D(p->level--);
1450 return NULL;
1451 }
1452 int _start_lineno = p->tokens[_mark]->lineno;
1453 UNUSED(_start_lineno); // Only used by EXTRA macro
1454 int _start_col_offset = p->tokens[_mark]->col_offset;
1455 UNUSED(_start_col_offset); // Only used by EXTRA macro
1456 { // compound_stmt NEWLINE
1457 if (p->error_indicator) {
1458 D(p->level--);
1459 return NULL;
1460 }
1461 D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "compound_stmt NEWLINE"));
1462 stmt_ty a;
1463 Token * newline_var;
1464 if (
1465 (a = compound_stmt_rule(p)) // compound_stmt
1466 &&
1467 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
1468 )
1469 {
1470 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 +01001471 _res = ( asdl_stmt_seq * ) _PyPegen_singleton_seq ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001472 if (_res == NULL && PyErr_Occurred()) {
1473 p->error_indicator = 1;
1474 D(p->level--);
1475 return NULL;
1476 }
1477 goto done;
1478 }
1479 p->mark = _mark;
1480 D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
1481 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "compound_stmt NEWLINE"));
1482 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001483 { // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001484 if (p->error_indicator) {
1485 D(p->level--);
1486 return NULL;
1487 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001488 D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
1489 asdl_stmt_seq* simple_stmts_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001490 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001491 (simple_stmts_var = simple_stmts_rule(p)) // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001492 )
1493 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001494 D(fprintf(stderr, "%*c+ statement_newline[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
1495 _res = simple_stmts_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001496 goto done;
1497 }
1498 p->mark = _mark;
1499 D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001500 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmts"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001501 }
1502 { // NEWLINE
1503 if (p->error_indicator) {
1504 D(p->level--);
1505 return NULL;
1506 }
1507 D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
1508 Token * newline_var;
1509 if (
1510 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
1511 )
1512 {
1513 D(fprintf(stderr, "%*c+ statement_newline[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
1514 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1515 if (_token == NULL) {
1516 D(p->level--);
1517 return NULL;
1518 }
1519 int _end_lineno = _token->end_lineno;
1520 UNUSED(_end_lineno); // Only used by EXTRA macro
1521 int _end_col_offset = _token->end_col_offset;
1522 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02001523 _res = ( asdl_stmt_seq * ) _PyPegen_singleton_seq ( p , CHECK ( stmt_ty , _PyAST_Pass ( EXTRA ) ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001524 if (_res == NULL && PyErr_Occurred()) {
1525 p->error_indicator = 1;
1526 D(p->level--);
1527 return NULL;
1528 }
1529 goto done;
1530 }
1531 p->mark = _mark;
1532 D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
1533 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
1534 }
1535 { // $
1536 if (p->error_indicator) {
1537 D(p->level--);
1538 return NULL;
1539 }
1540 D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "$"));
1541 Token * endmarker_var;
1542 if (
1543 (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
1544 )
1545 {
1546 D(fprintf(stderr, "%*c+ statement_newline[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "$"));
1547 _res = _PyPegen_interactive_exit ( p );
1548 if (_res == NULL && PyErr_Occurred()) {
1549 p->error_indicator = 1;
1550 D(p->level--);
1551 return NULL;
1552 }
1553 goto done;
1554 }
1555 p->mark = _mark;
1556 D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
1557 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "$"));
1558 }
1559 _res = NULL;
1560 done:
1561 D(p->level--);
1562 return _res;
1563}
1564
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001565// simple_stmts: simple_stmt !';' NEWLINE | ';'.simple_stmt+ ';'? NEWLINE
Pablo Galindoa5634c42020-09-16 19:42:00 +01001566static asdl_stmt_seq*
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001567simple_stmts_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001568{
1569 D(p->level++);
1570 if (p->error_indicator) {
1571 D(p->level--);
1572 return NULL;
1573 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01001574 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001575 int _mark = p->mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001576 { // simple_stmt !';' NEWLINE
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001577 if (p->error_indicator) {
1578 D(p->level--);
1579 return NULL;
1580 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001581 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 +01001582 stmt_ty a;
1583 Token * newline_var;
1584 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001585 (a = simple_stmt_rule(p)) // simple_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001586 &&
1587 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 13) // token=';'
1588 &&
1589 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
1590 )
1591 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001592 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 +01001593 _res = ( asdl_stmt_seq * ) _PyPegen_singleton_seq ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001594 if (_res == NULL && PyErr_Occurred()) {
1595 p->error_indicator = 1;
1596 D(p->level--);
1597 return NULL;
1598 }
1599 goto done;
1600 }
1601 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001602 D(fprintf(stderr, "%*c%s simple_stmts[%d-%d]: %s failed!\n", p->level, ' ',
1603 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmt !';' NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001604 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001605 { // ';'.simple_stmt+ ';'? NEWLINE
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001606 if (p->error_indicator) {
1607 D(p->level--);
1608 return NULL;
1609 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001610 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 +01001611 void *_opt_var;
1612 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +01001613 asdl_stmt_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001614 Token * newline_var;
1615 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001616 (a = (asdl_stmt_seq*)_gather_12_rule(p)) // ';'.simple_stmt+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001617 &&
1618 (_opt_var = _PyPegen_expect_token(p, 13), 1) // ';'?
1619 &&
1620 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
1621 )
1622 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001623 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 +01001624 _res = a;
1625 if (_res == NULL && PyErr_Occurred()) {
1626 p->error_indicator = 1;
1627 D(p->level--);
1628 return NULL;
1629 }
1630 goto done;
1631 }
1632 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001633 D(fprintf(stderr, "%*c%s simple_stmts[%d-%d]: %s failed!\n", p->level, ' ',
1634 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "';'.simple_stmt+ ';'? NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001635 }
1636 _res = NULL;
1637 done:
1638 D(p->level--);
1639 return _res;
1640}
1641
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001642// simple_stmt:
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001643// | assignment
1644// | star_expressions
1645// | &'return' return_stmt
1646// | &('import' | 'from') import_stmt
1647// | &'raise' raise_stmt
1648// | 'pass'
1649// | &'del' del_stmt
1650// | &'yield' yield_stmt
1651// | &'assert' assert_stmt
1652// | 'break'
1653// | 'continue'
1654// | &'global' global_stmt
1655// | &'nonlocal' nonlocal_stmt
1656static stmt_ty
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001657simple_stmt_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001658{
1659 D(p->level++);
1660 if (p->error_indicator) {
1661 D(p->level--);
1662 return NULL;
1663 }
1664 stmt_ty _res = NULL;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001665 if (_PyPegen_is_memoized(p, simple_stmt_type, &_res)) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001666 D(p->level--);
1667 return _res;
1668 }
1669 int _mark = p->mark;
1670 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
1671 p->error_indicator = 1;
1672 D(p->level--);
1673 return NULL;
1674 }
1675 int _start_lineno = p->tokens[_mark]->lineno;
1676 UNUSED(_start_lineno); // Only used by EXTRA macro
1677 int _start_col_offset = p->tokens[_mark]->col_offset;
1678 UNUSED(_start_col_offset); // Only used by EXTRA macro
1679 { // assignment
1680 if (p->error_indicator) {
1681 D(p->level--);
1682 return NULL;
1683 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001684 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "assignment"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001685 stmt_ty assignment_var;
1686 if (
1687 (assignment_var = assignment_rule(p)) // assignment
1688 )
1689 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001690 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "assignment"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001691 _res = assignment_var;
1692 goto done;
1693 }
1694 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001695 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001696 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "assignment"));
1697 }
1698 { // star_expressions
1699 if (p->error_indicator) {
1700 D(p->level--);
1701 return NULL;
1702 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001703 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001704 expr_ty e;
1705 if (
1706 (e = star_expressions_rule(p)) // star_expressions
1707 )
1708 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001709 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 +01001710 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1711 if (_token == NULL) {
1712 D(p->level--);
1713 return NULL;
1714 }
1715 int _end_lineno = _token->end_lineno;
1716 UNUSED(_end_lineno); // Only used by EXTRA macro
1717 int _end_col_offset = _token->end_col_offset;
1718 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02001719 _res = _PyAST_Expr ( e , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001720 if (_res == NULL && PyErr_Occurred()) {
1721 p->error_indicator = 1;
1722 D(p->level--);
1723 return NULL;
1724 }
1725 goto done;
1726 }
1727 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001728 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001729 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
1730 }
1731 { // &'return' return_stmt
1732 if (p->error_indicator) {
1733 D(p->level--);
1734 return NULL;
1735 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001736 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 +01001737 stmt_ty return_stmt_var;
1738 if (
1739 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 500) // token='return'
1740 &&
1741 (return_stmt_var = return_stmt_rule(p)) // return_stmt
1742 )
1743 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001744 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 +01001745 _res = return_stmt_var;
1746 goto done;
1747 }
1748 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001749 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001750 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'return' return_stmt"));
1751 }
1752 { // &('import' | 'from') import_stmt
1753 if (p->error_indicator) {
1754 D(p->level--);
1755 return NULL;
1756 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001757 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 +01001758 stmt_ty import_stmt_var;
1759 if (
1760 _PyPegen_lookahead(1, _tmp_14_rule, p)
1761 &&
1762 (import_stmt_var = import_stmt_rule(p)) // import_stmt
1763 )
1764 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001765 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 +01001766 _res = import_stmt_var;
1767 goto done;
1768 }
1769 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001770 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001771 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('import' | 'from') import_stmt"));
1772 }
1773 { // &'raise' raise_stmt
1774 if (p->error_indicator) {
1775 D(p->level--);
1776 return NULL;
1777 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001778 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 +01001779 stmt_ty raise_stmt_var;
1780 if (
1781 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 501) // token='raise'
1782 &&
1783 (raise_stmt_var = raise_stmt_rule(p)) // raise_stmt
1784 )
1785 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001786 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 +01001787 _res = raise_stmt_var;
1788 goto done;
1789 }
1790 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001791 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001792 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'raise' raise_stmt"));
1793 }
1794 { // 'pass'
1795 if (p->error_indicator) {
1796 D(p->level--);
1797 return NULL;
1798 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001799 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'pass'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001800 Token * _keyword;
1801 if (
1802 (_keyword = _PyPegen_expect_token(p, 502)) // token='pass'
1803 )
1804 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001805 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'pass'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001806 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1807 if (_token == NULL) {
1808 D(p->level--);
1809 return NULL;
1810 }
1811 int _end_lineno = _token->end_lineno;
1812 UNUSED(_end_lineno); // Only used by EXTRA macro
1813 int _end_col_offset = _token->end_col_offset;
1814 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02001815 _res = _PyAST_Pass ( EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001816 if (_res == NULL && PyErr_Occurred()) {
1817 p->error_indicator = 1;
1818 D(p->level--);
1819 return NULL;
1820 }
1821 goto done;
1822 }
1823 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001824 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001825 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'pass'"));
1826 }
1827 { // &'del' del_stmt
1828 if (p->error_indicator) {
1829 D(p->level--);
1830 return NULL;
1831 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001832 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 +01001833 stmt_ty del_stmt_var;
1834 if (
1835 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 503) // token='del'
1836 &&
1837 (del_stmt_var = del_stmt_rule(p)) // del_stmt
1838 )
1839 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001840 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 +01001841 _res = del_stmt_var;
1842 goto done;
1843 }
1844 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001845 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001846 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'del' del_stmt"));
1847 }
1848 { // &'yield' yield_stmt
1849 if (p->error_indicator) {
1850 D(p->level--);
1851 return NULL;
1852 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001853 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 +01001854 stmt_ty yield_stmt_var;
1855 if (
1856 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 504) // token='yield'
1857 &&
1858 (yield_stmt_var = yield_stmt_rule(p)) // yield_stmt
1859 )
1860 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001861 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 +01001862 _res = yield_stmt_var;
1863 goto done;
1864 }
1865 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001866 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001867 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'yield' yield_stmt"));
1868 }
1869 { // &'assert' assert_stmt
1870 if (p->error_indicator) {
1871 D(p->level--);
1872 return NULL;
1873 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001874 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 +01001875 stmt_ty assert_stmt_var;
1876 if (
1877 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 505) // token='assert'
1878 &&
1879 (assert_stmt_var = assert_stmt_rule(p)) // assert_stmt
1880 )
1881 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001882 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 +01001883 _res = assert_stmt_var;
1884 goto done;
1885 }
1886 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001887 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001888 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'assert' assert_stmt"));
1889 }
1890 { // 'break'
1891 if (p->error_indicator) {
1892 D(p->level--);
1893 return NULL;
1894 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001895 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'break'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001896 Token * _keyword;
1897 if (
1898 (_keyword = _PyPegen_expect_token(p, 506)) // token='break'
1899 )
1900 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001901 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'break'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001902 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1903 if (_token == NULL) {
1904 D(p->level--);
1905 return NULL;
1906 }
1907 int _end_lineno = _token->end_lineno;
1908 UNUSED(_end_lineno); // Only used by EXTRA macro
1909 int _end_col_offset = _token->end_col_offset;
1910 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02001911 _res = _PyAST_Break ( EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001912 if (_res == NULL && PyErr_Occurred()) {
1913 p->error_indicator = 1;
1914 D(p->level--);
1915 return NULL;
1916 }
1917 goto done;
1918 }
1919 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001920 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001921 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'break'"));
1922 }
1923 { // 'continue'
1924 if (p->error_indicator) {
1925 D(p->level--);
1926 return NULL;
1927 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001928 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'continue'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001929 Token * _keyword;
1930 if (
1931 (_keyword = _PyPegen_expect_token(p, 507)) // token='continue'
1932 )
1933 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001934 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'continue'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001935 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1936 if (_token == NULL) {
1937 D(p->level--);
1938 return NULL;
1939 }
1940 int _end_lineno = _token->end_lineno;
1941 UNUSED(_end_lineno); // Only used by EXTRA macro
1942 int _end_col_offset = _token->end_col_offset;
1943 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02001944 _res = _PyAST_Continue ( EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001945 if (_res == NULL && PyErr_Occurred()) {
1946 p->error_indicator = 1;
1947 D(p->level--);
1948 return NULL;
1949 }
1950 goto done;
1951 }
1952 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001953 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001954 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'continue'"));
1955 }
1956 { // &'global' global_stmt
1957 if (p->error_indicator) {
1958 D(p->level--);
1959 return NULL;
1960 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001961 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 +01001962 stmt_ty global_stmt_var;
1963 if (
1964 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 508) // token='global'
1965 &&
1966 (global_stmt_var = global_stmt_rule(p)) // global_stmt
1967 )
1968 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001969 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 +01001970 _res = global_stmt_var;
1971 goto done;
1972 }
1973 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001974 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001975 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'global' global_stmt"));
1976 }
1977 { // &'nonlocal' nonlocal_stmt
1978 if (p->error_indicator) {
1979 D(p->level--);
1980 return NULL;
1981 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001982 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 +01001983 stmt_ty nonlocal_stmt_var;
1984 if (
1985 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 509) // token='nonlocal'
1986 &&
1987 (nonlocal_stmt_var = nonlocal_stmt_rule(p)) // nonlocal_stmt
1988 )
1989 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001990 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 +01001991 _res = nonlocal_stmt_var;
1992 goto done;
1993 }
1994 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001995 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001996 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'nonlocal' nonlocal_stmt"));
1997 }
1998 _res = NULL;
1999 done:
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00002000 _PyPegen_insert_memo(p, _mark, simple_stmt_type, _res);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002001 D(p->level--);
2002 return _res;
2003}
2004
2005// compound_stmt:
2006// | &('def' | '@' | ASYNC) function_def
2007// | &'if' if_stmt
2008// | &('class' | '@') class_def
2009// | &('with' | ASYNC) with_stmt
2010// | &('for' | ASYNC) for_stmt
2011// | &'try' try_stmt
2012// | &'while' while_stmt
Brandt Bucher145bf262021-02-26 14:51:55 -08002013// | match_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002014static stmt_ty
2015compound_stmt_rule(Parser *p)
2016{
2017 D(p->level++);
2018 if (p->error_indicator) {
2019 D(p->level--);
2020 return NULL;
2021 }
2022 stmt_ty _res = NULL;
2023 int _mark = p->mark;
2024 { // &('def' | '@' | ASYNC) function_def
2025 if (p->error_indicator) {
2026 D(p->level--);
2027 return NULL;
2028 }
2029 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('def' | '@' | ASYNC) function_def"));
2030 stmt_ty function_def_var;
2031 if (
2032 _PyPegen_lookahead(1, _tmp_15_rule, p)
2033 &&
2034 (function_def_var = function_def_rule(p)) // function_def
2035 )
2036 {
2037 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('def' | '@' | ASYNC) function_def"));
2038 _res = function_def_var;
2039 goto done;
2040 }
2041 p->mark = _mark;
2042 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2043 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('def' | '@' | ASYNC) function_def"));
2044 }
2045 { // &'if' if_stmt
2046 if (p->error_indicator) {
2047 D(p->level--);
2048 return NULL;
2049 }
2050 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'if' if_stmt"));
2051 stmt_ty if_stmt_var;
2052 if (
2053 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 510) // token='if'
2054 &&
2055 (if_stmt_var = if_stmt_rule(p)) // if_stmt
2056 )
2057 {
2058 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'if' if_stmt"));
2059 _res = if_stmt_var;
2060 goto done;
2061 }
2062 p->mark = _mark;
2063 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2064 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'if' if_stmt"));
2065 }
2066 { // &('class' | '@') class_def
2067 if (p->error_indicator) {
2068 D(p->level--);
2069 return NULL;
2070 }
2071 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('class' | '@') class_def"));
2072 stmt_ty class_def_var;
2073 if (
2074 _PyPegen_lookahead(1, _tmp_16_rule, p)
2075 &&
2076 (class_def_var = class_def_rule(p)) // class_def
2077 )
2078 {
2079 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('class' | '@') class_def"));
2080 _res = class_def_var;
2081 goto done;
2082 }
2083 p->mark = _mark;
2084 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2085 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('class' | '@') class_def"));
2086 }
2087 { // &('with' | ASYNC) with_stmt
2088 if (p->error_indicator) {
2089 D(p->level--);
2090 return NULL;
2091 }
2092 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('with' | ASYNC) with_stmt"));
2093 stmt_ty with_stmt_var;
2094 if (
2095 _PyPegen_lookahead(1, _tmp_17_rule, p)
2096 &&
2097 (with_stmt_var = with_stmt_rule(p)) // with_stmt
2098 )
2099 {
2100 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('with' | ASYNC) with_stmt"));
2101 _res = with_stmt_var;
2102 goto done;
2103 }
2104 p->mark = _mark;
2105 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2106 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('with' | ASYNC) with_stmt"));
2107 }
2108 { // &('for' | ASYNC) for_stmt
2109 if (p->error_indicator) {
2110 D(p->level--);
2111 return NULL;
2112 }
2113 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('for' | ASYNC) for_stmt"));
2114 stmt_ty for_stmt_var;
2115 if (
2116 _PyPegen_lookahead(1, _tmp_18_rule, p)
2117 &&
2118 (for_stmt_var = for_stmt_rule(p)) // for_stmt
2119 )
2120 {
2121 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('for' | ASYNC) for_stmt"));
2122 _res = for_stmt_var;
2123 goto done;
2124 }
2125 p->mark = _mark;
2126 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2127 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('for' | ASYNC) for_stmt"));
2128 }
2129 { // &'try' try_stmt
2130 if (p->error_indicator) {
2131 D(p->level--);
2132 return NULL;
2133 }
2134 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'try' try_stmt"));
2135 stmt_ty try_stmt_var;
2136 if (
2137 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 511) // token='try'
2138 &&
2139 (try_stmt_var = try_stmt_rule(p)) // try_stmt
2140 )
2141 {
2142 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'try' try_stmt"));
2143 _res = try_stmt_var;
2144 goto done;
2145 }
2146 p->mark = _mark;
2147 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2148 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'try' try_stmt"));
2149 }
2150 { // &'while' while_stmt
2151 if (p->error_indicator) {
2152 D(p->level--);
2153 return NULL;
2154 }
2155 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'while' while_stmt"));
2156 stmt_ty while_stmt_var;
2157 if (
2158 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 512) // token='while'
2159 &&
2160 (while_stmt_var = while_stmt_rule(p)) // while_stmt
2161 )
2162 {
2163 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'while' while_stmt"));
2164 _res = while_stmt_var;
2165 goto done;
2166 }
2167 p->mark = _mark;
2168 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2169 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'while' while_stmt"));
2170 }
Brandt Bucher145bf262021-02-26 14:51:55 -08002171 { // match_stmt
2172 if (p->error_indicator) {
2173 D(p->level--);
2174 return NULL;
2175 }
2176 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "match_stmt"));
2177 stmt_ty match_stmt_var;
2178 if (
2179 (match_stmt_var = match_stmt_rule(p)) // match_stmt
2180 )
2181 {
2182 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "match_stmt"));
2183 _res = match_stmt_var;
2184 goto done;
2185 }
2186 p->mark = _mark;
2187 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2188 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "match_stmt"));
2189 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002190 _res = NULL;
2191 done:
2192 D(p->level--);
2193 return _res;
2194}
2195
2196// assignment:
2197// | NAME ':' expression ['=' annotated_rhs]
2198// | ('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]
2199// | ((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002200// | single_target augassign ~ (yield_expr | star_expressions)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002201// | invalid_assignment
2202static stmt_ty
2203assignment_rule(Parser *p)
2204{
2205 D(p->level++);
2206 if (p->error_indicator) {
2207 D(p->level--);
2208 return NULL;
2209 }
2210 stmt_ty _res = NULL;
2211 int _mark = p->mark;
2212 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2213 p->error_indicator = 1;
2214 D(p->level--);
2215 return NULL;
2216 }
2217 int _start_lineno = p->tokens[_mark]->lineno;
2218 UNUSED(_start_lineno); // Only used by EXTRA macro
2219 int _start_col_offset = p->tokens[_mark]->col_offset;
2220 UNUSED(_start_col_offset); // Only used by EXTRA macro
2221 { // NAME ':' expression ['=' annotated_rhs]
2222 if (p->error_indicator) {
2223 D(p->level--);
2224 return NULL;
2225 }
2226 D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME ':' expression ['=' annotated_rhs]"));
2227 Token * _literal;
2228 expr_ty a;
2229 expr_ty b;
2230 void *c;
2231 if (
2232 (a = _PyPegen_name_token(p)) // NAME
2233 &&
2234 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
2235 &&
2236 (b = expression_rule(p)) // expression
2237 &&
2238 (c = _tmp_19_rule(p), 1) // ['=' annotated_rhs]
2239 )
2240 {
2241 D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME ':' expression ['=' annotated_rhs]"));
2242 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2243 if (_token == NULL) {
2244 D(p->level--);
2245 return NULL;
2246 }
2247 int _end_lineno = _token->end_lineno;
2248 UNUSED(_end_lineno); // Only used by EXTRA macro
2249 int _end_col_offset = _token->end_col_offset;
2250 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002251 _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 +01002252 if (_res == NULL && PyErr_Occurred()) {
2253 p->error_indicator = 1;
2254 D(p->level--);
2255 return NULL;
2256 }
2257 goto done;
2258 }
2259 p->mark = _mark;
2260 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
2261 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME ':' expression ['=' annotated_rhs]"));
2262 }
2263 { // ('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]
2264 if (p->error_indicator) {
2265 D(p->level--);
2266 return NULL;
2267 }
2268 D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]"));
2269 Token * _literal;
2270 void *a;
2271 expr_ty b;
2272 void *c;
2273 if (
2274 (a = _tmp_20_rule(p)) // '(' single_target ')' | single_subscript_attribute_target
2275 &&
2276 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
2277 &&
2278 (b = expression_rule(p)) // expression
2279 &&
2280 (c = _tmp_21_rule(p), 1) // ['=' annotated_rhs]
2281 )
2282 {
2283 D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]"));
2284 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2285 if (_token == NULL) {
2286 D(p->level--);
2287 return NULL;
2288 }
2289 int _end_lineno = _token->end_lineno;
2290 UNUSED(_end_lineno); // Only used by EXTRA macro
2291 int _end_col_offset = _token->end_col_offset;
2292 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002293 _res = CHECK_VERSION ( stmt_ty , 6 , "Variable annotations syntax is" , _PyAST_AnnAssign ( a , b , c , 0 , EXTRA ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002294 if (_res == NULL && PyErr_Occurred()) {
2295 p->error_indicator = 1;
2296 D(p->level--);
2297 return NULL;
2298 }
2299 goto done;
2300 }
2301 p->mark = _mark;
2302 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
2303 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]"));
2304 }
2305 { // ((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?
2306 if (p->error_indicator) {
2307 D(p->level--);
2308 return NULL;
2309 }
2310 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 +01002311 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002312 void *b;
2313 void *tc;
2314 if (
Pablo Galindoa5634c42020-09-16 19:42:00 +01002315 (a = (asdl_expr_seq*)_loop1_22_rule(p)) // ((star_targets '='))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002316 &&
2317 (b = _tmp_23_rule(p)) // yield_expr | star_expressions
2318 &&
2319 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 22) // token='='
2320 &&
2321 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
2322 )
2323 {
2324 D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?"));
2325 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2326 if (_token == NULL) {
2327 D(p->level--);
2328 return NULL;
2329 }
2330 int _end_lineno = _token->end_lineno;
2331 UNUSED(_end_lineno); // Only used by EXTRA macro
2332 int _end_col_offset = _token->end_col_offset;
2333 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002334 _res = _PyAST_Assign ( a , b , NEW_TYPE_COMMENT ( p , tc ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002335 if (_res == NULL && PyErr_Occurred()) {
2336 p->error_indicator = 1;
2337 D(p->level--);
2338 return NULL;
2339 }
2340 goto done;
2341 }
2342 p->mark = _mark;
2343 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
2344 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?"));
2345 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002346 { // single_target augassign ~ (yield_expr | star_expressions)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002347 if (p->error_indicator) {
2348 D(p->level--);
2349 return NULL;
2350 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002351 D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "single_target augassign ~ (yield_expr | star_expressions)"));
2352 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002353 expr_ty a;
2354 AugOperator* b;
2355 void *c;
2356 if (
2357 (a = single_target_rule(p)) // single_target
2358 &&
2359 (b = augassign_rule(p)) // augassign
2360 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002361 (_cut_var = 1)
2362 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002363 (c = _tmp_24_rule(p)) // yield_expr | star_expressions
2364 )
2365 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002366 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 +01002367 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2368 if (_token == NULL) {
2369 D(p->level--);
2370 return NULL;
2371 }
2372 int _end_lineno = _token->end_lineno;
2373 UNUSED(_end_lineno); // Only used by EXTRA macro
2374 int _end_col_offset = _token->end_col_offset;
2375 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002376 _res = _PyAST_AugAssign ( a , b -> kind , c , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002377 if (_res == NULL && PyErr_Occurred()) {
2378 p->error_indicator = 1;
2379 D(p->level--);
2380 return NULL;
2381 }
2382 goto done;
2383 }
2384 p->mark = _mark;
2385 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002386 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "single_target augassign ~ (yield_expr | star_expressions)"));
2387 if (_cut_var) {
2388 D(p->level--);
2389 return NULL;
2390 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002391 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02002392 if (p->call_invalid_rules) { // invalid_assignment
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002393 if (p->error_indicator) {
2394 D(p->level--);
2395 return NULL;
2396 }
2397 D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_assignment"));
2398 void *invalid_assignment_var;
2399 if (
2400 (invalid_assignment_var = invalid_assignment_rule(p)) // invalid_assignment
2401 )
2402 {
2403 D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_assignment"));
2404 _res = invalid_assignment_var;
2405 goto done;
2406 }
2407 p->mark = _mark;
2408 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
2409 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_assignment"));
2410 }
2411 _res = NULL;
2412 done:
2413 D(p->level--);
2414 return _res;
2415}
2416
2417// augassign:
2418// | '+='
2419// | '-='
2420// | '*='
2421// | '@='
2422// | '/='
2423// | '%='
2424// | '&='
2425// | '|='
2426// | '^='
2427// | '<<='
2428// | '>>='
2429// | '**='
2430// | '//='
2431static AugOperator*
2432augassign_rule(Parser *p)
2433{
2434 D(p->level++);
2435 if (p->error_indicator) {
2436 D(p->level--);
2437 return NULL;
2438 }
2439 AugOperator* _res = NULL;
2440 int _mark = p->mark;
2441 { // '+='
2442 if (p->error_indicator) {
2443 D(p->level--);
2444 return NULL;
2445 }
2446 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'+='"));
2447 Token * _literal;
2448 if (
2449 (_literal = _PyPegen_expect_token(p, 36)) // token='+='
2450 )
2451 {
2452 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'+='"));
2453 _res = _PyPegen_augoperator ( p , Add );
2454 if (_res == NULL && PyErr_Occurred()) {
2455 p->error_indicator = 1;
2456 D(p->level--);
2457 return NULL;
2458 }
2459 goto done;
2460 }
2461 p->mark = _mark;
2462 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2463 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+='"));
2464 }
2465 { // '-='
2466 if (p->error_indicator) {
2467 D(p->level--);
2468 return NULL;
2469 }
2470 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-='"));
2471 Token * _literal;
2472 if (
2473 (_literal = _PyPegen_expect_token(p, 37)) // token='-='
2474 )
2475 {
2476 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-='"));
2477 _res = _PyPegen_augoperator ( p , Sub );
2478 if (_res == NULL && PyErr_Occurred()) {
2479 p->error_indicator = 1;
2480 D(p->level--);
2481 return NULL;
2482 }
2483 goto done;
2484 }
2485 p->mark = _mark;
2486 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2487 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-='"));
2488 }
2489 { // '*='
2490 if (p->error_indicator) {
2491 D(p->level--);
2492 return NULL;
2493 }
2494 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*='"));
2495 Token * _literal;
2496 if (
2497 (_literal = _PyPegen_expect_token(p, 38)) // token='*='
2498 )
2499 {
2500 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*='"));
2501 _res = _PyPegen_augoperator ( p , Mult );
2502 if (_res == NULL && PyErr_Occurred()) {
2503 p->error_indicator = 1;
2504 D(p->level--);
2505 return NULL;
2506 }
2507 goto done;
2508 }
2509 p->mark = _mark;
2510 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2511 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*='"));
2512 }
2513 { // '@='
2514 if (p->error_indicator) {
2515 D(p->level--);
2516 return NULL;
2517 }
2518 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@='"));
2519 Token * _literal;
2520 if (
2521 (_literal = _PyPegen_expect_token(p, 50)) // token='@='
2522 )
2523 {
2524 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@='"));
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03002525 _res = CHECK_VERSION ( AugOperator * , 5 , "The '@' operator is" , _PyPegen_augoperator ( p , MatMult ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002526 if (_res == NULL && PyErr_Occurred()) {
2527 p->error_indicator = 1;
2528 D(p->level--);
2529 return NULL;
2530 }
2531 goto done;
2532 }
2533 p->mark = _mark;
2534 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2535 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@='"));
2536 }
2537 { // '/='
2538 if (p->error_indicator) {
2539 D(p->level--);
2540 return NULL;
2541 }
2542 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'/='"));
2543 Token * _literal;
2544 if (
2545 (_literal = _PyPegen_expect_token(p, 39)) // token='/='
2546 )
2547 {
2548 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'/='"));
2549 _res = _PyPegen_augoperator ( p , Div );
2550 if (_res == NULL && PyErr_Occurred()) {
2551 p->error_indicator = 1;
2552 D(p->level--);
2553 return NULL;
2554 }
2555 goto done;
2556 }
2557 p->mark = _mark;
2558 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2559 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'/='"));
2560 }
2561 { // '%='
2562 if (p->error_indicator) {
2563 D(p->level--);
2564 return NULL;
2565 }
2566 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'%='"));
2567 Token * _literal;
2568 if (
2569 (_literal = _PyPegen_expect_token(p, 40)) // token='%='
2570 )
2571 {
2572 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'%='"));
2573 _res = _PyPegen_augoperator ( p , Mod );
2574 if (_res == NULL && PyErr_Occurred()) {
2575 p->error_indicator = 1;
2576 D(p->level--);
2577 return NULL;
2578 }
2579 goto done;
2580 }
2581 p->mark = _mark;
2582 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2583 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'%='"));
2584 }
2585 { // '&='
2586 if (p->error_indicator) {
2587 D(p->level--);
2588 return NULL;
2589 }
2590 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'&='"));
2591 Token * _literal;
2592 if (
2593 (_literal = _PyPegen_expect_token(p, 41)) // token='&='
2594 )
2595 {
2596 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'&='"));
2597 _res = _PyPegen_augoperator ( p , BitAnd );
2598 if (_res == NULL && PyErr_Occurred()) {
2599 p->error_indicator = 1;
2600 D(p->level--);
2601 return NULL;
2602 }
2603 goto done;
2604 }
2605 p->mark = _mark;
2606 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2607 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'&='"));
2608 }
2609 { // '|='
2610 if (p->error_indicator) {
2611 D(p->level--);
2612 return NULL;
2613 }
2614 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'|='"));
2615 Token * _literal;
2616 if (
2617 (_literal = _PyPegen_expect_token(p, 42)) // token='|='
2618 )
2619 {
2620 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'|='"));
2621 _res = _PyPegen_augoperator ( p , BitOr );
2622 if (_res == NULL && PyErr_Occurred()) {
2623 p->error_indicator = 1;
2624 D(p->level--);
2625 return NULL;
2626 }
2627 goto done;
2628 }
2629 p->mark = _mark;
2630 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2631 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'|='"));
2632 }
2633 { // '^='
2634 if (p->error_indicator) {
2635 D(p->level--);
2636 return NULL;
2637 }
2638 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'^='"));
2639 Token * _literal;
2640 if (
2641 (_literal = _PyPegen_expect_token(p, 43)) // token='^='
2642 )
2643 {
2644 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'^='"));
2645 _res = _PyPegen_augoperator ( p , BitXor );
2646 if (_res == NULL && PyErr_Occurred()) {
2647 p->error_indicator = 1;
2648 D(p->level--);
2649 return NULL;
2650 }
2651 goto done;
2652 }
2653 p->mark = _mark;
2654 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2655 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'^='"));
2656 }
2657 { // '<<='
2658 if (p->error_indicator) {
2659 D(p->level--);
2660 return NULL;
2661 }
2662 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'<<='"));
2663 Token * _literal;
2664 if (
2665 (_literal = _PyPegen_expect_token(p, 44)) // token='<<='
2666 )
2667 {
2668 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'<<='"));
2669 _res = _PyPegen_augoperator ( p , LShift );
2670 if (_res == NULL && PyErr_Occurred()) {
2671 p->error_indicator = 1;
2672 D(p->level--);
2673 return NULL;
2674 }
2675 goto done;
2676 }
2677 p->mark = _mark;
2678 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2679 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'<<='"));
2680 }
2681 { // '>>='
2682 if (p->error_indicator) {
2683 D(p->level--);
2684 return NULL;
2685 }
2686 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'>>='"));
2687 Token * _literal;
2688 if (
2689 (_literal = _PyPegen_expect_token(p, 45)) // token='>>='
2690 )
2691 {
2692 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'>>='"));
2693 _res = _PyPegen_augoperator ( p , RShift );
2694 if (_res == NULL && PyErr_Occurred()) {
2695 p->error_indicator = 1;
2696 D(p->level--);
2697 return NULL;
2698 }
2699 goto done;
2700 }
2701 p->mark = _mark;
2702 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2703 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'>>='"));
2704 }
2705 { // '**='
2706 if (p->error_indicator) {
2707 D(p->level--);
2708 return NULL;
2709 }
2710 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**='"));
2711 Token * _literal;
2712 if (
2713 (_literal = _PyPegen_expect_token(p, 46)) // token='**='
2714 )
2715 {
2716 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**='"));
2717 _res = _PyPegen_augoperator ( p , Pow );
2718 if (_res == NULL && PyErr_Occurred()) {
2719 p->error_indicator = 1;
2720 D(p->level--);
2721 return NULL;
2722 }
2723 goto done;
2724 }
2725 p->mark = _mark;
2726 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2727 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**='"));
2728 }
2729 { // '//='
2730 if (p->error_indicator) {
2731 D(p->level--);
2732 return NULL;
2733 }
2734 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'//='"));
2735 Token * _literal;
2736 if (
2737 (_literal = _PyPegen_expect_token(p, 48)) // token='//='
2738 )
2739 {
2740 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'//='"));
2741 _res = _PyPegen_augoperator ( p , FloorDiv );
2742 if (_res == NULL && PyErr_Occurred()) {
2743 p->error_indicator = 1;
2744 D(p->level--);
2745 return NULL;
2746 }
2747 goto done;
2748 }
2749 p->mark = _mark;
2750 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2751 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'//='"));
2752 }
2753 _res = NULL;
2754 done:
2755 D(p->level--);
2756 return _res;
2757}
2758
2759// global_stmt: 'global' ','.NAME+
2760static stmt_ty
2761global_stmt_rule(Parser *p)
2762{
2763 D(p->level++);
2764 if (p->error_indicator) {
2765 D(p->level--);
2766 return NULL;
2767 }
2768 stmt_ty _res = NULL;
2769 int _mark = p->mark;
2770 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2771 p->error_indicator = 1;
2772 D(p->level--);
2773 return NULL;
2774 }
2775 int _start_lineno = p->tokens[_mark]->lineno;
2776 UNUSED(_start_lineno); // Only used by EXTRA macro
2777 int _start_col_offset = p->tokens[_mark]->col_offset;
2778 UNUSED(_start_col_offset); // Only used by EXTRA macro
2779 { // 'global' ','.NAME+
2780 if (p->error_indicator) {
2781 D(p->level--);
2782 return NULL;
2783 }
2784 D(fprintf(stderr, "%*c> global_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'global' ','.NAME+"));
2785 Token * _keyword;
Pablo Galindoa5634c42020-09-16 19:42:00 +01002786 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002787 if (
2788 (_keyword = _PyPegen_expect_token(p, 508)) // token='global'
2789 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01002790 (a = (asdl_expr_seq*)_gather_25_rule(p)) // ','.NAME+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002791 )
2792 {
2793 D(fprintf(stderr, "%*c+ global_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'global' ','.NAME+"));
2794 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2795 if (_token == NULL) {
2796 D(p->level--);
2797 return NULL;
2798 }
2799 int _end_lineno = _token->end_lineno;
2800 UNUSED(_end_lineno); // Only used by EXTRA macro
2801 int _end_col_offset = _token->end_col_offset;
2802 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002803 _res = _PyAST_Global ( CHECK ( asdl_identifier_seq * , _PyPegen_map_names_to_ids ( p , a ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002804 if (_res == NULL && PyErr_Occurred()) {
2805 p->error_indicator = 1;
2806 D(p->level--);
2807 return NULL;
2808 }
2809 goto done;
2810 }
2811 p->mark = _mark;
2812 D(fprintf(stderr, "%*c%s global_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2813 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'global' ','.NAME+"));
2814 }
2815 _res = NULL;
2816 done:
2817 D(p->level--);
2818 return _res;
2819}
2820
2821// nonlocal_stmt: 'nonlocal' ','.NAME+
2822static stmt_ty
2823nonlocal_stmt_rule(Parser *p)
2824{
2825 D(p->level++);
2826 if (p->error_indicator) {
2827 D(p->level--);
2828 return NULL;
2829 }
2830 stmt_ty _res = NULL;
2831 int _mark = p->mark;
2832 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2833 p->error_indicator = 1;
2834 D(p->level--);
2835 return NULL;
2836 }
2837 int _start_lineno = p->tokens[_mark]->lineno;
2838 UNUSED(_start_lineno); // Only used by EXTRA macro
2839 int _start_col_offset = p->tokens[_mark]->col_offset;
2840 UNUSED(_start_col_offset); // Only used by EXTRA macro
2841 { // 'nonlocal' ','.NAME+
2842 if (p->error_indicator) {
2843 D(p->level--);
2844 return NULL;
2845 }
2846 D(fprintf(stderr, "%*c> nonlocal_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'nonlocal' ','.NAME+"));
2847 Token * _keyword;
Pablo Galindoa5634c42020-09-16 19:42:00 +01002848 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002849 if (
2850 (_keyword = _PyPegen_expect_token(p, 509)) // token='nonlocal'
2851 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01002852 (a = (asdl_expr_seq*)_gather_27_rule(p)) // ','.NAME+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002853 )
2854 {
2855 D(fprintf(stderr, "%*c+ nonlocal_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'nonlocal' ','.NAME+"));
2856 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2857 if (_token == NULL) {
2858 D(p->level--);
2859 return NULL;
2860 }
2861 int _end_lineno = _token->end_lineno;
2862 UNUSED(_end_lineno); // Only used by EXTRA macro
2863 int _end_col_offset = _token->end_col_offset;
2864 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002865 _res = _PyAST_Nonlocal ( CHECK ( asdl_identifier_seq * , _PyPegen_map_names_to_ids ( p , a ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002866 if (_res == NULL && PyErr_Occurred()) {
2867 p->error_indicator = 1;
2868 D(p->level--);
2869 return NULL;
2870 }
2871 goto done;
2872 }
2873 p->mark = _mark;
2874 D(fprintf(stderr, "%*c%s nonlocal_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2875 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'nonlocal' ','.NAME+"));
2876 }
2877 _res = NULL;
2878 done:
2879 D(p->level--);
2880 return _res;
2881}
2882
2883// yield_stmt: yield_expr
2884static stmt_ty
2885yield_stmt_rule(Parser *p)
2886{
2887 D(p->level++);
2888 if (p->error_indicator) {
2889 D(p->level--);
2890 return NULL;
2891 }
2892 stmt_ty _res = NULL;
2893 int _mark = p->mark;
2894 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2895 p->error_indicator = 1;
2896 D(p->level--);
2897 return NULL;
2898 }
2899 int _start_lineno = p->tokens[_mark]->lineno;
2900 UNUSED(_start_lineno); // Only used by EXTRA macro
2901 int _start_col_offset = p->tokens[_mark]->col_offset;
2902 UNUSED(_start_col_offset); // Only used by EXTRA macro
2903 { // yield_expr
2904 if (p->error_indicator) {
2905 D(p->level--);
2906 return NULL;
2907 }
2908 D(fprintf(stderr, "%*c> yield_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
2909 expr_ty y;
2910 if (
2911 (y = yield_expr_rule(p)) // yield_expr
2912 )
2913 {
2914 D(fprintf(stderr, "%*c+ yield_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
2915 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2916 if (_token == NULL) {
2917 D(p->level--);
2918 return NULL;
2919 }
2920 int _end_lineno = _token->end_lineno;
2921 UNUSED(_end_lineno); // Only used by EXTRA macro
2922 int _end_col_offset = _token->end_col_offset;
2923 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002924 _res = _PyAST_Expr ( y , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002925 if (_res == NULL && PyErr_Occurred()) {
2926 p->error_indicator = 1;
2927 D(p->level--);
2928 return NULL;
2929 }
2930 goto done;
2931 }
2932 p->mark = _mark;
2933 D(fprintf(stderr, "%*c%s yield_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2934 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
2935 }
2936 _res = NULL;
2937 done:
2938 D(p->level--);
2939 return _res;
2940}
2941
2942// assert_stmt: 'assert' expression [',' expression]
2943static stmt_ty
2944assert_stmt_rule(Parser *p)
2945{
2946 D(p->level++);
2947 if (p->error_indicator) {
2948 D(p->level--);
2949 return NULL;
2950 }
2951 stmt_ty _res = NULL;
2952 int _mark = p->mark;
2953 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2954 p->error_indicator = 1;
2955 D(p->level--);
2956 return NULL;
2957 }
2958 int _start_lineno = p->tokens[_mark]->lineno;
2959 UNUSED(_start_lineno); // Only used by EXTRA macro
2960 int _start_col_offset = p->tokens[_mark]->col_offset;
2961 UNUSED(_start_col_offset); // Only used by EXTRA macro
2962 { // 'assert' expression [',' expression]
2963 if (p->error_indicator) {
2964 D(p->level--);
2965 return NULL;
2966 }
2967 D(fprintf(stderr, "%*c> assert_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'assert' expression [',' expression]"));
2968 Token * _keyword;
2969 expr_ty a;
2970 void *b;
2971 if (
2972 (_keyword = _PyPegen_expect_token(p, 505)) // token='assert'
2973 &&
2974 (a = expression_rule(p)) // expression
2975 &&
2976 (b = _tmp_29_rule(p), 1) // [',' expression]
2977 )
2978 {
2979 D(fprintf(stderr, "%*c+ assert_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'assert' expression [',' expression]"));
2980 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2981 if (_token == NULL) {
2982 D(p->level--);
2983 return NULL;
2984 }
2985 int _end_lineno = _token->end_lineno;
2986 UNUSED(_end_lineno); // Only used by EXTRA macro
2987 int _end_col_offset = _token->end_col_offset;
2988 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002989 _res = _PyAST_Assert ( a , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002990 if (_res == NULL && PyErr_Occurred()) {
2991 p->error_indicator = 1;
2992 D(p->level--);
2993 return NULL;
2994 }
2995 goto done;
2996 }
2997 p->mark = _mark;
2998 D(fprintf(stderr, "%*c%s assert_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2999 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'assert' expression [',' expression]"));
3000 }
3001 _res = NULL;
3002 done:
3003 D(p->level--);
3004 return _res;
3005}
3006
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003007// del_stmt: 'del' del_targets &(';' | NEWLINE) | invalid_del_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003008static stmt_ty
3009del_stmt_rule(Parser *p)
3010{
3011 D(p->level++);
3012 if (p->error_indicator) {
3013 D(p->level--);
3014 return NULL;
3015 }
3016 stmt_ty _res = NULL;
3017 int _mark = p->mark;
3018 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3019 p->error_indicator = 1;
3020 D(p->level--);
3021 return NULL;
3022 }
3023 int _start_lineno = p->tokens[_mark]->lineno;
3024 UNUSED(_start_lineno); // Only used by EXTRA macro
3025 int _start_col_offset = p->tokens[_mark]->col_offset;
3026 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003027 { // 'del' del_targets &(';' | NEWLINE)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003028 if (p->error_indicator) {
3029 D(p->level--);
3030 return NULL;
3031 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003032 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 +01003033 Token * _keyword;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003034 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003035 if (
3036 (_keyword = _PyPegen_expect_token(p, 503)) // token='del'
3037 &&
3038 (a = del_targets_rule(p)) // del_targets
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003039 &&
3040 _PyPegen_lookahead(1, _tmp_30_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003041 )
3042 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003043 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 +01003044 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3045 if (_token == NULL) {
3046 D(p->level--);
3047 return NULL;
3048 }
3049 int _end_lineno = _token->end_lineno;
3050 UNUSED(_end_lineno); // Only used by EXTRA macro
3051 int _end_col_offset = _token->end_col_offset;
3052 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02003053 _res = _PyAST_Delete ( a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003054 if (_res == NULL && PyErr_Occurred()) {
3055 p->error_indicator = 1;
3056 D(p->level--);
3057 return NULL;
3058 }
3059 goto done;
3060 }
3061 p->mark = _mark;
3062 D(fprintf(stderr, "%*c%s del_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003063 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'del' del_targets &(';' | NEWLINE)"));
3064 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02003065 if (p->call_invalid_rules) { // invalid_del_stmt
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003066 if (p->error_indicator) {
3067 D(p->level--);
3068 return NULL;
3069 }
3070 D(fprintf(stderr, "%*c> del_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_del_stmt"));
3071 void *invalid_del_stmt_var;
3072 if (
3073 (invalid_del_stmt_var = invalid_del_stmt_rule(p)) // invalid_del_stmt
3074 )
3075 {
3076 D(fprintf(stderr, "%*c+ del_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_del_stmt"));
3077 _res = invalid_del_stmt_var;
3078 goto done;
3079 }
3080 p->mark = _mark;
3081 D(fprintf(stderr, "%*c%s del_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3082 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_del_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003083 }
3084 _res = NULL;
3085 done:
3086 D(p->level--);
3087 return _res;
3088}
3089
3090// import_stmt: import_name | import_from
3091static stmt_ty
3092import_stmt_rule(Parser *p)
3093{
3094 D(p->level++);
3095 if (p->error_indicator) {
3096 D(p->level--);
3097 return NULL;
3098 }
3099 stmt_ty _res = NULL;
3100 int _mark = p->mark;
3101 { // import_name
3102 if (p->error_indicator) {
3103 D(p->level--);
3104 return NULL;
3105 }
3106 D(fprintf(stderr, "%*c> import_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "import_name"));
3107 stmt_ty import_name_var;
3108 if (
3109 (import_name_var = import_name_rule(p)) // import_name
3110 )
3111 {
3112 D(fprintf(stderr, "%*c+ import_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_name"));
3113 _res = import_name_var;
3114 goto done;
3115 }
3116 p->mark = _mark;
3117 D(fprintf(stderr, "%*c%s import_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3118 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_name"));
3119 }
3120 { // import_from
3121 if (p->error_indicator) {
3122 D(p->level--);
3123 return NULL;
3124 }
3125 D(fprintf(stderr, "%*c> import_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "import_from"));
3126 stmt_ty import_from_var;
3127 if (
3128 (import_from_var = import_from_rule(p)) // import_from
3129 )
3130 {
3131 D(fprintf(stderr, "%*c+ import_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_from"));
3132 _res = import_from_var;
3133 goto done;
3134 }
3135 p->mark = _mark;
3136 D(fprintf(stderr, "%*c%s import_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3137 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from"));
3138 }
3139 _res = NULL;
3140 done:
3141 D(p->level--);
3142 return _res;
3143}
3144
3145// import_name: 'import' dotted_as_names
3146static stmt_ty
3147import_name_rule(Parser *p)
3148{
3149 D(p->level++);
3150 if (p->error_indicator) {
3151 D(p->level--);
3152 return NULL;
3153 }
3154 stmt_ty _res = NULL;
3155 int _mark = p->mark;
3156 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3157 p->error_indicator = 1;
3158 D(p->level--);
3159 return NULL;
3160 }
3161 int _start_lineno = p->tokens[_mark]->lineno;
3162 UNUSED(_start_lineno); // Only used by EXTRA macro
3163 int _start_col_offset = p->tokens[_mark]->col_offset;
3164 UNUSED(_start_col_offset); // Only used by EXTRA macro
3165 { // 'import' dotted_as_names
3166 if (p->error_indicator) {
3167 D(p->level--);
3168 return NULL;
3169 }
3170 D(fprintf(stderr, "%*c> import_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'import' dotted_as_names"));
3171 Token * _keyword;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003172 asdl_alias_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003173 if (
3174 (_keyword = _PyPegen_expect_token(p, 513)) // token='import'
3175 &&
3176 (a = dotted_as_names_rule(p)) // dotted_as_names
3177 )
3178 {
3179 D(fprintf(stderr, "%*c+ import_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'import' dotted_as_names"));
3180 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3181 if (_token == NULL) {
3182 D(p->level--);
3183 return NULL;
3184 }
3185 int _end_lineno = _token->end_lineno;
3186 UNUSED(_end_lineno); // Only used by EXTRA macro
3187 int _end_col_offset = _token->end_col_offset;
3188 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02003189 _res = _PyAST_Import ( a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003190 if (_res == NULL && PyErr_Occurred()) {
3191 p->error_indicator = 1;
3192 D(p->level--);
3193 return NULL;
3194 }
3195 goto done;
3196 }
3197 p->mark = _mark;
3198 D(fprintf(stderr, "%*c%s import_name[%d-%d]: %s failed!\n", p->level, ' ',
3199 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'import' dotted_as_names"));
3200 }
3201 _res = NULL;
3202 done:
3203 D(p->level--);
3204 return _res;
3205}
3206
3207// import_from:
3208// | 'from' (('.' | '...'))* dotted_name 'import' import_from_targets
3209// | 'from' (('.' | '...'))+ 'import' import_from_targets
3210static stmt_ty
3211import_from_rule(Parser *p)
3212{
3213 D(p->level++);
3214 if (p->error_indicator) {
3215 D(p->level--);
3216 return NULL;
3217 }
3218 stmt_ty _res = NULL;
3219 int _mark = p->mark;
3220 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3221 p->error_indicator = 1;
3222 D(p->level--);
3223 return NULL;
3224 }
3225 int _start_lineno = p->tokens[_mark]->lineno;
3226 UNUSED(_start_lineno); // Only used by EXTRA macro
3227 int _start_col_offset = p->tokens[_mark]->col_offset;
3228 UNUSED(_start_col_offset); // Only used by EXTRA macro
3229 { // 'from' (('.' | '...'))* dotted_name 'import' import_from_targets
3230 if (p->error_indicator) {
3231 D(p->level--);
3232 return NULL;
3233 }
3234 D(fprintf(stderr, "%*c> import_from[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from' (('.' | '...'))* dotted_name 'import' import_from_targets"));
3235 Token * _keyword;
3236 Token * _keyword_1;
3237 asdl_seq * a;
3238 expr_ty b;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003239 asdl_alias_seq* c;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003240 if (
3241 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
3242 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003243 (a = _loop0_31_rule(p)) // (('.' | '...'))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003244 &&
3245 (b = dotted_name_rule(p)) // dotted_name
3246 &&
3247 (_keyword_1 = _PyPegen_expect_token(p, 513)) // token='import'
3248 &&
3249 (c = import_from_targets_rule(p)) // import_from_targets
3250 )
3251 {
3252 D(fprintf(stderr, "%*c+ import_from[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'from' (('.' | '...'))* dotted_name 'import' import_from_targets"));
3253 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3254 if (_token == NULL) {
3255 D(p->level--);
3256 return NULL;
3257 }
3258 int _end_lineno = _token->end_lineno;
3259 UNUSED(_end_lineno); // Only used by EXTRA macro
3260 int _end_col_offset = _token->end_col_offset;
3261 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02003262 _res = _PyAST_ImportFrom ( b -> v . Name . id , c , _PyPegen_seq_count_dots ( a ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003263 if (_res == NULL && PyErr_Occurred()) {
3264 p->error_indicator = 1;
3265 D(p->level--);
3266 return NULL;
3267 }
3268 goto done;
3269 }
3270 p->mark = _mark;
3271 D(fprintf(stderr, "%*c%s import_from[%d-%d]: %s failed!\n", p->level, ' ',
3272 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from' (('.' | '...'))* dotted_name 'import' import_from_targets"));
3273 }
3274 { // 'from' (('.' | '...'))+ 'import' import_from_targets
3275 if (p->error_indicator) {
3276 D(p->level--);
3277 return NULL;
3278 }
3279 D(fprintf(stderr, "%*c> import_from[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from' (('.' | '...'))+ 'import' import_from_targets"));
3280 Token * _keyword;
3281 Token * _keyword_1;
3282 asdl_seq * a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003283 asdl_alias_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003284 if (
3285 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
3286 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003287 (a = _loop1_32_rule(p)) // (('.' | '...'))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003288 &&
3289 (_keyword_1 = _PyPegen_expect_token(p, 513)) // token='import'
3290 &&
3291 (b = import_from_targets_rule(p)) // import_from_targets
3292 )
3293 {
3294 D(fprintf(stderr, "%*c+ import_from[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'from' (('.' | '...'))+ 'import' import_from_targets"));
3295 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3296 if (_token == NULL) {
3297 D(p->level--);
3298 return NULL;
3299 }
3300 int _end_lineno = _token->end_lineno;
3301 UNUSED(_end_lineno); // Only used by EXTRA macro
3302 int _end_col_offset = _token->end_col_offset;
3303 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02003304 _res = _PyAST_ImportFrom ( NULL , b , _PyPegen_seq_count_dots ( a ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003305 if (_res == NULL && PyErr_Occurred()) {
3306 p->error_indicator = 1;
3307 D(p->level--);
3308 return NULL;
3309 }
3310 goto done;
3311 }
3312 p->mark = _mark;
3313 D(fprintf(stderr, "%*c%s import_from[%d-%d]: %s failed!\n", p->level, ' ',
3314 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from' (('.' | '...'))+ 'import' import_from_targets"));
3315 }
3316 _res = NULL;
3317 done:
3318 D(p->level--);
3319 return _res;
3320}
3321
3322// import_from_targets:
3323// | '(' import_from_as_names ','? ')'
3324// | import_from_as_names !','
3325// | '*'
3326// | invalid_import_from_targets
Pablo Galindoa5634c42020-09-16 19:42:00 +01003327static asdl_alias_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003328import_from_targets_rule(Parser *p)
3329{
3330 D(p->level++);
3331 if (p->error_indicator) {
3332 D(p->level--);
3333 return NULL;
3334 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01003335 asdl_alias_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003336 int _mark = p->mark;
Matthew Suozzo75a06f02021-04-10 16:56:28 -04003337 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3338 p->error_indicator = 1;
3339 D(p->level--);
3340 return NULL;
3341 }
3342 int _start_lineno = p->tokens[_mark]->lineno;
3343 UNUSED(_start_lineno); // Only used by EXTRA macro
3344 int _start_col_offset = p->tokens[_mark]->col_offset;
3345 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003346 { // '(' import_from_as_names ','? ')'
3347 if (p->error_indicator) {
3348 D(p->level--);
3349 return NULL;
3350 }
3351 D(fprintf(stderr, "%*c> import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' import_from_as_names ','? ')'"));
3352 Token * _literal;
3353 Token * _literal_1;
3354 void *_opt_var;
3355 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +01003356 asdl_alias_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003357 if (
3358 (_literal = _PyPegen_expect_token(p, 7)) // token='('
3359 &&
3360 (a = import_from_as_names_rule(p)) // import_from_as_names
3361 &&
3362 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
3363 &&
3364 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
3365 )
3366 {
3367 D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' import_from_as_names ','? ')'"));
3368 _res = a;
3369 if (_res == NULL && PyErr_Occurred()) {
3370 p->error_indicator = 1;
3371 D(p->level--);
3372 return NULL;
3373 }
3374 goto done;
3375 }
3376 p->mark = _mark;
3377 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3378 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' import_from_as_names ','? ')'"));
3379 }
3380 { // import_from_as_names !','
3381 if (p->error_indicator) {
3382 D(p->level--);
3383 return NULL;
3384 }
3385 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 +01003386 asdl_alias_seq* import_from_as_names_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003387 if (
3388 (import_from_as_names_var = import_from_as_names_rule(p)) // import_from_as_names
3389 &&
3390 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 12) // token=','
3391 )
3392 {
3393 D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_from_as_names !','"));
3394 _res = import_from_as_names_var;
3395 goto done;
3396 }
3397 p->mark = _mark;
3398 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3399 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from_as_names !','"));
3400 }
3401 { // '*'
3402 if (p->error_indicator) {
3403 D(p->level--);
3404 return NULL;
3405 }
3406 D(fprintf(stderr, "%*c> import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*'"));
3407 Token * _literal;
3408 if (
3409 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
3410 )
3411 {
3412 D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*'"));
Matthew Suozzo75a06f02021-04-10 16:56:28 -04003413 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3414 if (_token == NULL) {
3415 D(p->level--);
3416 return NULL;
3417 }
3418 int _end_lineno = _token->end_lineno;
3419 UNUSED(_end_lineno); // Only used by EXTRA macro
3420 int _end_col_offset = _token->end_col_offset;
3421 UNUSED(_end_col_offset); // Only used by EXTRA macro
3422 _res = ( asdl_alias_seq * ) _PyPegen_singleton_seq ( p , CHECK ( alias_ty , _PyPegen_alias_for_star ( p , EXTRA ) ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003423 if (_res == NULL && PyErr_Occurred()) {
3424 p->error_indicator = 1;
3425 D(p->level--);
3426 return NULL;
3427 }
3428 goto done;
3429 }
3430 p->mark = _mark;
3431 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3432 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*'"));
3433 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02003434 if (p->call_invalid_rules) { // invalid_import_from_targets
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003435 if (p->error_indicator) {
3436 D(p->level--);
3437 return NULL;
3438 }
3439 D(fprintf(stderr, "%*c> import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_import_from_targets"));
3440 void *invalid_import_from_targets_var;
3441 if (
3442 (invalid_import_from_targets_var = invalid_import_from_targets_rule(p)) // invalid_import_from_targets
3443 )
3444 {
3445 D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_import_from_targets"));
3446 _res = invalid_import_from_targets_var;
3447 goto done;
3448 }
3449 p->mark = _mark;
3450 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3451 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_import_from_targets"));
3452 }
3453 _res = NULL;
3454 done:
3455 D(p->level--);
3456 return _res;
3457}
3458
3459// import_from_as_names: ','.import_from_as_name+
Pablo Galindoa5634c42020-09-16 19:42:00 +01003460static asdl_alias_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003461import_from_as_names_rule(Parser *p)
3462{
3463 D(p->level++);
3464 if (p->error_indicator) {
3465 D(p->level--);
3466 return NULL;
3467 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01003468 asdl_alias_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003469 int _mark = p->mark;
3470 { // ','.import_from_as_name+
3471 if (p->error_indicator) {
3472 D(p->level--);
3473 return NULL;
3474 }
3475 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 +01003476 asdl_alias_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003477 if (
Pablo Galindoa5634c42020-09-16 19:42:00 +01003478 (a = (asdl_alias_seq*)_gather_33_rule(p)) // ','.import_from_as_name+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003479 )
3480 {
3481 D(fprintf(stderr, "%*c+ import_from_as_names[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.import_from_as_name+"));
3482 _res = a;
3483 if (_res == NULL && PyErr_Occurred()) {
3484 p->error_indicator = 1;
3485 D(p->level--);
3486 return NULL;
3487 }
3488 goto done;
3489 }
3490 p->mark = _mark;
3491 D(fprintf(stderr, "%*c%s import_from_as_names[%d-%d]: %s failed!\n", p->level, ' ',
3492 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.import_from_as_name+"));
3493 }
3494 _res = NULL;
3495 done:
3496 D(p->level--);
3497 return _res;
3498}
3499
3500// import_from_as_name: NAME ['as' NAME]
3501static alias_ty
3502import_from_as_name_rule(Parser *p)
3503{
3504 D(p->level++);
3505 if (p->error_indicator) {
3506 D(p->level--);
3507 return NULL;
3508 }
3509 alias_ty _res = NULL;
3510 int _mark = p->mark;
Matthew Suozzo75a06f02021-04-10 16:56:28 -04003511 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3512 p->error_indicator = 1;
3513 D(p->level--);
3514 return NULL;
3515 }
3516 int _start_lineno = p->tokens[_mark]->lineno;
3517 UNUSED(_start_lineno); // Only used by EXTRA macro
3518 int _start_col_offset = p->tokens[_mark]->col_offset;
3519 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003520 { // NAME ['as' NAME]
3521 if (p->error_indicator) {
3522 D(p->level--);
3523 return NULL;
3524 }
3525 D(fprintf(stderr, "%*c> import_from_as_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME ['as' NAME]"));
3526 expr_ty a;
3527 void *b;
3528 if (
3529 (a = _PyPegen_name_token(p)) // NAME
3530 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003531 (b = _tmp_35_rule(p), 1) // ['as' NAME]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003532 )
3533 {
3534 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 -04003535 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3536 if (_token == NULL) {
3537 D(p->level--);
3538 return NULL;
3539 }
3540 int _end_lineno = _token->end_lineno;
3541 UNUSED(_end_lineno); // Only used by EXTRA macro
3542 int _end_col_offset = _token->end_col_offset;
3543 UNUSED(_end_col_offset); // Only used by EXTRA macro
3544 _res = _PyAST_alias ( a -> v . Name . id , ( b ) ? ( ( expr_ty ) b ) -> v . Name . id : NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003545 if (_res == NULL && PyErr_Occurred()) {
3546 p->error_indicator = 1;
3547 D(p->level--);
3548 return NULL;
3549 }
3550 goto done;
3551 }
3552 p->mark = _mark;
3553 D(fprintf(stderr, "%*c%s import_from_as_name[%d-%d]: %s failed!\n", p->level, ' ',
3554 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME ['as' NAME]"));
3555 }
3556 _res = NULL;
3557 done:
3558 D(p->level--);
3559 return _res;
3560}
3561
3562// dotted_as_names: ','.dotted_as_name+
Pablo Galindoa5634c42020-09-16 19:42:00 +01003563static asdl_alias_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003564dotted_as_names_rule(Parser *p)
3565{
3566 D(p->level++);
3567 if (p->error_indicator) {
3568 D(p->level--);
3569 return NULL;
3570 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01003571 asdl_alias_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003572 int _mark = p->mark;
3573 { // ','.dotted_as_name+
3574 if (p->error_indicator) {
3575 D(p->level--);
3576 return NULL;
3577 }
3578 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 +01003579 asdl_alias_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003580 if (
Pablo Galindoa5634c42020-09-16 19:42:00 +01003581 (a = (asdl_alias_seq*)_gather_36_rule(p)) // ','.dotted_as_name+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003582 )
3583 {
3584 D(fprintf(stderr, "%*c+ dotted_as_names[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.dotted_as_name+"));
3585 _res = a;
3586 if (_res == NULL && PyErr_Occurred()) {
3587 p->error_indicator = 1;
3588 D(p->level--);
3589 return NULL;
3590 }
3591 goto done;
3592 }
3593 p->mark = _mark;
3594 D(fprintf(stderr, "%*c%s dotted_as_names[%d-%d]: %s failed!\n", p->level, ' ',
3595 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.dotted_as_name+"));
3596 }
3597 _res = NULL;
3598 done:
3599 D(p->level--);
3600 return _res;
3601}
3602
3603// dotted_as_name: dotted_name ['as' NAME]
3604static alias_ty
3605dotted_as_name_rule(Parser *p)
3606{
3607 D(p->level++);
3608 if (p->error_indicator) {
3609 D(p->level--);
3610 return NULL;
3611 }
3612 alias_ty _res = NULL;
3613 int _mark = p->mark;
Matthew Suozzo75a06f02021-04-10 16:56:28 -04003614 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3615 p->error_indicator = 1;
3616 D(p->level--);
3617 return NULL;
3618 }
3619 int _start_lineno = p->tokens[_mark]->lineno;
3620 UNUSED(_start_lineno); // Only used by EXTRA macro
3621 int _start_col_offset = p->tokens[_mark]->col_offset;
3622 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003623 { // dotted_name ['as' NAME]
3624 if (p->error_indicator) {
3625 D(p->level--);
3626 return NULL;
3627 }
3628 D(fprintf(stderr, "%*c> dotted_as_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dotted_name ['as' NAME]"));
3629 expr_ty a;
3630 void *b;
3631 if (
3632 (a = dotted_name_rule(p)) // dotted_name
3633 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003634 (b = _tmp_38_rule(p), 1) // ['as' NAME]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003635 )
3636 {
3637 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 -04003638 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3639 if (_token == NULL) {
3640 D(p->level--);
3641 return NULL;
3642 }
3643 int _end_lineno = _token->end_lineno;
3644 UNUSED(_end_lineno); // Only used by EXTRA macro
3645 int _end_col_offset = _token->end_col_offset;
3646 UNUSED(_end_col_offset); // Only used by EXTRA macro
3647 _res = _PyAST_alias ( a -> v . Name . id , ( b ) ? ( ( expr_ty ) b ) -> v . Name . id : NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003648 if (_res == NULL && PyErr_Occurred()) {
3649 p->error_indicator = 1;
3650 D(p->level--);
3651 return NULL;
3652 }
3653 goto done;
3654 }
3655 p->mark = _mark;
3656 D(fprintf(stderr, "%*c%s dotted_as_name[%d-%d]: %s failed!\n", p->level, ' ',
3657 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dotted_name ['as' NAME]"));
3658 }
3659 _res = NULL;
3660 done:
3661 D(p->level--);
3662 return _res;
3663}
3664
3665// Left-recursive
3666// dotted_name: dotted_name '.' NAME | NAME
3667static expr_ty dotted_name_raw(Parser *);
3668static expr_ty
3669dotted_name_rule(Parser *p)
3670{
3671 D(p->level++);
3672 expr_ty _res = NULL;
3673 if (_PyPegen_is_memoized(p, dotted_name_type, &_res)) {
3674 D(p->level--);
3675 return _res;
3676 }
3677 int _mark = p->mark;
3678 int _resmark = p->mark;
3679 while (1) {
3680 int tmpvar_0 = _PyPegen_update_memo(p, _mark, dotted_name_type, _res);
3681 if (tmpvar_0) {
3682 D(p->level--);
3683 return _res;
3684 }
3685 p->mark = _mark;
3686 void *_raw = dotted_name_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +02003687 if (p->error_indicator)
3688 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003689 if (_raw == NULL || p->mark <= _resmark)
3690 break;
3691 _resmark = p->mark;
3692 _res = _raw;
3693 }
3694 p->mark = _resmark;
3695 D(p->level--);
3696 return _res;
3697}
3698static expr_ty
3699dotted_name_raw(Parser *p)
3700{
3701 D(p->level++);
3702 if (p->error_indicator) {
3703 D(p->level--);
3704 return NULL;
3705 }
3706 expr_ty _res = NULL;
3707 int _mark = p->mark;
3708 { // dotted_name '.' NAME
3709 if (p->error_indicator) {
3710 D(p->level--);
3711 return NULL;
3712 }
3713 D(fprintf(stderr, "%*c> dotted_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dotted_name '.' NAME"));
3714 Token * _literal;
3715 expr_ty a;
3716 expr_ty b;
3717 if (
3718 (a = dotted_name_rule(p)) // dotted_name
3719 &&
3720 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
3721 &&
3722 (b = _PyPegen_name_token(p)) // NAME
3723 )
3724 {
3725 D(fprintf(stderr, "%*c+ dotted_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dotted_name '.' NAME"));
3726 _res = _PyPegen_join_names_with_dot ( p , a , b );
3727 if (_res == NULL && PyErr_Occurred()) {
3728 p->error_indicator = 1;
3729 D(p->level--);
3730 return NULL;
3731 }
3732 goto done;
3733 }
3734 p->mark = _mark;
3735 D(fprintf(stderr, "%*c%s dotted_name[%d-%d]: %s failed!\n", p->level, ' ',
3736 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dotted_name '.' NAME"));
3737 }
3738 { // NAME
3739 if (p->error_indicator) {
3740 D(p->level--);
3741 return NULL;
3742 }
3743 D(fprintf(stderr, "%*c> dotted_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
3744 expr_ty name_var;
3745 if (
3746 (name_var = _PyPegen_name_token(p)) // NAME
3747 )
3748 {
3749 D(fprintf(stderr, "%*c+ dotted_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
3750 _res = name_var;
3751 goto done;
3752 }
3753 p->mark = _mark;
3754 D(fprintf(stderr, "%*c%s dotted_name[%d-%d]: %s failed!\n", p->level, ' ',
3755 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
3756 }
3757 _res = NULL;
3758 done:
3759 D(p->level--);
3760 return _res;
3761}
3762
3763// if_stmt:
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003764// | 'if' named_expression ':' block elif_stmt
3765// | 'if' named_expression ':' block else_block?
3766// | invalid_if_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003767static stmt_ty
3768if_stmt_rule(Parser *p)
3769{
3770 D(p->level++);
3771 if (p->error_indicator) {
3772 D(p->level--);
3773 return NULL;
3774 }
3775 stmt_ty _res = NULL;
3776 int _mark = p->mark;
3777 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3778 p->error_indicator = 1;
3779 D(p->level--);
3780 return NULL;
3781 }
3782 int _start_lineno = p->tokens[_mark]->lineno;
3783 UNUSED(_start_lineno); // Only used by EXTRA macro
3784 int _start_col_offset = p->tokens[_mark]->col_offset;
3785 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003786 { // 'if' named_expression ':' block elif_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003787 if (p->error_indicator) {
3788 D(p->level--);
3789 return NULL;
3790 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003791 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 +01003792 Token * _keyword;
3793 Token * _literal;
3794 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003795 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003796 stmt_ty c;
3797 if (
3798 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
3799 &&
3800 (a = named_expression_rule(p)) // named_expression
3801 &&
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003802 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003803 &&
3804 (b = block_rule(p)) // block
3805 &&
3806 (c = elif_stmt_rule(p)) // elif_stmt
3807 )
3808 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003809 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 +01003810 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3811 if (_token == NULL) {
3812 D(p->level--);
3813 return NULL;
3814 }
3815 int _end_lineno = _token->end_lineno;
3816 UNUSED(_end_lineno); // Only used by EXTRA macro
3817 int _end_col_offset = _token->end_col_offset;
3818 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02003819 _res = _PyAST_If ( a , b , CHECK ( asdl_stmt_seq * , _PyPegen_singleton_seq ( p , c ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003820 if (_res == NULL && PyErr_Occurred()) {
3821 p->error_indicator = 1;
3822 D(p->level--);
3823 return NULL;
3824 }
3825 goto done;
3826 }
3827 p->mark = _mark;
3828 D(fprintf(stderr, "%*c%s if_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003829 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression ':' block elif_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003830 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003831 { // 'if' named_expression ':' block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003832 if (p->error_indicator) {
3833 D(p->level--);
3834 return NULL;
3835 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003836 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 +01003837 Token * _keyword;
3838 Token * _literal;
3839 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003840 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003841 void *c;
3842 if (
3843 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
3844 &&
3845 (a = named_expression_rule(p)) // named_expression
3846 &&
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003847 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003848 &&
3849 (b = block_rule(p)) // block
3850 &&
3851 (c = else_block_rule(p), 1) // else_block?
3852 )
3853 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003854 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 +01003855 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3856 if (_token == NULL) {
3857 D(p->level--);
3858 return NULL;
3859 }
3860 int _end_lineno = _token->end_lineno;
3861 UNUSED(_end_lineno); // Only used by EXTRA macro
3862 int _end_col_offset = _token->end_col_offset;
3863 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02003864 _res = _PyAST_If ( a , b , c , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003865 if (_res == NULL && PyErr_Occurred()) {
3866 p->error_indicator = 1;
3867 D(p->level--);
3868 return NULL;
3869 }
3870 goto done;
3871 }
3872 p->mark = _mark;
3873 D(fprintf(stderr, "%*c%s if_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003874 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression ':' block else_block?"));
3875 }
3876 if (p->call_invalid_rules) { // invalid_if_stmt
3877 if (p->error_indicator) {
3878 D(p->level--);
3879 return NULL;
3880 }
3881 D(fprintf(stderr, "%*c> if_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_if_stmt"));
3882 void *invalid_if_stmt_var;
3883 if (
3884 (invalid_if_stmt_var = invalid_if_stmt_rule(p)) // invalid_if_stmt
3885 )
3886 {
3887 D(fprintf(stderr, "%*c+ if_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_if_stmt"));
3888 _res = invalid_if_stmt_var;
3889 goto done;
3890 }
3891 p->mark = _mark;
3892 D(fprintf(stderr, "%*c%s if_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3893 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_if_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003894 }
3895 _res = NULL;
3896 done:
3897 D(p->level--);
3898 return _res;
3899}
3900
3901// elif_stmt:
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003902// | 'elif' named_expression ':' block elif_stmt
3903// | 'elif' named_expression ':' block else_block?
3904// | invalid_elif_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003905static stmt_ty
3906elif_stmt_rule(Parser *p)
3907{
3908 D(p->level++);
3909 if (p->error_indicator) {
3910 D(p->level--);
3911 return NULL;
3912 }
3913 stmt_ty _res = NULL;
3914 int _mark = p->mark;
3915 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3916 p->error_indicator = 1;
3917 D(p->level--);
3918 return NULL;
3919 }
3920 int _start_lineno = p->tokens[_mark]->lineno;
3921 UNUSED(_start_lineno); // Only used by EXTRA macro
3922 int _start_col_offset = p->tokens[_mark]->col_offset;
3923 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003924 { // 'elif' named_expression ':' block elif_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003925 if (p->error_indicator) {
3926 D(p->level--);
3927 return NULL;
3928 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003929 D(fprintf(stderr, "%*c> elif_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'elif' named_expression ':' block elif_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003930 Token * _keyword;
3931 Token * _literal;
3932 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003933 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003934 stmt_ty c;
3935 if (
3936 (_keyword = _PyPegen_expect_token(p, 515)) // token='elif'
3937 &&
3938 (a = named_expression_rule(p)) // named_expression
3939 &&
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003940 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003941 &&
3942 (b = block_rule(p)) // block
3943 &&
3944 (c = elif_stmt_rule(p)) // elif_stmt
3945 )
3946 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003947 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 +01003948 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3949 if (_token == NULL) {
3950 D(p->level--);
3951 return NULL;
3952 }
3953 int _end_lineno = _token->end_lineno;
3954 UNUSED(_end_lineno); // Only used by EXTRA macro
3955 int _end_col_offset = _token->end_col_offset;
3956 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02003957 _res = _PyAST_If ( a , b , CHECK ( asdl_stmt_seq * , _PyPegen_singleton_seq ( p , c ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003958 if (_res == NULL && PyErr_Occurred()) {
3959 p->error_indicator = 1;
3960 D(p->level--);
3961 return NULL;
3962 }
3963 goto done;
3964 }
3965 p->mark = _mark;
3966 D(fprintf(stderr, "%*c%s elif_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003967 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'elif' named_expression ':' block elif_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003968 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003969 { // 'elif' named_expression ':' block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003970 if (p->error_indicator) {
3971 D(p->level--);
3972 return NULL;
3973 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003974 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 +01003975 Token * _keyword;
3976 Token * _literal;
3977 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003978 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003979 void *c;
3980 if (
3981 (_keyword = _PyPegen_expect_token(p, 515)) // token='elif'
3982 &&
3983 (a = named_expression_rule(p)) // named_expression
3984 &&
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003985 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003986 &&
3987 (b = block_rule(p)) // block
3988 &&
3989 (c = else_block_rule(p), 1) // else_block?
3990 )
3991 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003992 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 +01003993 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3994 if (_token == NULL) {
3995 D(p->level--);
3996 return NULL;
3997 }
3998 int _end_lineno = _token->end_lineno;
3999 UNUSED(_end_lineno); // Only used by EXTRA macro
4000 int _end_col_offset = _token->end_col_offset;
4001 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004002 _res = _PyAST_If ( a , b , c , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004003 if (_res == NULL && PyErr_Occurred()) {
4004 p->error_indicator = 1;
4005 D(p->level--);
4006 return NULL;
4007 }
4008 goto done;
4009 }
4010 p->mark = _mark;
4011 D(fprintf(stderr, "%*c%s elif_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004012 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'elif' named_expression ':' block else_block?"));
4013 }
4014 if (p->call_invalid_rules) { // invalid_elif_stmt
4015 if (p->error_indicator) {
4016 D(p->level--);
4017 return NULL;
4018 }
4019 D(fprintf(stderr, "%*c> elif_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_elif_stmt"));
4020 void *invalid_elif_stmt_var;
4021 if (
4022 (invalid_elif_stmt_var = invalid_elif_stmt_rule(p)) // invalid_elif_stmt
4023 )
4024 {
4025 D(fprintf(stderr, "%*c+ elif_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_elif_stmt"));
4026 _res = invalid_elif_stmt_var;
4027 goto done;
4028 }
4029 p->mark = _mark;
4030 D(fprintf(stderr, "%*c%s elif_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4031 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_elif_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004032 }
4033 _res = NULL;
4034 done:
4035 D(p->level--);
4036 return _res;
4037}
4038
Pablo Galindo58fb1562021-02-02 19:54:22 +00004039// else_block: 'else' &&':' block
Pablo Galindoa5634c42020-09-16 19:42:00 +01004040static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004041else_block_rule(Parser *p)
4042{
4043 D(p->level++);
4044 if (p->error_indicator) {
4045 D(p->level--);
4046 return NULL;
4047 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01004048 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004049 int _mark = p->mark;
Pablo Galindo58fb1562021-02-02 19:54:22 +00004050 { // 'else' &&':' block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004051 if (p->error_indicator) {
4052 D(p->level--);
4053 return NULL;
4054 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004055 D(fprintf(stderr, "%*c> else_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'else' &&':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004056 Token * _keyword;
4057 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004058 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004059 if (
4060 (_keyword = _PyPegen_expect_token(p, 516)) // token='else'
4061 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00004062 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004063 &&
4064 (b = block_rule(p)) // block
4065 )
4066 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00004067 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 +01004068 _res = b;
4069 if (_res == NULL && PyErr_Occurred()) {
4070 p->error_indicator = 1;
4071 D(p->level--);
4072 return NULL;
4073 }
4074 goto done;
4075 }
4076 p->mark = _mark;
4077 D(fprintf(stderr, "%*c%s else_block[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00004078 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'else' &&':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004079 }
4080 _res = NULL;
4081 done:
4082 D(p->level--);
4083 return _res;
4084}
4085
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004086// while_stmt: 'while' named_expression ':' block else_block? | invalid_while_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004087static stmt_ty
4088while_stmt_rule(Parser *p)
4089{
4090 D(p->level++);
4091 if (p->error_indicator) {
4092 D(p->level--);
4093 return NULL;
4094 }
4095 stmt_ty _res = NULL;
4096 int _mark = p->mark;
4097 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4098 p->error_indicator = 1;
4099 D(p->level--);
4100 return NULL;
4101 }
4102 int _start_lineno = p->tokens[_mark]->lineno;
4103 UNUSED(_start_lineno); // Only used by EXTRA macro
4104 int _start_col_offset = p->tokens[_mark]->col_offset;
4105 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004106 { // 'while' named_expression ':' block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004107 if (p->error_indicator) {
4108 D(p->level--);
4109 return NULL;
4110 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004111 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 +01004112 Token * _keyword;
4113 Token * _literal;
4114 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004115 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004116 void *c;
4117 if (
4118 (_keyword = _PyPegen_expect_token(p, 512)) // token='while'
4119 &&
4120 (a = named_expression_rule(p)) // named_expression
4121 &&
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004122 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004123 &&
4124 (b = block_rule(p)) // block
4125 &&
4126 (c = else_block_rule(p), 1) // else_block?
4127 )
4128 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004129 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 +01004130 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4131 if (_token == NULL) {
4132 D(p->level--);
4133 return NULL;
4134 }
4135 int _end_lineno = _token->end_lineno;
4136 UNUSED(_end_lineno); // Only used by EXTRA macro
4137 int _end_col_offset = _token->end_col_offset;
4138 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004139 _res = _PyAST_While ( a , b , c , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004140 if (_res == NULL && PyErr_Occurred()) {
4141 p->error_indicator = 1;
4142 D(p->level--);
4143 return NULL;
4144 }
4145 goto done;
4146 }
4147 p->mark = _mark;
4148 D(fprintf(stderr, "%*c%s while_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004149 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'while' named_expression ':' block else_block?"));
4150 }
4151 if (p->call_invalid_rules) { // invalid_while_stmt
4152 if (p->error_indicator) {
4153 D(p->level--);
4154 return NULL;
4155 }
4156 D(fprintf(stderr, "%*c> while_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_while_stmt"));
4157 void *invalid_while_stmt_var;
4158 if (
4159 (invalid_while_stmt_var = invalid_while_stmt_rule(p)) // invalid_while_stmt
4160 )
4161 {
4162 D(fprintf(stderr, "%*c+ while_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_while_stmt"));
4163 _res = invalid_while_stmt_var;
4164 goto done;
4165 }
4166 p->mark = _mark;
4167 D(fprintf(stderr, "%*c%s while_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4168 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_while_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004169 }
4170 _res = NULL;
4171 done:
4172 D(p->level--);
4173 return _res;
4174}
4175
4176// for_stmt:
Pablo Galindo58fb1562021-02-02 19:54:22 +00004177// | 'for' star_targets 'in' ~ star_expressions &&':' TYPE_COMMENT? block else_block?
4178// | ASYNC 'for' star_targets 'in' ~ star_expressions &&':' TYPE_COMMENT? block else_block?
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004179// | invalid_for_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004180static stmt_ty
4181for_stmt_rule(Parser *p)
4182{
4183 D(p->level++);
4184 if (p->error_indicator) {
4185 D(p->level--);
4186 return NULL;
4187 }
4188 stmt_ty _res = NULL;
4189 int _mark = p->mark;
4190 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4191 p->error_indicator = 1;
4192 D(p->level--);
4193 return NULL;
4194 }
4195 int _start_lineno = p->tokens[_mark]->lineno;
4196 UNUSED(_start_lineno); // Only used by EXTRA macro
4197 int _start_col_offset = p->tokens[_mark]->col_offset;
4198 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo58fb1562021-02-02 19:54:22 +00004199 { // 'for' star_targets 'in' ~ star_expressions &&':' TYPE_COMMENT? block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004200 if (p->error_indicator) {
4201 D(p->level--);
4202 return NULL;
4203 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004204 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 +03004205 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004206 Token * _keyword;
4207 Token * _keyword_1;
4208 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004209 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004210 void *el;
4211 expr_ty ex;
4212 expr_ty t;
4213 void *tc;
4214 if (
4215 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
4216 &&
4217 (t = star_targets_rule(p)) // star_targets
4218 &&
4219 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
4220 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004221 (_cut_var = 1)
4222 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004223 (ex = star_expressions_rule(p)) // star_expressions
4224 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00004225 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004226 &&
4227 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
4228 &&
4229 (b = block_rule(p)) // block
4230 &&
4231 (el = else_block_rule(p), 1) // else_block?
4232 )
4233 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00004234 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 +01004235 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4236 if (_token == NULL) {
4237 D(p->level--);
4238 return NULL;
4239 }
4240 int _end_lineno = _token->end_lineno;
4241 UNUSED(_end_lineno); // Only used by EXTRA macro
4242 int _end_col_offset = _token->end_col_offset;
4243 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004244 _res = _PyAST_For ( t , ex , b , el , NEW_TYPE_COMMENT ( p , tc ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004245 if (_res == NULL && PyErr_Occurred()) {
4246 p->error_indicator = 1;
4247 D(p->level--);
4248 return NULL;
4249 }
4250 goto done;
4251 }
4252 p->mark = _mark;
4253 D(fprintf(stderr, "%*c%s for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00004254 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 +03004255 if (_cut_var) {
4256 D(p->level--);
4257 return NULL;
4258 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004259 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004260 { // ASYNC 'for' star_targets 'in' ~ star_expressions &&':' TYPE_COMMENT? block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004261 if (p->error_indicator) {
4262 D(p->level--);
4263 return NULL;
4264 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004265 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 +03004266 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004267 Token * _keyword;
4268 Token * _keyword_1;
4269 Token * _literal;
4270 Token * async_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004271 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004272 void *el;
4273 expr_ty ex;
4274 expr_ty t;
4275 void *tc;
4276 if (
4277 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
4278 &&
4279 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
4280 &&
4281 (t = star_targets_rule(p)) // star_targets
4282 &&
4283 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
4284 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004285 (_cut_var = 1)
4286 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004287 (ex = star_expressions_rule(p)) // star_expressions
4288 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00004289 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004290 &&
4291 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
4292 &&
4293 (b = block_rule(p)) // block
4294 &&
4295 (el = else_block_rule(p), 1) // else_block?
4296 )
4297 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00004298 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 +01004299 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4300 if (_token == NULL) {
4301 D(p->level--);
4302 return NULL;
4303 }
4304 int _end_lineno = _token->end_lineno;
4305 UNUSED(_end_lineno); // Only used by EXTRA macro
4306 int _end_col_offset = _token->end_col_offset;
4307 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004308 _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 +01004309 if (_res == NULL && PyErr_Occurred()) {
4310 p->error_indicator = 1;
4311 D(p->level--);
4312 return NULL;
4313 }
4314 goto done;
4315 }
4316 p->mark = _mark;
4317 D(fprintf(stderr, "%*c%s for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00004318 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 +03004319 if (_cut_var) {
4320 D(p->level--);
4321 return NULL;
4322 }
4323 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02004324 if (p->call_invalid_rules) { // invalid_for_target
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004325 if (p->error_indicator) {
4326 D(p->level--);
4327 return NULL;
4328 }
4329 D(fprintf(stderr, "%*c> for_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
4330 void *invalid_for_target_var;
4331 if (
4332 (invalid_for_target_var = invalid_for_target_rule(p)) // invalid_for_target
4333 )
4334 {
4335 D(fprintf(stderr, "%*c+ for_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
4336 _res = invalid_for_target_var;
4337 goto done;
4338 }
4339 p->mark = _mark;
4340 D(fprintf(stderr, "%*c%s for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4341 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_for_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004342 }
4343 _res = NULL;
4344 done:
4345 D(p->level--);
4346 return _res;
4347}
4348
4349// with_stmt:
4350// | 'with' '(' ','.with_item+ ','? ')' ':' block
4351// | 'with' ','.with_item+ ':' TYPE_COMMENT? block
4352// | ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block
4353// | ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block
Pablo Galindo58fb1562021-02-02 19:54:22 +00004354// | invalid_with_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004355static stmt_ty
4356with_stmt_rule(Parser *p)
4357{
4358 D(p->level++);
4359 if (p->error_indicator) {
4360 D(p->level--);
4361 return NULL;
4362 }
4363 stmt_ty _res = NULL;
4364 int _mark = p->mark;
4365 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4366 p->error_indicator = 1;
4367 D(p->level--);
4368 return NULL;
4369 }
4370 int _start_lineno = p->tokens[_mark]->lineno;
4371 UNUSED(_start_lineno); // Only used by EXTRA macro
4372 int _start_col_offset = p->tokens[_mark]->col_offset;
4373 UNUSED(_start_col_offset); // Only used by EXTRA macro
4374 { // 'with' '(' ','.with_item+ ','? ')' ':' block
4375 if (p->error_indicator) {
4376 D(p->level--);
4377 return NULL;
4378 }
4379 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'with' '(' ','.with_item+ ','? ')' ':' block"));
4380 Token * _keyword;
4381 Token * _literal;
4382 Token * _literal_1;
4383 Token * _literal_2;
4384 void *_opt_var;
4385 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +01004386 asdl_withitem_seq* a;
4387 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004388 if (
4389 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
4390 &&
4391 (_literal = _PyPegen_expect_token(p, 7)) // token='('
4392 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01004393 (a = (asdl_withitem_seq*)_gather_39_rule(p)) // ','.with_item+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004394 &&
4395 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
4396 &&
4397 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
4398 &&
4399 (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':'
4400 &&
4401 (b = block_rule(p)) // block
4402 )
4403 {
4404 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'with' '(' ','.with_item+ ','? ')' ':' block"));
4405 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4406 if (_token == NULL) {
4407 D(p->level--);
4408 return NULL;
4409 }
4410 int _end_lineno = _token->end_lineno;
4411 UNUSED(_end_lineno); // Only used by EXTRA macro
4412 int _end_col_offset = _token->end_col_offset;
4413 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004414 _res = _PyAST_With ( a , b , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004415 if (_res == NULL && PyErr_Occurred()) {
4416 p->error_indicator = 1;
4417 D(p->level--);
4418 return NULL;
4419 }
4420 goto done;
4421 }
4422 p->mark = _mark;
4423 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4424 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'with' '(' ','.with_item+ ','? ')' ':' block"));
4425 }
4426 { // 'with' ','.with_item+ ':' TYPE_COMMENT? block
4427 if (p->error_indicator) {
4428 D(p->level--);
4429 return NULL;
4430 }
4431 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4432 Token * _keyword;
4433 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004434 asdl_withitem_seq* a;
4435 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004436 void *tc;
4437 if (
4438 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
4439 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01004440 (a = (asdl_withitem_seq*)_gather_41_rule(p)) // ','.with_item+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004441 &&
4442 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
4443 &&
4444 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
4445 &&
4446 (b = block_rule(p)) // block
4447 )
4448 {
4449 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4450 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4451 if (_token == NULL) {
4452 D(p->level--);
4453 return NULL;
4454 }
4455 int _end_lineno = _token->end_lineno;
4456 UNUSED(_end_lineno); // Only used by EXTRA macro
4457 int _end_col_offset = _token->end_col_offset;
4458 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004459 _res = _PyAST_With ( a , b , NEW_TYPE_COMMENT ( p , tc ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004460 if (_res == NULL && PyErr_Occurred()) {
4461 p->error_indicator = 1;
4462 D(p->level--);
4463 return NULL;
4464 }
4465 goto done;
4466 }
4467 p->mark = _mark;
4468 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4469 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4470 }
4471 { // ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block
4472 if (p->error_indicator) {
4473 D(p->level--);
4474 return NULL;
4475 }
4476 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block"));
4477 Token * _keyword;
4478 Token * _literal;
4479 Token * _literal_1;
4480 Token * _literal_2;
4481 void *_opt_var;
4482 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +01004483 asdl_withitem_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004484 Token * async_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004485 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004486 if (
4487 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
4488 &&
4489 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
4490 &&
4491 (_literal = _PyPegen_expect_token(p, 7)) // token='('
4492 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01004493 (a = (asdl_withitem_seq*)_gather_43_rule(p)) // ','.with_item+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004494 &&
4495 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
4496 &&
4497 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
4498 &&
4499 (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':'
4500 &&
4501 (b = block_rule(p)) // block
4502 )
4503 {
4504 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block"));
4505 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4506 if (_token == NULL) {
4507 D(p->level--);
4508 return NULL;
4509 }
4510 int _end_lineno = _token->end_lineno;
4511 UNUSED(_end_lineno); // Only used by EXTRA macro
4512 int _end_col_offset = _token->end_col_offset;
4513 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004514 _res = CHECK_VERSION ( stmt_ty , 5 , "Async with statements are" , _PyAST_AsyncWith ( a , b , NULL , EXTRA ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004515 if (_res == NULL && PyErr_Occurred()) {
4516 p->error_indicator = 1;
4517 D(p->level--);
4518 return NULL;
4519 }
4520 goto done;
4521 }
4522 p->mark = _mark;
4523 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4524 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block"));
4525 }
4526 { // ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block
4527 if (p->error_indicator) {
4528 D(p->level--);
4529 return NULL;
4530 }
4531 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4532 Token * _keyword;
4533 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004534 asdl_withitem_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004535 Token * async_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004536 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004537 void *tc;
4538 if (
4539 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
4540 &&
4541 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
4542 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01004543 (a = (asdl_withitem_seq*)_gather_45_rule(p)) // ','.with_item+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004544 &&
4545 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
4546 &&
4547 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
4548 &&
4549 (b = block_rule(p)) // block
4550 )
4551 {
4552 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4553 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4554 if (_token == NULL) {
4555 D(p->level--);
4556 return NULL;
4557 }
4558 int _end_lineno = _token->end_lineno;
4559 UNUSED(_end_lineno); // Only used by EXTRA macro
4560 int _end_col_offset = _token->end_col_offset;
4561 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004562 _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 +01004563 if (_res == NULL && PyErr_Occurred()) {
4564 p->error_indicator = 1;
4565 D(p->level--);
4566 return NULL;
4567 }
4568 goto done;
4569 }
4570 p->mark = _mark;
4571 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4572 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4573 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004574 if (p->call_invalid_rules) { // invalid_with_stmt
4575 if (p->error_indicator) {
4576 D(p->level--);
4577 return NULL;
4578 }
4579 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_with_stmt"));
4580 void *invalid_with_stmt_var;
4581 if (
4582 (invalid_with_stmt_var = invalid_with_stmt_rule(p)) // invalid_with_stmt
4583 )
4584 {
4585 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_with_stmt"));
4586 _res = invalid_with_stmt_var;
4587 goto done;
4588 }
4589 p->mark = _mark;
4590 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4591 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_with_stmt"));
4592 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004593 _res = NULL;
4594 done:
4595 D(p->level--);
4596 return _res;
4597}
4598
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004599// with_item:
4600// | expression 'as' star_target &(',' | ')' | ':')
4601// | invalid_with_item
4602// | expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004603static withitem_ty
4604with_item_rule(Parser *p)
4605{
4606 D(p->level++);
4607 if (p->error_indicator) {
4608 D(p->level--);
4609 return NULL;
4610 }
4611 withitem_ty _res = NULL;
4612 int _mark = p->mark;
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004613 { // expression 'as' star_target &(',' | ')' | ':')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004614 if (p->error_indicator) {
4615 D(p->level--);
4616 return NULL;
4617 }
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004618 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 +03004619 Token * _keyword;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004620 expr_ty e;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004621 expr_ty t;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004622 if (
4623 (e = expression_rule(p)) // expression
4624 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004625 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
4626 &&
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004627 (t = star_target_rule(p)) // star_target
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004628 &&
4629 _PyPegen_lookahead(1, _tmp_47_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004630 )
4631 {
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004632 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 +02004633 _res = _PyAST_withitem ( e , t , p -> arena );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004634 if (_res == NULL && PyErr_Occurred()) {
4635 p->error_indicator = 1;
4636 D(p->level--);
4637 return NULL;
4638 }
4639 goto done;
4640 }
4641 p->mark = _mark;
4642 D(fprintf(stderr, "%*c%s with_item[%d-%d]: %s failed!\n", p->level, ' ',
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004643 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression 'as' star_target &(',' | ')' | ':')"));
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004644 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02004645 if (p->call_invalid_rules) { // invalid_with_item
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004646 if (p->error_indicator) {
4647 D(p->level--);
4648 return NULL;
4649 }
4650 D(fprintf(stderr, "%*c> with_item[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_with_item"));
4651 void *invalid_with_item_var;
4652 if (
4653 (invalid_with_item_var = invalid_with_item_rule(p)) // invalid_with_item
4654 )
4655 {
4656 D(fprintf(stderr, "%*c+ with_item[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_with_item"));
4657 _res = invalid_with_item_var;
4658 goto done;
4659 }
4660 p->mark = _mark;
4661 D(fprintf(stderr, "%*c%s with_item[%d-%d]: %s failed!\n", p->level, ' ',
4662 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_with_item"));
4663 }
4664 { // expression
4665 if (p->error_indicator) {
4666 D(p->level--);
4667 return NULL;
4668 }
4669 D(fprintf(stderr, "%*c> with_item[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression"));
4670 expr_ty e;
4671 if (
4672 (e = expression_rule(p)) // expression
4673 )
4674 {
4675 D(fprintf(stderr, "%*c+ with_item[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression"));
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004676 _res = _PyAST_withitem ( e , NULL , p -> arena );
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004677 if (_res == NULL && PyErr_Occurred()) {
4678 p->error_indicator = 1;
4679 D(p->level--);
4680 return NULL;
4681 }
4682 goto done;
4683 }
4684 p->mark = _mark;
4685 D(fprintf(stderr, "%*c%s with_item[%d-%d]: %s failed!\n", p->level, ' ',
4686 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004687 }
4688 _res = NULL;
4689 done:
4690 D(p->level--);
4691 return _res;
4692}
4693
4694// try_stmt:
Pablo Galindo58fb1562021-02-02 19:54:22 +00004695// | 'try' &&':' block finally_block
4696// | 'try' &&':' block except_block+ else_block? finally_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004697static stmt_ty
4698try_stmt_rule(Parser *p)
4699{
4700 D(p->level++);
4701 if (p->error_indicator) {
4702 D(p->level--);
4703 return NULL;
4704 }
4705 stmt_ty _res = NULL;
4706 int _mark = p->mark;
4707 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4708 p->error_indicator = 1;
4709 D(p->level--);
4710 return NULL;
4711 }
4712 int _start_lineno = p->tokens[_mark]->lineno;
4713 UNUSED(_start_lineno); // Only used by EXTRA macro
4714 int _start_col_offset = p->tokens[_mark]->col_offset;
4715 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo58fb1562021-02-02 19:54:22 +00004716 { // 'try' &&':' block finally_block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004717 if (p->error_indicator) {
4718 D(p->level--);
4719 return NULL;
4720 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004721 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 +01004722 Token * _keyword;
4723 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004724 asdl_stmt_seq* b;
4725 asdl_stmt_seq* f;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004726 if (
4727 (_keyword = _PyPegen_expect_token(p, 511)) // token='try'
4728 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00004729 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004730 &&
4731 (b = block_rule(p)) // block
4732 &&
4733 (f = finally_block_rule(p)) // finally_block
4734 )
4735 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00004736 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 +01004737 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4738 if (_token == NULL) {
4739 D(p->level--);
4740 return NULL;
4741 }
4742 int _end_lineno = _token->end_lineno;
4743 UNUSED(_end_lineno); // Only used by EXTRA macro
4744 int _end_col_offset = _token->end_col_offset;
4745 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004746 _res = _PyAST_Try ( b , NULL , NULL , f , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004747 if (_res == NULL && PyErr_Occurred()) {
4748 p->error_indicator = 1;
4749 D(p->level--);
4750 return NULL;
4751 }
4752 goto done;
4753 }
4754 p->mark = _mark;
4755 D(fprintf(stderr, "%*c%s try_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00004756 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'try' &&':' block finally_block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004757 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004758 { // 'try' &&':' block except_block+ else_block? finally_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004759 if (p->error_indicator) {
4760 D(p->level--);
4761 return NULL;
4762 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004763 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 +01004764 Token * _keyword;
4765 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004766 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004767 void *el;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004768 asdl_excepthandler_seq* ex;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004769 void *f;
4770 if (
4771 (_keyword = _PyPegen_expect_token(p, 511)) // token='try'
4772 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00004773 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004774 &&
4775 (b = block_rule(p)) // block
4776 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01004777 (ex = (asdl_excepthandler_seq*)_loop1_48_rule(p)) // except_block+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004778 &&
4779 (el = else_block_rule(p), 1) // else_block?
4780 &&
4781 (f = finally_block_rule(p), 1) // finally_block?
4782 )
4783 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00004784 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 +01004785 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4786 if (_token == NULL) {
4787 D(p->level--);
4788 return NULL;
4789 }
4790 int _end_lineno = _token->end_lineno;
4791 UNUSED(_end_lineno); // Only used by EXTRA macro
4792 int _end_col_offset = _token->end_col_offset;
4793 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004794 _res = _PyAST_Try ( b , ex , el , f , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004795 if (_res == NULL && PyErr_Occurred()) {
4796 p->error_indicator = 1;
4797 D(p->level--);
4798 return NULL;
4799 }
4800 goto done;
4801 }
4802 p->mark = _mark;
4803 D(fprintf(stderr, "%*c%s try_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00004804 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'try' &&':' block except_block+ else_block? finally_block?"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004805 }
4806 _res = NULL;
4807 done:
4808 D(p->level--);
4809 return _res;
4810}
4811
Pablo Galindo206cbda2021-02-07 18:42:21 +00004812// except_block:
4813// | 'except' expression ['as' NAME] ':' block
4814// | 'except' ':' block
4815// | invalid_except_block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004816static excepthandler_ty
4817except_block_rule(Parser *p)
4818{
4819 D(p->level++);
4820 if (p->error_indicator) {
4821 D(p->level--);
4822 return NULL;
4823 }
4824 excepthandler_ty _res = NULL;
4825 int _mark = p->mark;
4826 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4827 p->error_indicator = 1;
4828 D(p->level--);
4829 return NULL;
4830 }
4831 int _start_lineno = p->tokens[_mark]->lineno;
4832 UNUSED(_start_lineno); // Only used by EXTRA macro
4833 int _start_col_offset = p->tokens[_mark]->col_offset;
4834 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo206cbda2021-02-07 18:42:21 +00004835 { // 'except' expression ['as' NAME] ':' block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004836 if (p->error_indicator) {
4837 D(p->level--);
4838 return NULL;
4839 }
Pablo Galindo206cbda2021-02-07 18:42:21 +00004840 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 +01004841 Token * _keyword;
4842 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004843 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004844 expr_ty e;
4845 void *t;
4846 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004847 (_keyword = _PyPegen_expect_token(p, 521)) // token='except'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004848 &&
4849 (e = expression_rule(p)) // expression
4850 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004851 (t = _tmp_49_rule(p), 1) // ['as' NAME]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004852 &&
Pablo Galindo206cbda2021-02-07 18:42:21 +00004853 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004854 &&
4855 (b = block_rule(p)) // block
4856 )
4857 {
Pablo Galindo206cbda2021-02-07 18:42:21 +00004858 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 +01004859 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4860 if (_token == NULL) {
4861 D(p->level--);
4862 return NULL;
4863 }
4864 int _end_lineno = _token->end_lineno;
4865 UNUSED(_end_lineno); // Only used by EXTRA macro
4866 int _end_col_offset = _token->end_col_offset;
4867 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004868 _res = _PyAST_ExceptHandler ( e , ( t ) ? ( ( expr_ty ) t ) -> v . Name . id : NULL , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004869 if (_res == NULL && PyErr_Occurred()) {
4870 p->error_indicator = 1;
4871 D(p->level--);
4872 return NULL;
4873 }
4874 goto done;
4875 }
4876 p->mark = _mark;
4877 D(fprintf(stderr, "%*c%s except_block[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo206cbda2021-02-07 18:42:21 +00004878 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' expression ['as' NAME] ':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004879 }
Pablo Galindo206cbda2021-02-07 18:42:21 +00004880 { // 'except' ':' block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004881 if (p->error_indicator) {
4882 D(p->level--);
4883 return NULL;
4884 }
Pablo Galindo206cbda2021-02-07 18:42:21 +00004885 D(fprintf(stderr, "%*c> except_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' ':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004886 Token * _keyword;
4887 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004888 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004889 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004890 (_keyword = _PyPegen_expect_token(p, 521)) // token='except'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004891 &&
Pablo Galindo206cbda2021-02-07 18:42:21 +00004892 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004893 &&
4894 (b = block_rule(p)) // block
4895 )
4896 {
Pablo Galindo206cbda2021-02-07 18:42:21 +00004897 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 +01004898 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4899 if (_token == NULL) {
4900 D(p->level--);
4901 return NULL;
4902 }
4903 int _end_lineno = _token->end_lineno;
4904 UNUSED(_end_lineno); // Only used by EXTRA macro
4905 int _end_col_offset = _token->end_col_offset;
4906 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004907 _res = _PyAST_ExceptHandler ( NULL , NULL , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004908 if (_res == NULL && PyErr_Occurred()) {
4909 p->error_indicator = 1;
4910 D(p->level--);
4911 return NULL;
4912 }
4913 goto done;
4914 }
4915 p->mark = _mark;
4916 D(fprintf(stderr, "%*c%s except_block[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo206cbda2021-02-07 18:42:21 +00004917 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' ':' block"));
4918 }
4919 if (p->call_invalid_rules) { // invalid_except_block
4920 if (p->error_indicator) {
4921 D(p->level--);
4922 return NULL;
4923 }
4924 D(fprintf(stderr, "%*c> except_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_except_block"));
4925 void *invalid_except_block_var;
4926 if (
4927 (invalid_except_block_var = invalid_except_block_rule(p)) // invalid_except_block
4928 )
4929 {
4930 D(fprintf(stderr, "%*c+ except_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_except_block"));
4931 _res = invalid_except_block_var;
4932 goto done;
4933 }
4934 p->mark = _mark;
4935 D(fprintf(stderr, "%*c%s except_block[%d-%d]: %s failed!\n", p->level, ' ',
4936 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_except_block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004937 }
4938 _res = NULL;
4939 done:
4940 D(p->level--);
4941 return _res;
4942}
4943
4944// finally_block: 'finally' ':' block
Pablo Galindoa5634c42020-09-16 19:42:00 +01004945static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004946finally_block_rule(Parser *p)
4947{
4948 D(p->level++);
4949 if (p->error_indicator) {
4950 D(p->level--);
4951 return NULL;
4952 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01004953 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004954 int _mark = p->mark;
4955 { // 'finally' ':' block
4956 if (p->error_indicator) {
4957 D(p->level--);
4958 return NULL;
4959 }
4960 D(fprintf(stderr, "%*c> finally_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'finally' ':' block"));
4961 Token * _keyword;
4962 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004963 asdl_stmt_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004964 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004965 (_keyword = _PyPegen_expect_token(p, 522)) // token='finally'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004966 &&
4967 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
4968 &&
4969 (a = block_rule(p)) // block
4970 )
4971 {
4972 D(fprintf(stderr, "%*c+ finally_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'finally' ':' block"));
4973 _res = a;
4974 if (_res == NULL && PyErr_Occurred()) {
4975 p->error_indicator = 1;
4976 D(p->level--);
4977 return NULL;
4978 }
4979 goto done;
4980 }
4981 p->mark = _mark;
4982 D(fprintf(stderr, "%*c%s finally_block[%d-%d]: %s failed!\n", p->level, ' ',
4983 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'finally' ':' block"));
4984 }
4985 _res = NULL;
4986 done:
4987 D(p->level--);
4988 return _res;
4989}
4990
Pablo Galindo08fb8ac2021-03-18 01:03:11 +00004991// match_stmt:
4992// | "match" subject_expr ':' NEWLINE INDENT case_block+ DEDENT
4993// | invalid_match_stmt
Brandt Bucher145bf262021-02-26 14:51:55 -08004994static stmt_ty
4995match_stmt_rule(Parser *p)
4996{
4997 D(p->level++);
4998 if (p->error_indicator) {
4999 D(p->level--);
5000 return NULL;
5001 }
5002 stmt_ty _res = NULL;
5003 int _mark = p->mark;
5004 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
5005 p->error_indicator = 1;
5006 D(p->level--);
5007 return NULL;
5008 }
5009 int _start_lineno = p->tokens[_mark]->lineno;
5010 UNUSED(_start_lineno); // Only used by EXTRA macro
5011 int _start_col_offset = p->tokens[_mark]->col_offset;
5012 UNUSED(_start_col_offset); // Only used by EXTRA macro
5013 { // "match" subject_expr ':' NEWLINE INDENT case_block+ DEDENT
5014 if (p->error_indicator) {
5015 D(p->level--);
5016 return NULL;
5017 }
5018 D(fprintf(stderr, "%*c> match_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"match\" subject_expr ':' NEWLINE INDENT case_block+ DEDENT"));
5019 expr_ty _keyword;
5020 Token * _literal;
5021 asdl_match_case_seq* cases;
5022 Token * dedent_var;
5023 Token * indent_var;
5024 Token * newline_var;
5025 expr_ty subject;
5026 if (
5027 (_keyword = _PyPegen_expect_soft_keyword(p, "match")) // soft_keyword='"match"'
5028 &&
5029 (subject = subject_expr_rule(p)) // subject_expr
5030 &&
5031 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
5032 &&
5033 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
5034 &&
5035 (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
5036 &&
5037 (cases = (asdl_match_case_seq*)_loop1_50_rule(p)) // case_block+
5038 &&
5039 (dedent_var = _PyPegen_expect_token(p, DEDENT)) // token='DEDENT'
5040 )
5041 {
5042 D(fprintf(stderr, "%*c+ match_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"match\" subject_expr ':' NEWLINE INDENT case_block+ DEDENT"));
5043 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5044 if (_token == NULL) {
5045 D(p->level--);
5046 return NULL;
5047 }
5048 int _end_lineno = _token->end_lineno;
5049 UNUSED(_end_lineno); // Only used by EXTRA macro
5050 int _end_col_offset = _token->end_col_offset;
5051 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02005052 _res = CHECK_VERSION ( stmt_ty , 10 , "Pattern matching is" , _PyAST_Match ( subject , cases , EXTRA ) );
Brandt Bucher145bf262021-02-26 14:51:55 -08005053 if (_res == NULL && PyErr_Occurred()) {
5054 p->error_indicator = 1;
5055 D(p->level--);
5056 return NULL;
5057 }
5058 goto done;
5059 }
5060 p->mark = _mark;
5061 D(fprintf(stderr, "%*c%s match_stmt[%d-%d]: %s failed!\n", p->level, ' ',
5062 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"match\" subject_expr ':' NEWLINE INDENT case_block+ DEDENT"));
5063 }
Pablo Galindo08fb8ac2021-03-18 01:03:11 +00005064 if (p->call_invalid_rules) { // invalid_match_stmt
5065 if (p->error_indicator) {
5066 D(p->level--);
5067 return NULL;
5068 }
5069 D(fprintf(stderr, "%*c> match_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_match_stmt"));
5070 void *invalid_match_stmt_var;
5071 if (
5072 (invalid_match_stmt_var = invalid_match_stmt_rule(p)) // invalid_match_stmt
5073 )
5074 {
5075 D(fprintf(stderr, "%*c+ match_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_match_stmt"));
5076 _res = invalid_match_stmt_var;
5077 goto done;
5078 }
5079 p->mark = _mark;
5080 D(fprintf(stderr, "%*c%s match_stmt[%d-%d]: %s failed!\n", p->level, ' ',
5081 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_match_stmt"));
5082 }
Brandt Bucher145bf262021-02-26 14:51:55 -08005083 _res = NULL;
5084 done:
5085 D(p->level--);
5086 return _res;
5087}
5088
5089// subject_expr: star_named_expression ',' star_named_expressions? | named_expression
5090static expr_ty
5091subject_expr_rule(Parser *p)
5092{
5093 D(p->level++);
5094 if (p->error_indicator) {
5095 D(p->level--);
5096 return NULL;
5097 }
5098 expr_ty _res = NULL;
5099 int _mark = p->mark;
5100 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
5101 p->error_indicator = 1;
5102 D(p->level--);
5103 return NULL;
5104 }
5105 int _start_lineno = p->tokens[_mark]->lineno;
5106 UNUSED(_start_lineno); // Only used by EXTRA macro
5107 int _start_col_offset = p->tokens[_mark]->col_offset;
5108 UNUSED(_start_col_offset); // Only used by EXTRA macro
5109 { // star_named_expression ',' star_named_expressions?
5110 if (p->error_indicator) {
5111 D(p->level--);
5112 return NULL;
5113 }
5114 D(fprintf(stderr, "%*c> subject_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_named_expression ',' star_named_expressions?"));
5115 Token * _literal;
5116 expr_ty value;
5117 void *values;
5118 if (
5119 (value = star_named_expression_rule(p)) // star_named_expression
5120 &&
5121 (_literal = _PyPegen_expect_token(p, 12)) // token=','
5122 &&
5123 (values = star_named_expressions_rule(p), 1) // star_named_expressions?
5124 )
5125 {
5126 D(fprintf(stderr, "%*c+ subject_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_named_expression ',' star_named_expressions?"));
5127 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5128 if (_token == NULL) {
5129 D(p->level--);
5130 return NULL;
5131 }
5132 int _end_lineno = _token->end_lineno;
5133 UNUSED(_end_lineno); // Only used by EXTRA macro
5134 int _end_col_offset = _token->end_col_offset;
5135 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02005136 _res = _PyAST_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , value , values ) ) , Load , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08005137 if (_res == NULL && PyErr_Occurred()) {
5138 p->error_indicator = 1;
5139 D(p->level--);
5140 return NULL;
5141 }
5142 goto done;
5143 }
5144 p->mark = _mark;
5145 D(fprintf(stderr, "%*c%s subject_expr[%d-%d]: %s failed!\n", p->level, ' ',
5146 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression ',' star_named_expressions?"));
5147 }
5148 { // named_expression
5149 if (p->error_indicator) {
5150 D(p->level--);
5151 return NULL;
5152 }
5153 D(fprintf(stderr, "%*c> subject_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression"));
5154 expr_ty named_expression_var;
5155 if (
5156 (named_expression_var = named_expression_rule(p)) // named_expression
5157 )
5158 {
5159 D(fprintf(stderr, "%*c+ subject_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "named_expression"));
5160 _res = named_expression_var;
5161 goto done;
5162 }
5163 p->mark = _mark;
5164 D(fprintf(stderr, "%*c%s subject_expr[%d-%d]: %s failed!\n", p->level, ' ',
5165 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression"));
5166 }
5167 _res = NULL;
5168 done:
5169 D(p->level--);
5170 return _res;
5171}
5172
Pablo Galindo08fb8ac2021-03-18 01:03:11 +00005173// case_block: "case" patterns guard? ':' block | invalid_case_block
Brandt Bucher145bf262021-02-26 14:51:55 -08005174static match_case_ty
5175case_block_rule(Parser *p)
5176{
5177 D(p->level++);
5178 if (p->error_indicator) {
5179 D(p->level--);
5180 return NULL;
5181 }
5182 match_case_ty _res = NULL;
5183 int _mark = p->mark;
5184 { // "case" patterns guard? ':' block
5185 if (p->error_indicator) {
5186 D(p->level--);
5187 return NULL;
5188 }
5189 D(fprintf(stderr, "%*c> case_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"case\" patterns guard? ':' block"));
5190 expr_ty _keyword;
5191 Token * _literal;
5192 asdl_stmt_seq* body;
5193 void *guard;
5194 expr_ty pattern;
5195 if (
5196 (_keyword = _PyPegen_expect_soft_keyword(p, "case")) // soft_keyword='"case"'
5197 &&
5198 (pattern = patterns_rule(p)) // patterns
5199 &&
5200 (guard = guard_rule(p), 1) // guard?
5201 &&
5202 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
5203 &&
5204 (body = block_rule(p)) // block
5205 )
5206 {
5207 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 +02005208 _res = _PyAST_match_case ( pattern , guard , body , p -> arena );
Brandt Bucher145bf262021-02-26 14:51:55 -08005209 if (_res == NULL && PyErr_Occurred()) {
5210 p->error_indicator = 1;
5211 D(p->level--);
5212 return NULL;
5213 }
5214 goto done;
5215 }
5216 p->mark = _mark;
5217 D(fprintf(stderr, "%*c%s case_block[%d-%d]: %s failed!\n", p->level, ' ',
5218 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"case\" patterns guard? ':' block"));
5219 }
Pablo Galindo08fb8ac2021-03-18 01:03:11 +00005220 if (p->call_invalid_rules) { // invalid_case_block
5221 if (p->error_indicator) {
5222 D(p->level--);
5223 return NULL;
5224 }
5225 D(fprintf(stderr, "%*c> case_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_case_block"));
5226 void *invalid_case_block_var;
5227 if (
5228 (invalid_case_block_var = invalid_case_block_rule(p)) // invalid_case_block
5229 )
5230 {
5231 D(fprintf(stderr, "%*c+ case_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_case_block"));
5232 _res = invalid_case_block_var;
5233 goto done;
5234 }
5235 p->mark = _mark;
5236 D(fprintf(stderr, "%*c%s case_block[%d-%d]: %s failed!\n", p->level, ' ',
5237 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_case_block"));
5238 }
Brandt Bucher145bf262021-02-26 14:51:55 -08005239 _res = NULL;
5240 done:
5241 D(p->level--);
5242 return _res;
5243}
5244
5245// guard: 'if' named_expression
5246static expr_ty
5247guard_rule(Parser *p)
5248{
5249 D(p->level++);
5250 if (p->error_indicator) {
5251 D(p->level--);
5252 return NULL;
5253 }
5254 expr_ty _res = NULL;
5255 int _mark = p->mark;
5256 { // 'if' named_expression
5257 if (p->error_indicator) {
5258 D(p->level--);
5259 return NULL;
5260 }
5261 D(fprintf(stderr, "%*c> guard[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' named_expression"));
5262 Token * _keyword;
5263 expr_ty guard;
5264 if (
5265 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
5266 &&
5267 (guard = named_expression_rule(p)) // named_expression
5268 )
5269 {
5270 D(fprintf(stderr, "%*c+ guard[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' named_expression"));
5271 _res = guard;
5272 if (_res == NULL && PyErr_Occurred()) {
5273 p->error_indicator = 1;
5274 D(p->level--);
5275 return NULL;
5276 }
5277 goto done;
5278 }
5279 p->mark = _mark;
5280 D(fprintf(stderr, "%*c%s guard[%d-%d]: %s failed!\n", p->level, ' ',
5281 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression"));
5282 }
5283 _res = NULL;
5284 done:
5285 D(p->level--);
5286 return _res;
5287}
5288
5289// patterns: open_sequence_pattern | pattern
5290static expr_ty
5291patterns_rule(Parser *p)
5292{
5293 D(p->level++);
5294 if (p->error_indicator) {
5295 D(p->level--);
5296 return NULL;
5297 }
5298 expr_ty _res = NULL;
5299 int _mark = p->mark;
5300 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
5301 p->error_indicator = 1;
5302 D(p->level--);
5303 return NULL;
5304 }
5305 int _start_lineno = p->tokens[_mark]->lineno;
5306 UNUSED(_start_lineno); // Only used by EXTRA macro
5307 int _start_col_offset = p->tokens[_mark]->col_offset;
5308 UNUSED(_start_col_offset); // Only used by EXTRA macro
5309 { // open_sequence_pattern
5310 if (p->error_indicator) {
5311 D(p->level--);
5312 return NULL;
5313 }
5314 D(fprintf(stderr, "%*c> patterns[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "open_sequence_pattern"));
5315 asdl_expr_seq* values;
5316 if (
5317 (values = (asdl_expr_seq*)open_sequence_pattern_rule(p)) // open_sequence_pattern
5318 )
5319 {
5320 D(fprintf(stderr, "%*c+ patterns[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "open_sequence_pattern"));
5321 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5322 if (_token == NULL) {
5323 D(p->level--);
5324 return NULL;
5325 }
5326 int _end_lineno = _token->end_lineno;
5327 UNUSED(_end_lineno); // Only used by EXTRA macro
5328 int _end_col_offset = _token->end_col_offset;
5329 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02005330 _res = _PyAST_Tuple ( values , Load , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08005331 if (_res == NULL && PyErr_Occurred()) {
5332 p->error_indicator = 1;
5333 D(p->level--);
5334 return NULL;
5335 }
5336 goto done;
5337 }
5338 p->mark = _mark;
5339 D(fprintf(stderr, "%*c%s patterns[%d-%d]: %s failed!\n", p->level, ' ',
5340 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "open_sequence_pattern"));
5341 }
5342 { // pattern
5343 if (p->error_indicator) {
5344 D(p->level--);
5345 return NULL;
5346 }
5347 D(fprintf(stderr, "%*c> patterns[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "pattern"));
5348 expr_ty pattern_var;
5349 if (
5350 (pattern_var = pattern_rule(p)) // pattern
5351 )
5352 {
5353 D(fprintf(stderr, "%*c+ patterns[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "pattern"));
5354 _res = pattern_var;
5355 goto done;
5356 }
5357 p->mark = _mark;
5358 D(fprintf(stderr, "%*c%s patterns[%d-%d]: %s failed!\n", p->level, ' ',
5359 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "pattern"));
5360 }
5361 _res = NULL;
5362 done:
5363 D(p->level--);
5364 return _res;
5365}
5366
5367// pattern: as_pattern | or_pattern
5368static expr_ty
5369pattern_rule(Parser *p)
5370{
5371 D(p->level++);
5372 if (p->error_indicator) {
5373 D(p->level--);
5374 return NULL;
5375 }
5376 expr_ty _res = NULL;
5377 int _mark = p->mark;
5378 { // as_pattern
5379 if (p->error_indicator) {
5380 D(p->level--);
5381 return NULL;
5382 }
5383 D(fprintf(stderr, "%*c> pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "as_pattern"));
5384 expr_ty as_pattern_var;
5385 if (
5386 (as_pattern_var = as_pattern_rule(p)) // as_pattern
5387 )
5388 {
5389 D(fprintf(stderr, "%*c+ pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "as_pattern"));
5390 _res = as_pattern_var;
5391 goto done;
5392 }
5393 p->mark = _mark;
5394 D(fprintf(stderr, "%*c%s pattern[%d-%d]: %s failed!\n", p->level, ' ',
5395 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "as_pattern"));
5396 }
5397 { // or_pattern
5398 if (p->error_indicator) {
5399 D(p->level--);
5400 return NULL;
5401 }
5402 D(fprintf(stderr, "%*c> pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "or_pattern"));
5403 expr_ty or_pattern_var;
5404 if (
5405 (or_pattern_var = or_pattern_rule(p)) // or_pattern
5406 )
5407 {
5408 D(fprintf(stderr, "%*c+ pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "or_pattern"));
5409 _res = or_pattern_var;
5410 goto done;
5411 }
5412 p->mark = _mark;
5413 D(fprintf(stderr, "%*c%s pattern[%d-%d]: %s failed!\n", p->level, ' ',
5414 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "or_pattern"));
5415 }
5416 _res = NULL;
5417 done:
5418 D(p->level--);
5419 return _res;
5420}
5421
5422// as_pattern: or_pattern 'as' capture_pattern
5423static expr_ty
5424as_pattern_rule(Parser *p)
5425{
5426 D(p->level++);
5427 if (p->error_indicator) {
5428 D(p->level--);
5429 return NULL;
5430 }
5431 expr_ty _res = NULL;
5432 int _mark = p->mark;
5433 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
5434 p->error_indicator = 1;
5435 D(p->level--);
5436 return NULL;
5437 }
5438 int _start_lineno = p->tokens[_mark]->lineno;
5439 UNUSED(_start_lineno); // Only used by EXTRA macro
5440 int _start_col_offset = p->tokens[_mark]->col_offset;
5441 UNUSED(_start_col_offset); // Only used by EXTRA macro
5442 { // or_pattern 'as' capture_pattern
5443 if (p->error_indicator) {
5444 D(p->level--);
5445 return NULL;
5446 }
5447 D(fprintf(stderr, "%*c> as_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "or_pattern 'as' capture_pattern"));
5448 Token * _keyword;
5449 expr_ty pattern;
5450 expr_ty target;
5451 if (
5452 (pattern = or_pattern_rule(p)) // or_pattern
5453 &&
5454 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
5455 &&
5456 (target = capture_pattern_rule(p)) // capture_pattern
5457 )
5458 {
5459 D(fprintf(stderr, "%*c+ as_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "or_pattern 'as' capture_pattern"));
5460 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5461 if (_token == NULL) {
5462 D(p->level--);
5463 return NULL;
5464 }
5465 int _end_lineno = _token->end_lineno;
5466 UNUSED(_end_lineno); // Only used by EXTRA macro
5467 int _end_col_offset = _token->end_col_offset;
5468 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02005469 _res = _PyAST_MatchAs ( pattern , target -> v . Name . id , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08005470 if (_res == NULL && PyErr_Occurred()) {
5471 p->error_indicator = 1;
5472 D(p->level--);
5473 return NULL;
5474 }
5475 goto done;
5476 }
5477 p->mark = _mark;
5478 D(fprintf(stderr, "%*c%s as_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5479 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "or_pattern 'as' capture_pattern"));
5480 }
5481 _res = NULL;
5482 done:
5483 D(p->level--);
5484 return _res;
5485}
5486
5487// or_pattern: '|'.closed_pattern+
5488static expr_ty
5489or_pattern_rule(Parser *p)
5490{
5491 D(p->level++);
5492 if (p->error_indicator) {
5493 D(p->level--);
5494 return NULL;
5495 }
5496 expr_ty _res = NULL;
5497 int _mark = p->mark;
5498 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
5499 p->error_indicator = 1;
5500 D(p->level--);
5501 return NULL;
5502 }
5503 int _start_lineno = p->tokens[_mark]->lineno;
5504 UNUSED(_start_lineno); // Only used by EXTRA macro
5505 int _start_col_offset = p->tokens[_mark]->col_offset;
5506 UNUSED(_start_col_offset); // Only used by EXTRA macro
5507 { // '|'.closed_pattern+
5508 if (p->error_indicator) {
5509 D(p->level--);
5510 return NULL;
5511 }
5512 D(fprintf(stderr, "%*c> or_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'|'.closed_pattern+"));
5513 asdl_expr_seq* patterns;
5514 if (
5515 (patterns = (asdl_expr_seq*)_gather_51_rule(p)) // '|'.closed_pattern+
5516 )
5517 {
5518 D(fprintf(stderr, "%*c+ or_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'|'.closed_pattern+"));
5519 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5520 if (_token == NULL) {
5521 D(p->level--);
5522 return NULL;
5523 }
5524 int _end_lineno = _token->end_lineno;
5525 UNUSED(_end_lineno); // Only used by EXTRA macro
5526 int _end_col_offset = _token->end_col_offset;
5527 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02005528 _res = asdl_seq_LEN ( patterns ) == 1 ? asdl_seq_GET ( patterns , 0 ) : _PyAST_MatchOr ( patterns , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08005529 if (_res == NULL && PyErr_Occurred()) {
5530 p->error_indicator = 1;
5531 D(p->level--);
5532 return NULL;
5533 }
5534 goto done;
5535 }
5536 p->mark = _mark;
5537 D(fprintf(stderr, "%*c%s or_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5538 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'|'.closed_pattern+"));
5539 }
5540 _res = NULL;
5541 done:
5542 D(p->level--);
5543 return _res;
5544}
5545
5546// closed_pattern:
5547// | literal_pattern
5548// | capture_pattern
5549// | wildcard_pattern
5550// | value_pattern
5551// | group_pattern
5552// | sequence_pattern
5553// | mapping_pattern
5554// | class_pattern
5555static expr_ty
5556closed_pattern_rule(Parser *p)
5557{
5558 D(p->level++);
5559 if (p->error_indicator) {
5560 D(p->level--);
5561 return NULL;
5562 }
5563 expr_ty _res = NULL;
5564 int _mark = p->mark;
5565 { // literal_pattern
5566 if (p->error_indicator) {
5567 D(p->level--);
5568 return NULL;
5569 }
5570 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "literal_pattern"));
5571 expr_ty literal_pattern_var;
5572 if (
5573 (literal_pattern_var = literal_pattern_rule(p)) // literal_pattern
5574 )
5575 {
5576 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "literal_pattern"));
5577 _res = literal_pattern_var;
5578 goto done;
5579 }
5580 p->mark = _mark;
5581 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5582 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "literal_pattern"));
5583 }
5584 { // capture_pattern
5585 if (p->error_indicator) {
5586 D(p->level--);
5587 return NULL;
5588 }
5589 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "capture_pattern"));
5590 expr_ty capture_pattern_var;
5591 if (
5592 (capture_pattern_var = capture_pattern_rule(p)) // capture_pattern
5593 )
5594 {
5595 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "capture_pattern"));
5596 _res = capture_pattern_var;
5597 goto done;
5598 }
5599 p->mark = _mark;
5600 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5601 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "capture_pattern"));
5602 }
5603 { // wildcard_pattern
5604 if (p->error_indicator) {
5605 D(p->level--);
5606 return NULL;
5607 }
5608 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "wildcard_pattern"));
5609 expr_ty wildcard_pattern_var;
5610 if (
5611 (wildcard_pattern_var = wildcard_pattern_rule(p)) // wildcard_pattern
5612 )
5613 {
5614 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "wildcard_pattern"));
5615 _res = wildcard_pattern_var;
5616 goto done;
5617 }
5618 p->mark = _mark;
5619 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5620 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "wildcard_pattern"));
5621 }
5622 { // value_pattern
5623 if (p->error_indicator) {
5624 D(p->level--);
5625 return NULL;
5626 }
5627 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "value_pattern"));
5628 expr_ty value_pattern_var;
5629 if (
5630 (value_pattern_var = value_pattern_rule(p)) // value_pattern
5631 )
5632 {
5633 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "value_pattern"));
5634 _res = value_pattern_var;
5635 goto done;
5636 }
5637 p->mark = _mark;
5638 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5639 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "value_pattern"));
5640 }
5641 { // group_pattern
5642 if (p->error_indicator) {
5643 D(p->level--);
5644 return NULL;
5645 }
5646 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "group_pattern"));
5647 expr_ty group_pattern_var;
5648 if (
5649 (group_pattern_var = group_pattern_rule(p)) // group_pattern
5650 )
5651 {
5652 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "group_pattern"));
5653 _res = group_pattern_var;
5654 goto done;
5655 }
5656 p->mark = _mark;
5657 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5658 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "group_pattern"));
5659 }
5660 { // sequence_pattern
5661 if (p->error_indicator) {
5662 D(p->level--);
5663 return NULL;
5664 }
5665 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sequence_pattern"));
5666 expr_ty sequence_pattern_var;
5667 if (
5668 (sequence_pattern_var = sequence_pattern_rule(p)) // sequence_pattern
5669 )
5670 {
5671 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sequence_pattern"));
5672 _res = sequence_pattern_var;
5673 goto done;
5674 }
5675 p->mark = _mark;
5676 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5677 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sequence_pattern"));
5678 }
5679 { // mapping_pattern
5680 if (p->error_indicator) {
5681 D(p->level--);
5682 return NULL;
5683 }
5684 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "mapping_pattern"));
5685 expr_ty mapping_pattern_var;
5686 if (
5687 (mapping_pattern_var = mapping_pattern_rule(p)) // mapping_pattern
5688 )
5689 {
5690 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "mapping_pattern"));
5691 _res = mapping_pattern_var;
5692 goto done;
5693 }
5694 p->mark = _mark;
5695 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5696 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "mapping_pattern"));
5697 }
5698 { // class_pattern
5699 if (p->error_indicator) {
5700 D(p->level--);
5701 return NULL;
5702 }
5703 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "class_pattern"));
5704 expr_ty class_pattern_var;
5705 if (
5706 (class_pattern_var = class_pattern_rule(p)) // class_pattern
5707 )
5708 {
5709 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "class_pattern"));
5710 _res = class_pattern_var;
5711 goto done;
5712 }
5713 p->mark = _mark;
5714 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5715 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "class_pattern"));
5716 }
5717 _res = NULL;
5718 done:
5719 D(p->level--);
5720 return _res;
5721}
5722
5723// literal_pattern:
5724// | signed_number !('+' | '-')
5725// | signed_number '+' NUMBER
5726// | signed_number '-' NUMBER
5727// | strings
5728// | 'None'
5729// | 'True'
5730// | 'False'
5731static expr_ty
5732literal_pattern_rule(Parser *p)
5733{
5734 D(p->level++);
5735 if (p->error_indicator) {
5736 D(p->level--);
5737 return NULL;
5738 }
5739 expr_ty _res = NULL;
5740 int _mark = p->mark;
5741 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
5742 p->error_indicator = 1;
5743 D(p->level--);
5744 return NULL;
5745 }
5746 int _start_lineno = p->tokens[_mark]->lineno;
5747 UNUSED(_start_lineno); // Only used by EXTRA macro
5748 int _start_col_offset = p->tokens[_mark]->col_offset;
5749 UNUSED(_start_col_offset); // Only used by EXTRA macro
5750 { // signed_number !('+' | '-')
5751 if (p->error_indicator) {
5752 D(p->level--);
5753 return NULL;
5754 }
5755 D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "signed_number !('+' | '-')"));
5756 expr_ty signed_number_var;
5757 if (
5758 (signed_number_var = signed_number_rule(p)) // signed_number
5759 &&
5760 _PyPegen_lookahead(0, _tmp_53_rule, p)
5761 )
5762 {
5763 D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "signed_number !('+' | '-')"));
5764 _res = signed_number_var;
5765 goto done;
5766 }
5767 p->mark = _mark;
5768 D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5769 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "signed_number !('+' | '-')"));
5770 }
5771 { // signed_number '+' NUMBER
5772 if (p->error_indicator) {
5773 D(p->level--);
5774 return NULL;
5775 }
5776 D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "signed_number '+' NUMBER"));
5777 Token * _literal;
5778 expr_ty imag;
5779 expr_ty real;
5780 if (
5781 (real = signed_number_rule(p)) // signed_number
5782 &&
5783 (_literal = _PyPegen_expect_token(p, 14)) // token='+'
5784 &&
5785 (imag = _PyPegen_number_token(p)) // NUMBER
5786 )
5787 {
5788 D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "signed_number '+' NUMBER"));
5789 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5790 if (_token == NULL) {
5791 D(p->level--);
5792 return NULL;
5793 }
5794 int _end_lineno = _token->end_lineno;
5795 UNUSED(_end_lineno); // Only used by EXTRA macro
5796 int _end_col_offset = _token->end_col_offset;
5797 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02005798 _res = _PyAST_BinOp ( real , Add , imag , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08005799 if (_res == NULL && PyErr_Occurred()) {
5800 p->error_indicator = 1;
5801 D(p->level--);
5802 return NULL;
5803 }
5804 goto done;
5805 }
5806 p->mark = _mark;
5807 D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5808 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "signed_number '+' NUMBER"));
5809 }
5810 { // signed_number '-' NUMBER
5811 if (p->error_indicator) {
5812 D(p->level--);
5813 return NULL;
5814 }
5815 D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "signed_number '-' NUMBER"));
5816 Token * _literal;
5817 expr_ty imag;
5818 expr_ty real;
5819 if (
5820 (real = signed_number_rule(p)) // signed_number
5821 &&
5822 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
5823 &&
5824 (imag = _PyPegen_number_token(p)) // NUMBER
5825 )
5826 {
5827 D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "signed_number '-' NUMBER"));
5828 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5829 if (_token == NULL) {
5830 D(p->level--);
5831 return NULL;
5832 }
5833 int _end_lineno = _token->end_lineno;
5834 UNUSED(_end_lineno); // Only used by EXTRA macro
5835 int _end_col_offset = _token->end_col_offset;
5836 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02005837 _res = _PyAST_BinOp ( real , Sub , imag , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08005838 if (_res == NULL && PyErr_Occurred()) {
5839 p->error_indicator = 1;
5840 D(p->level--);
5841 return NULL;
5842 }
5843 goto done;
5844 }
5845 p->mark = _mark;
5846 D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5847 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "signed_number '-' NUMBER"));
5848 }
5849 { // strings
5850 if (p->error_indicator) {
5851 D(p->level--);
5852 return NULL;
5853 }
5854 D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "strings"));
5855 expr_ty strings_var;
5856 if (
5857 (strings_var = strings_rule(p)) // strings
5858 )
5859 {
5860 D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "strings"));
5861 _res = strings_var;
5862 goto done;
5863 }
5864 p->mark = _mark;
5865 D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5866 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "strings"));
5867 }
5868 { // 'None'
5869 if (p->error_indicator) {
5870 D(p->level--);
5871 return NULL;
5872 }
5873 D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'"));
5874 Token * _keyword;
5875 if (
5876 (_keyword = _PyPegen_expect_token(p, 523)) // token='None'
5877 )
5878 {
5879 D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'"));
5880 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5881 if (_token == NULL) {
5882 D(p->level--);
5883 return NULL;
5884 }
5885 int _end_lineno = _token->end_lineno;
5886 UNUSED(_end_lineno); // Only used by EXTRA macro
5887 int _end_col_offset = _token->end_col_offset;
5888 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02005889 _res = _PyAST_Constant ( Py_None , NULL , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08005890 if (_res == NULL && PyErr_Occurred()) {
5891 p->error_indicator = 1;
5892 D(p->level--);
5893 return NULL;
5894 }
5895 goto done;
5896 }
5897 p->mark = _mark;
5898 D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5899 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'None'"));
5900 }
5901 { // 'True'
5902 if (p->error_indicator) {
5903 D(p->level--);
5904 return NULL;
5905 }
5906 D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'"));
5907 Token * _keyword;
5908 if (
5909 (_keyword = _PyPegen_expect_token(p, 524)) // token='True'
5910 )
5911 {
5912 D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'"));
5913 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5914 if (_token == NULL) {
5915 D(p->level--);
5916 return NULL;
5917 }
5918 int _end_lineno = _token->end_lineno;
5919 UNUSED(_end_lineno); // Only used by EXTRA macro
5920 int _end_col_offset = _token->end_col_offset;
5921 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02005922 _res = _PyAST_Constant ( Py_True , NULL , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08005923 if (_res == NULL && PyErr_Occurred()) {
5924 p->error_indicator = 1;
5925 D(p->level--);
5926 return NULL;
5927 }
5928 goto done;
5929 }
5930 p->mark = _mark;
5931 D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5932 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'True'"));
5933 }
5934 { // 'False'
5935 if (p->error_indicator) {
5936 D(p->level--);
5937 return NULL;
5938 }
5939 D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'"));
5940 Token * _keyword;
5941 if (
5942 (_keyword = _PyPegen_expect_token(p, 525)) // token='False'
5943 )
5944 {
5945 D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'"));
5946 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5947 if (_token == NULL) {
5948 D(p->level--);
5949 return NULL;
5950 }
5951 int _end_lineno = _token->end_lineno;
5952 UNUSED(_end_lineno); // Only used by EXTRA macro
5953 int _end_col_offset = _token->end_col_offset;
5954 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02005955 _res = _PyAST_Constant ( Py_False , NULL , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08005956 if (_res == NULL && PyErr_Occurred()) {
5957 p->error_indicator = 1;
5958 D(p->level--);
5959 return NULL;
5960 }
5961 goto done;
5962 }
5963 p->mark = _mark;
5964 D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5965 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'False'"));
5966 }
5967 _res = NULL;
5968 done:
5969 D(p->level--);
5970 return _res;
5971}
5972
5973// signed_number: NUMBER | '-' NUMBER
5974static expr_ty
5975signed_number_rule(Parser *p)
5976{
5977 D(p->level++);
5978 if (p->error_indicator) {
5979 D(p->level--);
5980 return NULL;
5981 }
5982 expr_ty _res = NULL;
5983 int _mark = p->mark;
5984 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
5985 p->error_indicator = 1;
5986 D(p->level--);
5987 return NULL;
5988 }
5989 int _start_lineno = p->tokens[_mark]->lineno;
5990 UNUSED(_start_lineno); // Only used by EXTRA macro
5991 int _start_col_offset = p->tokens[_mark]->col_offset;
5992 UNUSED(_start_col_offset); // Only used by EXTRA macro
5993 { // NUMBER
5994 if (p->error_indicator) {
5995 D(p->level--);
5996 return NULL;
5997 }
5998 D(fprintf(stderr, "%*c> signed_number[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NUMBER"));
5999 expr_ty number_var;
6000 if (
6001 (number_var = _PyPegen_number_token(p)) // NUMBER
6002 )
6003 {
6004 D(fprintf(stderr, "%*c+ signed_number[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NUMBER"));
6005 _res = number_var;
6006 goto done;
6007 }
6008 p->mark = _mark;
6009 D(fprintf(stderr, "%*c%s signed_number[%d-%d]: %s failed!\n", p->level, ' ',
6010 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NUMBER"));
6011 }
6012 { // '-' NUMBER
6013 if (p->error_indicator) {
6014 D(p->level--);
6015 return NULL;
6016 }
6017 D(fprintf(stderr, "%*c> signed_number[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-' NUMBER"));
6018 Token * _literal;
6019 expr_ty number;
6020 if (
6021 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
6022 &&
6023 (number = _PyPegen_number_token(p)) // NUMBER
6024 )
6025 {
6026 D(fprintf(stderr, "%*c+ signed_number[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-' NUMBER"));
6027 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6028 if (_token == NULL) {
6029 D(p->level--);
6030 return NULL;
6031 }
6032 int _end_lineno = _token->end_lineno;
6033 UNUSED(_end_lineno); // Only used by EXTRA macro
6034 int _end_col_offset = _token->end_col_offset;
6035 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02006036 _res = _PyAST_UnaryOp ( USub , number , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08006037 if (_res == NULL && PyErr_Occurred()) {
6038 p->error_indicator = 1;
6039 D(p->level--);
6040 return NULL;
6041 }
6042 goto done;
6043 }
6044 p->mark = _mark;
6045 D(fprintf(stderr, "%*c%s signed_number[%d-%d]: %s failed!\n", p->level, ' ',
6046 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-' NUMBER"));
6047 }
6048 _res = NULL;
6049 done:
6050 D(p->level--);
6051 return _res;
6052}
6053
6054// capture_pattern: !"_" NAME !('.' | '(' | '=')
6055static expr_ty
6056capture_pattern_rule(Parser *p)
6057{
6058 D(p->level++);
6059 if (p->error_indicator) {
6060 D(p->level--);
6061 return NULL;
6062 }
6063 expr_ty _res = NULL;
6064 int _mark = p->mark;
6065 { // !"_" NAME !('.' | '(' | '=')
6066 if (p->error_indicator) {
6067 D(p->level--);
6068 return NULL;
6069 }
6070 D(fprintf(stderr, "%*c> capture_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "!\"_\" NAME !('.' | '(' | '=')"));
6071 expr_ty name;
6072 if (
6073 _PyPegen_lookahead_with_string(0, _PyPegen_expect_soft_keyword, p, "_")
6074 &&
6075 (name = _PyPegen_name_token(p)) // NAME
6076 &&
6077 _PyPegen_lookahead(0, _tmp_54_rule, p)
6078 )
6079 {
6080 D(fprintf(stderr, "%*c+ capture_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "!\"_\" NAME !('.' | '(' | '=')"));
6081 _res = _PyPegen_set_expr_context ( p , name , Store );
6082 if (_res == NULL && PyErr_Occurred()) {
6083 p->error_indicator = 1;
6084 D(p->level--);
6085 return NULL;
6086 }
6087 goto done;
6088 }
6089 p->mark = _mark;
6090 D(fprintf(stderr, "%*c%s capture_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6091 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "!\"_\" NAME !('.' | '(' | '=')"));
6092 }
6093 _res = NULL;
6094 done:
6095 D(p->level--);
6096 return _res;
6097}
6098
6099// wildcard_pattern: "_"
6100static expr_ty
6101wildcard_pattern_rule(Parser *p)
6102{
6103 D(p->level++);
6104 if (p->error_indicator) {
6105 D(p->level--);
6106 return NULL;
6107 }
6108 expr_ty _res = NULL;
6109 int _mark = p->mark;
6110 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6111 p->error_indicator = 1;
6112 D(p->level--);
6113 return NULL;
6114 }
6115 int _start_lineno = p->tokens[_mark]->lineno;
6116 UNUSED(_start_lineno); // Only used by EXTRA macro
6117 int _start_col_offset = p->tokens[_mark]->col_offset;
6118 UNUSED(_start_col_offset); // Only used by EXTRA macro
6119 { // "_"
6120 if (p->error_indicator) {
6121 D(p->level--);
6122 return NULL;
6123 }
6124 D(fprintf(stderr, "%*c> wildcard_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"_\""));
6125 expr_ty _keyword;
6126 if (
6127 (_keyword = _PyPegen_expect_soft_keyword(p, "_")) // soft_keyword='"_"'
6128 )
6129 {
6130 D(fprintf(stderr, "%*c+ wildcard_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"_\""));
6131 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6132 if (_token == NULL) {
6133 D(p->level--);
6134 return NULL;
6135 }
6136 int _end_lineno = _token->end_lineno;
6137 UNUSED(_end_lineno); // Only used by EXTRA macro
6138 int _end_col_offset = _token->end_col_offset;
6139 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02006140 _res = _PyAST_Name ( CHECK ( PyObject * , _PyPegen_new_identifier ( p , "_" ) ) , Store , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08006141 if (_res == NULL && PyErr_Occurred()) {
6142 p->error_indicator = 1;
6143 D(p->level--);
6144 return NULL;
6145 }
6146 goto done;
6147 }
6148 p->mark = _mark;
6149 D(fprintf(stderr, "%*c%s wildcard_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6150 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"_\""));
6151 }
6152 _res = NULL;
6153 done:
6154 D(p->level--);
6155 return _res;
6156}
6157
6158// value_pattern: attr !('.' | '(' | '=')
6159static expr_ty
6160value_pattern_rule(Parser *p)
6161{
6162 D(p->level++);
6163 if (p->error_indicator) {
6164 D(p->level--);
6165 return NULL;
6166 }
6167 expr_ty _res = NULL;
6168 int _mark = p->mark;
6169 { // attr !('.' | '(' | '=')
6170 if (p->error_indicator) {
6171 D(p->level--);
6172 return NULL;
6173 }
6174 D(fprintf(stderr, "%*c> value_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "attr !('.' | '(' | '=')"));
6175 expr_ty attr;
6176 if (
6177 (attr = attr_rule(p)) // attr
6178 &&
6179 _PyPegen_lookahead(0, _tmp_55_rule, p)
6180 )
6181 {
6182 D(fprintf(stderr, "%*c+ value_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "attr !('.' | '(' | '=')"));
6183 _res = attr;
6184 if (_res == NULL && PyErr_Occurred()) {
6185 p->error_indicator = 1;
6186 D(p->level--);
6187 return NULL;
6188 }
6189 goto done;
6190 }
6191 p->mark = _mark;
6192 D(fprintf(stderr, "%*c%s value_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6193 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "attr !('.' | '(' | '=')"));
6194 }
6195 _res = NULL;
6196 done:
6197 D(p->level--);
6198 return _res;
6199}
6200
6201// Left-recursive
6202// attr: name_or_attr '.' NAME
6203static expr_ty attr_raw(Parser *);
6204static expr_ty
6205attr_rule(Parser *p)
6206{
6207 D(p->level++);
6208 expr_ty _res = NULL;
6209 if (_PyPegen_is_memoized(p, attr_type, &_res)) {
6210 D(p->level--);
6211 return _res;
6212 }
6213 int _mark = p->mark;
6214 int _resmark = p->mark;
6215 while (1) {
6216 int tmpvar_1 = _PyPegen_update_memo(p, _mark, attr_type, _res);
6217 if (tmpvar_1) {
6218 D(p->level--);
6219 return _res;
6220 }
6221 p->mark = _mark;
6222 void *_raw = attr_raw(p);
6223 if (p->error_indicator)
6224 return NULL;
6225 if (_raw == NULL || p->mark <= _resmark)
6226 break;
6227 _resmark = p->mark;
6228 _res = _raw;
6229 }
6230 p->mark = _resmark;
6231 D(p->level--);
6232 return _res;
6233}
6234static expr_ty
6235attr_raw(Parser *p)
6236{
6237 D(p->level++);
6238 if (p->error_indicator) {
6239 D(p->level--);
6240 return NULL;
6241 }
6242 expr_ty _res = NULL;
6243 int _mark = p->mark;
6244 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6245 p->error_indicator = 1;
6246 D(p->level--);
6247 return NULL;
6248 }
6249 int _start_lineno = p->tokens[_mark]->lineno;
6250 UNUSED(_start_lineno); // Only used by EXTRA macro
6251 int _start_col_offset = p->tokens[_mark]->col_offset;
6252 UNUSED(_start_col_offset); // Only used by EXTRA macro
6253 { // name_or_attr '.' NAME
6254 if (p->error_indicator) {
6255 D(p->level--);
6256 return NULL;
6257 }
6258 D(fprintf(stderr, "%*c> attr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "name_or_attr '.' NAME"));
6259 Token * _literal;
6260 expr_ty attr;
6261 expr_ty value;
6262 if (
6263 (value = name_or_attr_rule(p)) // name_or_attr
6264 &&
6265 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
6266 &&
6267 (attr = _PyPegen_name_token(p)) // NAME
6268 )
6269 {
6270 D(fprintf(stderr, "%*c+ attr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "name_or_attr '.' NAME"));
6271 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6272 if (_token == NULL) {
6273 D(p->level--);
6274 return NULL;
6275 }
6276 int _end_lineno = _token->end_lineno;
6277 UNUSED(_end_lineno); // Only used by EXTRA macro
6278 int _end_col_offset = _token->end_col_offset;
6279 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02006280 _res = _PyAST_Attribute ( value , attr -> v . Name . id , Load , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08006281 if (_res == NULL && PyErr_Occurred()) {
6282 p->error_indicator = 1;
6283 D(p->level--);
6284 return NULL;
6285 }
6286 goto done;
6287 }
6288 p->mark = _mark;
6289 D(fprintf(stderr, "%*c%s attr[%d-%d]: %s failed!\n", p->level, ' ',
6290 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "name_or_attr '.' NAME"));
6291 }
6292 _res = NULL;
6293 done:
6294 D(p->level--);
6295 return _res;
6296}
6297
6298// Left-recursive
6299// name_or_attr: attr | NAME
6300static expr_ty
6301name_or_attr_rule(Parser *p)
6302{
6303 D(p->level++);
6304 if (p->error_indicator) {
6305 D(p->level--);
6306 return NULL;
6307 }
6308 expr_ty _res = NULL;
6309 int _mark = p->mark;
6310 { // attr
6311 if (p->error_indicator) {
6312 D(p->level--);
6313 return NULL;
6314 }
6315 D(fprintf(stderr, "%*c> name_or_attr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "attr"));
6316 expr_ty attr_var;
6317 if (
6318 (attr_var = attr_rule(p)) // attr
6319 )
6320 {
6321 D(fprintf(stderr, "%*c+ name_or_attr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "attr"));
6322 _res = attr_var;
6323 goto done;
6324 }
6325 p->mark = _mark;
6326 D(fprintf(stderr, "%*c%s name_or_attr[%d-%d]: %s failed!\n", p->level, ' ',
6327 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "attr"));
6328 }
6329 { // NAME
6330 if (p->error_indicator) {
6331 D(p->level--);
6332 return NULL;
6333 }
6334 D(fprintf(stderr, "%*c> name_or_attr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
6335 expr_ty name_var;
6336 if (
6337 (name_var = _PyPegen_name_token(p)) // NAME
6338 )
6339 {
6340 D(fprintf(stderr, "%*c+ name_or_attr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
6341 _res = name_var;
6342 goto done;
6343 }
6344 p->mark = _mark;
6345 D(fprintf(stderr, "%*c%s name_or_attr[%d-%d]: %s failed!\n", p->level, ' ',
6346 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
6347 }
6348 _res = NULL;
6349 done:
6350 D(p->level--);
6351 return _res;
6352}
6353
6354// group_pattern: '(' pattern ')'
6355static expr_ty
6356group_pattern_rule(Parser *p)
6357{
6358 D(p->level++);
6359 if (p->error_indicator) {
6360 D(p->level--);
6361 return NULL;
6362 }
6363 expr_ty _res = NULL;
6364 int _mark = p->mark;
6365 { // '(' pattern ')'
6366 if (p->error_indicator) {
6367 D(p->level--);
6368 return NULL;
6369 }
6370 D(fprintf(stderr, "%*c> group_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' pattern ')'"));
6371 Token * _literal;
6372 Token * _literal_1;
6373 expr_ty pattern;
6374 if (
6375 (_literal = _PyPegen_expect_token(p, 7)) // token='('
6376 &&
6377 (pattern = pattern_rule(p)) // pattern
6378 &&
6379 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
6380 )
6381 {
6382 D(fprintf(stderr, "%*c+ group_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' pattern ')'"));
6383 _res = pattern;
6384 if (_res == NULL && PyErr_Occurred()) {
6385 p->error_indicator = 1;
6386 D(p->level--);
6387 return NULL;
6388 }
6389 goto done;
6390 }
6391 p->mark = _mark;
6392 D(fprintf(stderr, "%*c%s group_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6393 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' pattern ')'"));
6394 }
6395 _res = NULL;
6396 done:
6397 D(p->level--);
6398 return _res;
6399}
6400
6401// sequence_pattern: '[' maybe_sequence_pattern? ']' | '(' open_sequence_pattern? ')'
6402static expr_ty
6403sequence_pattern_rule(Parser *p)
6404{
6405 D(p->level++);
6406 if (p->error_indicator) {
6407 D(p->level--);
6408 return NULL;
6409 }
6410 expr_ty _res = NULL;
6411 int _mark = p->mark;
6412 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6413 p->error_indicator = 1;
6414 D(p->level--);
6415 return NULL;
6416 }
6417 int _start_lineno = p->tokens[_mark]->lineno;
6418 UNUSED(_start_lineno); // Only used by EXTRA macro
6419 int _start_col_offset = p->tokens[_mark]->col_offset;
6420 UNUSED(_start_col_offset); // Only used by EXTRA macro
6421 { // '[' maybe_sequence_pattern? ']'
6422 if (p->error_indicator) {
6423 D(p->level--);
6424 return NULL;
6425 }
6426 D(fprintf(stderr, "%*c> sequence_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' maybe_sequence_pattern? ']'"));
6427 Token * _literal;
6428 Token * _literal_1;
6429 void *values;
6430 if (
6431 (_literal = _PyPegen_expect_token(p, 9)) // token='['
6432 &&
6433 (values = maybe_sequence_pattern_rule(p), 1) // maybe_sequence_pattern?
6434 &&
6435 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
6436 )
6437 {
6438 D(fprintf(stderr, "%*c+ sequence_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' maybe_sequence_pattern? ']'"));
6439 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6440 if (_token == NULL) {
6441 D(p->level--);
6442 return NULL;
6443 }
6444 int _end_lineno = _token->end_lineno;
6445 UNUSED(_end_lineno); // Only used by EXTRA macro
6446 int _end_col_offset = _token->end_col_offset;
6447 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02006448 _res = _PyAST_List ( values , Load , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08006449 if (_res == NULL && PyErr_Occurred()) {
6450 p->error_indicator = 1;
6451 D(p->level--);
6452 return NULL;
6453 }
6454 goto done;
6455 }
6456 p->mark = _mark;
6457 D(fprintf(stderr, "%*c%s sequence_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6458 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' maybe_sequence_pattern? ']'"));
6459 }
6460 { // '(' open_sequence_pattern? ')'
6461 if (p->error_indicator) {
6462 D(p->level--);
6463 return NULL;
6464 }
6465 D(fprintf(stderr, "%*c> sequence_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' open_sequence_pattern? ')'"));
6466 Token * _literal;
6467 Token * _literal_1;
6468 void *values;
6469 if (
6470 (_literal = _PyPegen_expect_token(p, 7)) // token='('
6471 &&
6472 (values = open_sequence_pattern_rule(p), 1) // open_sequence_pattern?
6473 &&
6474 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
6475 )
6476 {
6477 D(fprintf(stderr, "%*c+ sequence_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' open_sequence_pattern? ')'"));
6478 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6479 if (_token == NULL) {
6480 D(p->level--);
6481 return NULL;
6482 }
6483 int _end_lineno = _token->end_lineno;
6484 UNUSED(_end_lineno); // Only used by EXTRA macro
6485 int _end_col_offset = _token->end_col_offset;
6486 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02006487 _res = _PyAST_Tuple ( values , Load , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08006488 if (_res == NULL && PyErr_Occurred()) {
6489 p->error_indicator = 1;
6490 D(p->level--);
6491 return NULL;
6492 }
6493 goto done;
6494 }
6495 p->mark = _mark;
6496 D(fprintf(stderr, "%*c%s sequence_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6497 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' open_sequence_pattern? ')'"));
6498 }
6499 _res = NULL;
6500 done:
6501 D(p->level--);
6502 return _res;
6503}
6504
6505// open_sequence_pattern: maybe_star_pattern ',' maybe_sequence_pattern?
6506static asdl_seq*
6507open_sequence_pattern_rule(Parser *p)
6508{
6509 D(p->level++);
6510 if (p->error_indicator) {
6511 D(p->level--);
6512 return NULL;
6513 }
6514 asdl_seq* _res = NULL;
6515 int _mark = p->mark;
6516 { // maybe_star_pattern ',' maybe_sequence_pattern?
6517 if (p->error_indicator) {
6518 D(p->level--);
6519 return NULL;
6520 }
6521 D(fprintf(stderr, "%*c> open_sequence_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "maybe_star_pattern ',' maybe_sequence_pattern?"));
6522 Token * _literal;
6523 expr_ty value;
6524 void *values;
6525 if (
6526 (value = maybe_star_pattern_rule(p)) // maybe_star_pattern
6527 &&
6528 (_literal = _PyPegen_expect_token(p, 12)) // token=','
6529 &&
6530 (values = maybe_sequence_pattern_rule(p), 1) // maybe_sequence_pattern?
6531 )
6532 {
6533 D(fprintf(stderr, "%*c+ open_sequence_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "maybe_star_pattern ',' maybe_sequence_pattern?"));
6534 _res = _PyPegen_seq_insert_in_front ( p , value , values );
6535 if (_res == NULL && PyErr_Occurred()) {
6536 p->error_indicator = 1;
6537 D(p->level--);
6538 return NULL;
6539 }
6540 goto done;
6541 }
6542 p->mark = _mark;
6543 D(fprintf(stderr, "%*c%s open_sequence_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6544 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "maybe_star_pattern ',' maybe_sequence_pattern?"));
6545 }
6546 _res = NULL;
6547 done:
6548 D(p->level--);
6549 return _res;
6550}
6551
6552// maybe_sequence_pattern: ','.maybe_star_pattern+ ','?
6553static asdl_seq*
6554maybe_sequence_pattern_rule(Parser *p)
6555{
6556 D(p->level++);
6557 if (p->error_indicator) {
6558 D(p->level--);
6559 return NULL;
6560 }
6561 asdl_seq* _res = NULL;
6562 int _mark = p->mark;
6563 { // ','.maybe_star_pattern+ ','?
6564 if (p->error_indicator) {
6565 D(p->level--);
6566 return NULL;
6567 }
6568 D(fprintf(stderr, "%*c> maybe_sequence_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.maybe_star_pattern+ ','?"));
6569 void *_opt_var;
6570 UNUSED(_opt_var); // Silence compiler warnings
6571 asdl_seq * values;
6572 if (
6573 (values = _gather_56_rule(p)) // ','.maybe_star_pattern+
6574 &&
6575 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
6576 )
6577 {
6578 D(fprintf(stderr, "%*c+ maybe_sequence_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.maybe_star_pattern+ ','?"));
6579 _res = values;
6580 if (_res == NULL && PyErr_Occurred()) {
6581 p->error_indicator = 1;
6582 D(p->level--);
6583 return NULL;
6584 }
6585 goto done;
6586 }
6587 p->mark = _mark;
6588 D(fprintf(stderr, "%*c%s maybe_sequence_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6589 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.maybe_star_pattern+ ','?"));
6590 }
6591 _res = NULL;
6592 done:
6593 D(p->level--);
6594 return _res;
6595}
6596
6597// maybe_star_pattern: star_pattern | pattern
6598static expr_ty
6599maybe_star_pattern_rule(Parser *p)
6600{
6601 D(p->level++);
6602 if (p->error_indicator) {
6603 D(p->level--);
6604 return NULL;
6605 }
6606 expr_ty _res = NULL;
6607 int _mark = p->mark;
6608 { // star_pattern
6609 if (p->error_indicator) {
6610 D(p->level--);
6611 return NULL;
6612 }
6613 D(fprintf(stderr, "%*c> maybe_star_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_pattern"));
6614 expr_ty star_pattern_var;
6615 if (
6616 (star_pattern_var = star_pattern_rule(p)) // star_pattern
6617 )
6618 {
6619 D(fprintf(stderr, "%*c+ maybe_star_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_pattern"));
6620 _res = star_pattern_var;
6621 goto done;
6622 }
6623 p->mark = _mark;
6624 D(fprintf(stderr, "%*c%s maybe_star_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6625 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_pattern"));
6626 }
6627 { // pattern
6628 if (p->error_indicator) {
6629 D(p->level--);
6630 return NULL;
6631 }
6632 D(fprintf(stderr, "%*c> maybe_star_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "pattern"));
6633 expr_ty pattern_var;
6634 if (
6635 (pattern_var = pattern_rule(p)) // pattern
6636 )
6637 {
6638 D(fprintf(stderr, "%*c+ maybe_star_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "pattern"));
6639 _res = pattern_var;
6640 goto done;
6641 }
6642 p->mark = _mark;
6643 D(fprintf(stderr, "%*c%s maybe_star_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6644 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "pattern"));
6645 }
6646 _res = NULL;
6647 done:
6648 D(p->level--);
6649 return _res;
6650}
6651
6652// star_pattern: '*' (capture_pattern | wildcard_pattern)
6653static expr_ty
6654star_pattern_rule(Parser *p)
6655{
6656 D(p->level++);
6657 if (p->error_indicator) {
6658 D(p->level--);
6659 return NULL;
6660 }
6661 expr_ty _res = NULL;
6662 int _mark = p->mark;
6663 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6664 p->error_indicator = 1;
6665 D(p->level--);
6666 return NULL;
6667 }
6668 int _start_lineno = p->tokens[_mark]->lineno;
6669 UNUSED(_start_lineno); // Only used by EXTRA macro
6670 int _start_col_offset = p->tokens[_mark]->col_offset;
6671 UNUSED(_start_col_offset); // Only used by EXTRA macro
6672 { // '*' (capture_pattern | wildcard_pattern)
6673 if (p->error_indicator) {
6674 D(p->level--);
6675 return NULL;
6676 }
6677 D(fprintf(stderr, "%*c> star_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (capture_pattern | wildcard_pattern)"));
6678 Token * _literal;
6679 void *value;
6680 if (
6681 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
6682 &&
6683 (value = _tmp_58_rule(p)) // capture_pattern | wildcard_pattern
6684 )
6685 {
6686 D(fprintf(stderr, "%*c+ star_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (capture_pattern | wildcard_pattern)"));
6687 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6688 if (_token == NULL) {
6689 D(p->level--);
6690 return NULL;
6691 }
6692 int _end_lineno = _token->end_lineno;
6693 UNUSED(_end_lineno); // Only used by EXTRA macro
6694 int _end_col_offset = _token->end_col_offset;
6695 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02006696 _res = _PyAST_Starred ( value , Store , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08006697 if (_res == NULL && PyErr_Occurred()) {
6698 p->error_indicator = 1;
6699 D(p->level--);
6700 return NULL;
6701 }
6702 goto done;
6703 }
6704 p->mark = _mark;
6705 D(fprintf(stderr, "%*c%s star_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6706 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' (capture_pattern | wildcard_pattern)"));
6707 }
6708 _res = NULL;
6709 done:
6710 D(p->level--);
6711 return _res;
6712}
6713
6714// mapping_pattern: '{' items_pattern? '}'
6715static expr_ty
6716mapping_pattern_rule(Parser *p)
6717{
6718 D(p->level++);
6719 if (p->error_indicator) {
6720 D(p->level--);
6721 return NULL;
6722 }
6723 expr_ty _res = NULL;
6724 int _mark = p->mark;
6725 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6726 p->error_indicator = 1;
6727 D(p->level--);
6728 return NULL;
6729 }
6730 int _start_lineno = p->tokens[_mark]->lineno;
6731 UNUSED(_start_lineno); // Only used by EXTRA macro
6732 int _start_col_offset = p->tokens[_mark]->col_offset;
6733 UNUSED(_start_col_offset); // Only used by EXTRA macro
6734 { // '{' items_pattern? '}'
6735 if (p->error_indicator) {
6736 D(p->level--);
6737 return NULL;
6738 }
6739 D(fprintf(stderr, "%*c> mapping_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' items_pattern? '}'"));
6740 Token * _literal;
6741 Token * _literal_1;
6742 void *items;
6743 if (
6744 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
6745 &&
6746 (items = items_pattern_rule(p), 1) // items_pattern?
6747 &&
6748 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
6749 )
6750 {
6751 D(fprintf(stderr, "%*c+ mapping_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' items_pattern? '}'"));
6752 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6753 if (_token == NULL) {
6754 D(p->level--);
6755 return NULL;
6756 }
6757 int _end_lineno = _token->end_lineno;
6758 UNUSED(_end_lineno); // Only used by EXTRA macro
6759 int _end_col_offset = _token->end_col_offset;
6760 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02006761 _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 -08006762 if (_res == NULL && PyErr_Occurred()) {
6763 p->error_indicator = 1;
6764 D(p->level--);
6765 return NULL;
6766 }
6767 goto done;
6768 }
6769 p->mark = _mark;
6770 D(fprintf(stderr, "%*c%s mapping_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6771 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' items_pattern? '}'"));
6772 }
6773 _res = NULL;
6774 done:
6775 D(p->level--);
6776 return _res;
6777}
6778
6779// items_pattern: ','.key_value_pattern+ ','?
6780static asdl_seq*
6781items_pattern_rule(Parser *p)
6782{
6783 D(p->level++);
6784 if (p->error_indicator) {
6785 D(p->level--);
6786 return NULL;
6787 }
6788 asdl_seq* _res = NULL;
6789 int _mark = p->mark;
6790 { // ','.key_value_pattern+ ','?
6791 if (p->error_indicator) {
6792 D(p->level--);
6793 return NULL;
6794 }
6795 D(fprintf(stderr, "%*c> items_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.key_value_pattern+ ','?"));
6796 void *_opt_var;
6797 UNUSED(_opt_var); // Silence compiler warnings
6798 asdl_seq * items;
6799 if (
6800 (items = _gather_59_rule(p)) // ','.key_value_pattern+
6801 &&
6802 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
6803 )
6804 {
6805 D(fprintf(stderr, "%*c+ items_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.key_value_pattern+ ','?"));
6806 _res = items;
6807 if (_res == NULL && PyErr_Occurred()) {
6808 p->error_indicator = 1;
6809 D(p->level--);
6810 return NULL;
6811 }
6812 goto done;
6813 }
6814 p->mark = _mark;
6815 D(fprintf(stderr, "%*c%s items_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6816 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.key_value_pattern+ ','?"));
6817 }
6818 _res = NULL;
6819 done:
6820 D(p->level--);
6821 return _res;
6822}
6823
6824// key_value_pattern: (literal_pattern | value_pattern) ':' pattern | double_star_pattern
6825static KeyValuePair*
6826key_value_pattern_rule(Parser *p)
6827{
6828 D(p->level++);
6829 if (p->error_indicator) {
6830 D(p->level--);
6831 return NULL;
6832 }
6833 KeyValuePair* _res = NULL;
6834 int _mark = p->mark;
6835 { // (literal_pattern | value_pattern) ':' pattern
6836 if (p->error_indicator) {
6837 D(p->level--);
6838 return NULL;
6839 }
6840 D(fprintf(stderr, "%*c> key_value_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(literal_pattern | value_pattern) ':' pattern"));
6841 Token * _literal;
6842 void *key;
6843 expr_ty value;
6844 if (
6845 (key = _tmp_61_rule(p)) // literal_pattern | value_pattern
6846 &&
6847 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
6848 &&
6849 (value = pattern_rule(p)) // pattern
6850 )
6851 {
6852 D(fprintf(stderr, "%*c+ key_value_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(literal_pattern | value_pattern) ':' pattern"));
6853 _res = _PyPegen_key_value_pair ( p , key , value );
6854 if (_res == NULL && PyErr_Occurred()) {
6855 p->error_indicator = 1;
6856 D(p->level--);
6857 return NULL;
6858 }
6859 goto done;
6860 }
6861 p->mark = _mark;
6862 D(fprintf(stderr, "%*c%s key_value_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6863 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(literal_pattern | value_pattern) ':' pattern"));
6864 }
6865 { // double_star_pattern
6866 if (p->error_indicator) {
6867 D(p->level--);
6868 return NULL;
6869 }
6870 D(fprintf(stderr, "%*c> key_value_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "double_star_pattern"));
6871 KeyValuePair* double_star_pattern_var;
6872 if (
6873 (double_star_pattern_var = double_star_pattern_rule(p)) // double_star_pattern
6874 )
6875 {
6876 D(fprintf(stderr, "%*c+ key_value_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "double_star_pattern"));
6877 _res = double_star_pattern_var;
6878 goto done;
6879 }
6880 p->mark = _mark;
6881 D(fprintf(stderr, "%*c%s key_value_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6882 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "double_star_pattern"));
6883 }
6884 _res = NULL;
6885 done:
6886 D(p->level--);
6887 return _res;
6888}
6889
6890// double_star_pattern: '**' capture_pattern
6891static KeyValuePair*
6892double_star_pattern_rule(Parser *p)
6893{
6894 D(p->level++);
6895 if (p->error_indicator) {
6896 D(p->level--);
6897 return NULL;
6898 }
6899 KeyValuePair* _res = NULL;
6900 int _mark = p->mark;
6901 { // '**' capture_pattern
6902 if (p->error_indicator) {
6903 D(p->level--);
6904 return NULL;
6905 }
6906 D(fprintf(stderr, "%*c> double_star_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' capture_pattern"));
6907 Token * _literal;
6908 expr_ty value;
6909 if (
6910 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
6911 &&
6912 (value = capture_pattern_rule(p)) // capture_pattern
6913 )
6914 {
6915 D(fprintf(stderr, "%*c+ double_star_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' capture_pattern"));
6916 _res = _PyPegen_key_value_pair ( p , NULL , value );
6917 if (_res == NULL && PyErr_Occurred()) {
6918 p->error_indicator = 1;
6919 D(p->level--);
6920 return NULL;
6921 }
6922 goto done;
6923 }
6924 p->mark = _mark;
6925 D(fprintf(stderr, "%*c%s double_star_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6926 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' capture_pattern"));
6927 }
6928 _res = NULL;
6929 done:
6930 D(p->level--);
6931 return _res;
6932}
6933
6934// class_pattern:
6935// | name_or_attr '(' ')'
6936// | name_or_attr '(' positional_patterns ','? ')'
6937// | name_or_attr '(' keyword_patterns ','? ')'
6938// | name_or_attr '(' positional_patterns ',' keyword_patterns ','? ')'
6939static expr_ty
6940class_pattern_rule(Parser *p)
6941{
6942 D(p->level++);
6943 if (p->error_indicator) {
6944 D(p->level--);
6945 return NULL;
6946 }
6947 expr_ty _res = NULL;
6948 int _mark = p->mark;
6949 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6950 p->error_indicator = 1;
6951 D(p->level--);
6952 return NULL;
6953 }
6954 int _start_lineno = p->tokens[_mark]->lineno;
6955 UNUSED(_start_lineno); // Only used by EXTRA macro
6956 int _start_col_offset = p->tokens[_mark]->col_offset;
6957 UNUSED(_start_col_offset); // Only used by EXTRA macro
6958 { // name_or_attr '(' ')'
6959 if (p->error_indicator) {
6960 D(p->level--);
6961 return NULL;
6962 }
6963 D(fprintf(stderr, "%*c> class_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' ')'"));
6964 Token * _literal;
6965 Token * _literal_1;
6966 expr_ty func;
6967 if (
6968 (func = name_or_attr_rule(p)) // name_or_attr
6969 &&
6970 (_literal = _PyPegen_expect_token(p, 7)) // token='('
6971 &&
6972 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
6973 )
6974 {
6975 D(fprintf(stderr, "%*c+ class_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' ')'"));
6976 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6977 if (_token == NULL) {
6978 D(p->level--);
6979 return NULL;
6980 }
6981 int _end_lineno = _token->end_lineno;
6982 UNUSED(_end_lineno); // Only used by EXTRA macro
6983 int _end_col_offset = _token->end_col_offset;
6984 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02006985 _res = _PyAST_Call ( func , NULL , NULL , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08006986 if (_res == NULL && PyErr_Occurred()) {
6987 p->error_indicator = 1;
6988 D(p->level--);
6989 return NULL;
6990 }
6991 goto done;
6992 }
6993 p->mark = _mark;
6994 D(fprintf(stderr, "%*c%s class_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6995 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "name_or_attr '(' ')'"));
6996 }
6997 { // name_or_attr '(' positional_patterns ','? ')'
6998 if (p->error_indicator) {
6999 D(p->level--);
7000 return NULL;
7001 }
7002 D(fprintf(stderr, "%*c> class_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' positional_patterns ','? ')'"));
7003 Token * _literal;
7004 Token * _literal_1;
7005 void *_opt_var;
7006 UNUSED(_opt_var); // Silence compiler warnings
7007 asdl_expr_seq* args;
7008 expr_ty func;
7009 if (
7010 (func = name_or_attr_rule(p)) // name_or_attr
7011 &&
7012 (_literal = _PyPegen_expect_token(p, 7)) // token='('
7013 &&
7014 (args = positional_patterns_rule(p)) // positional_patterns
7015 &&
7016 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
7017 &&
7018 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
7019 )
7020 {
7021 D(fprintf(stderr, "%*c+ class_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' positional_patterns ','? ')'"));
7022 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7023 if (_token == NULL) {
7024 D(p->level--);
7025 return NULL;
7026 }
7027 int _end_lineno = _token->end_lineno;
7028 UNUSED(_end_lineno); // Only used by EXTRA macro
7029 int _end_col_offset = _token->end_col_offset;
7030 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02007031 _res = _PyAST_Call ( func , args , NULL , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08007032 if (_res == NULL && PyErr_Occurred()) {
7033 p->error_indicator = 1;
7034 D(p->level--);
7035 return NULL;
7036 }
7037 goto done;
7038 }
7039 p->mark = _mark;
7040 D(fprintf(stderr, "%*c%s class_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7041 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "name_or_attr '(' positional_patterns ','? ')'"));
7042 }
7043 { // name_or_attr '(' keyword_patterns ','? ')'
7044 if (p->error_indicator) {
7045 D(p->level--);
7046 return NULL;
7047 }
7048 D(fprintf(stderr, "%*c> class_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' keyword_patterns ','? ')'"));
7049 Token * _literal;
7050 Token * _literal_1;
7051 void *_opt_var;
7052 UNUSED(_opt_var); // Silence compiler warnings
7053 expr_ty func;
7054 asdl_keyword_seq* keywords;
7055 if (
7056 (func = name_or_attr_rule(p)) // name_or_attr
7057 &&
7058 (_literal = _PyPegen_expect_token(p, 7)) // token='('
7059 &&
7060 (keywords = keyword_patterns_rule(p)) // keyword_patterns
7061 &&
7062 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
7063 &&
7064 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
7065 )
7066 {
7067 D(fprintf(stderr, "%*c+ class_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' keyword_patterns ','? ')'"));
7068 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7069 if (_token == NULL) {
7070 D(p->level--);
7071 return NULL;
7072 }
7073 int _end_lineno = _token->end_lineno;
7074 UNUSED(_end_lineno); // Only used by EXTRA macro
7075 int _end_col_offset = _token->end_col_offset;
7076 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02007077 _res = _PyAST_Call ( func , NULL , keywords , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08007078 if (_res == NULL && PyErr_Occurred()) {
7079 p->error_indicator = 1;
7080 D(p->level--);
7081 return NULL;
7082 }
7083 goto done;
7084 }
7085 p->mark = _mark;
7086 D(fprintf(stderr, "%*c%s class_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7087 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "name_or_attr '(' keyword_patterns ','? ')'"));
7088 }
7089 { // name_or_attr '(' positional_patterns ',' keyword_patterns ','? ')'
7090 if (p->error_indicator) {
7091 D(p->level--);
7092 return NULL;
7093 }
7094 D(fprintf(stderr, "%*c> class_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' positional_patterns ',' keyword_patterns ','? ')'"));
7095 Token * _literal;
7096 Token * _literal_1;
7097 Token * _literal_2;
7098 void *_opt_var;
7099 UNUSED(_opt_var); // Silence compiler warnings
7100 asdl_expr_seq* args;
7101 expr_ty func;
7102 asdl_keyword_seq* keywords;
7103 if (
7104 (func = name_or_attr_rule(p)) // name_or_attr
7105 &&
7106 (_literal = _PyPegen_expect_token(p, 7)) // token='('
7107 &&
7108 (args = positional_patterns_rule(p)) // positional_patterns
7109 &&
7110 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
7111 &&
7112 (keywords = keyword_patterns_rule(p)) // keyword_patterns
7113 &&
7114 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
7115 &&
7116 (_literal_2 = _PyPegen_expect_token(p, 8)) // token=')'
7117 )
7118 {
7119 D(fprintf(stderr, "%*c+ class_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' positional_patterns ',' keyword_patterns ','? ')'"));
7120 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7121 if (_token == NULL) {
7122 D(p->level--);
7123 return NULL;
7124 }
7125 int _end_lineno = _token->end_lineno;
7126 UNUSED(_end_lineno); // Only used by EXTRA macro
7127 int _end_col_offset = _token->end_col_offset;
7128 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02007129 _res = _PyAST_Call ( func , args , keywords , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08007130 if (_res == NULL && PyErr_Occurred()) {
7131 p->error_indicator = 1;
7132 D(p->level--);
7133 return NULL;
7134 }
7135 goto done;
7136 }
7137 p->mark = _mark;
7138 D(fprintf(stderr, "%*c%s class_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7139 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "name_or_attr '(' positional_patterns ',' keyword_patterns ','? ')'"));
7140 }
7141 _res = NULL;
7142 done:
7143 D(p->level--);
7144 return _res;
7145}
7146
7147// positional_patterns: ','.pattern+
7148static asdl_expr_seq*
7149positional_patterns_rule(Parser *p)
7150{
7151 D(p->level++);
7152 if (p->error_indicator) {
7153 D(p->level--);
7154 return NULL;
7155 }
7156 asdl_expr_seq* _res = NULL;
7157 int _mark = p->mark;
7158 { // ','.pattern+
7159 if (p->error_indicator) {
7160 D(p->level--);
7161 return NULL;
7162 }
7163 D(fprintf(stderr, "%*c> positional_patterns[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.pattern+"));
7164 asdl_expr_seq* args;
7165 if (
7166 (args = (asdl_expr_seq*)_gather_62_rule(p)) // ','.pattern+
7167 )
7168 {
7169 D(fprintf(stderr, "%*c+ positional_patterns[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.pattern+"));
7170 _res = args;
7171 if (_res == NULL && PyErr_Occurred()) {
7172 p->error_indicator = 1;
7173 D(p->level--);
7174 return NULL;
7175 }
7176 goto done;
7177 }
7178 p->mark = _mark;
7179 D(fprintf(stderr, "%*c%s positional_patterns[%d-%d]: %s failed!\n", p->level, ' ',
7180 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.pattern+"));
7181 }
7182 _res = NULL;
7183 done:
7184 D(p->level--);
7185 return _res;
7186}
7187
7188// keyword_patterns: ','.keyword_pattern+
7189static asdl_keyword_seq*
7190keyword_patterns_rule(Parser *p)
7191{
7192 D(p->level++);
7193 if (p->error_indicator) {
7194 D(p->level--);
7195 return NULL;
7196 }
7197 asdl_keyword_seq* _res = NULL;
7198 int _mark = p->mark;
7199 { // ','.keyword_pattern+
7200 if (p->error_indicator) {
7201 D(p->level--);
7202 return NULL;
7203 }
7204 D(fprintf(stderr, "%*c> keyword_patterns[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.keyword_pattern+"));
7205 asdl_keyword_seq* keywords;
7206 if (
7207 (keywords = (asdl_keyword_seq*)_gather_64_rule(p)) // ','.keyword_pattern+
7208 )
7209 {
7210 D(fprintf(stderr, "%*c+ keyword_patterns[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.keyword_pattern+"));
7211 _res = keywords;
7212 if (_res == NULL && PyErr_Occurred()) {
7213 p->error_indicator = 1;
7214 D(p->level--);
7215 return NULL;
7216 }
7217 goto done;
7218 }
7219 p->mark = _mark;
7220 D(fprintf(stderr, "%*c%s keyword_patterns[%d-%d]: %s failed!\n", p->level, ' ',
7221 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.keyword_pattern+"));
7222 }
7223 _res = NULL;
7224 done:
7225 D(p->level--);
7226 return _res;
7227}
7228
7229// keyword_pattern: NAME '=' pattern
7230static keyword_ty
7231keyword_pattern_rule(Parser *p)
7232{
7233 D(p->level++);
7234 if (p->error_indicator) {
7235 D(p->level--);
7236 return NULL;
7237 }
7238 keyword_ty _res = NULL;
7239 int _mark = p->mark;
7240 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
7241 p->error_indicator = 1;
7242 D(p->level--);
7243 return NULL;
7244 }
7245 int _start_lineno = p->tokens[_mark]->lineno;
7246 UNUSED(_start_lineno); // Only used by EXTRA macro
7247 int _start_col_offset = p->tokens[_mark]->col_offset;
7248 UNUSED(_start_col_offset); // Only used by EXTRA macro
7249 { // NAME '=' pattern
7250 if (p->error_indicator) {
7251 D(p->level--);
7252 return NULL;
7253 }
7254 D(fprintf(stderr, "%*c> keyword_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '=' pattern"));
7255 Token * _literal;
7256 expr_ty arg;
7257 expr_ty value;
7258 if (
7259 (arg = _PyPegen_name_token(p)) // NAME
7260 &&
7261 (_literal = _PyPegen_expect_token(p, 22)) // token='='
7262 &&
7263 (value = pattern_rule(p)) // pattern
7264 )
7265 {
7266 D(fprintf(stderr, "%*c+ keyword_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '=' pattern"));
7267 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7268 if (_token == NULL) {
7269 D(p->level--);
7270 return NULL;
7271 }
7272 int _end_lineno = _token->end_lineno;
7273 UNUSED(_end_lineno); // Only used by EXTRA macro
7274 int _end_col_offset = _token->end_col_offset;
7275 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02007276 _res = _PyAST_keyword ( arg -> v . Name . id , value , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08007277 if (_res == NULL && PyErr_Occurred()) {
7278 p->error_indicator = 1;
7279 D(p->level--);
7280 return NULL;
7281 }
7282 goto done;
7283 }
7284 p->mark = _mark;
7285 D(fprintf(stderr, "%*c%s keyword_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7286 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' pattern"));
7287 }
7288 _res = NULL;
7289 done:
7290 D(p->level--);
7291 return _res;
7292}
7293
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007294// return_stmt: 'return' star_expressions?
7295static stmt_ty
7296return_stmt_rule(Parser *p)
7297{
7298 D(p->level++);
7299 if (p->error_indicator) {
7300 D(p->level--);
7301 return NULL;
7302 }
7303 stmt_ty _res = NULL;
7304 int _mark = p->mark;
7305 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
7306 p->error_indicator = 1;
7307 D(p->level--);
7308 return NULL;
7309 }
7310 int _start_lineno = p->tokens[_mark]->lineno;
7311 UNUSED(_start_lineno); // Only used by EXTRA macro
7312 int _start_col_offset = p->tokens[_mark]->col_offset;
7313 UNUSED(_start_col_offset); // Only used by EXTRA macro
7314 { // 'return' star_expressions?
7315 if (p->error_indicator) {
7316 D(p->level--);
7317 return NULL;
7318 }
7319 D(fprintf(stderr, "%*c> return_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'return' star_expressions?"));
7320 Token * _keyword;
7321 void *a;
7322 if (
7323 (_keyword = _PyPegen_expect_token(p, 500)) // token='return'
7324 &&
7325 (a = star_expressions_rule(p), 1) // star_expressions?
7326 )
7327 {
7328 D(fprintf(stderr, "%*c+ return_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'return' star_expressions?"));
7329 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7330 if (_token == NULL) {
7331 D(p->level--);
7332 return NULL;
7333 }
7334 int _end_lineno = _token->end_lineno;
7335 UNUSED(_end_lineno); // Only used by EXTRA macro
7336 int _end_col_offset = _token->end_col_offset;
7337 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02007338 _res = _PyAST_Return ( a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007339 if (_res == NULL && PyErr_Occurred()) {
7340 p->error_indicator = 1;
7341 D(p->level--);
7342 return NULL;
7343 }
7344 goto done;
7345 }
7346 p->mark = _mark;
7347 D(fprintf(stderr, "%*c%s return_stmt[%d-%d]: %s failed!\n", p->level, ' ',
7348 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'return' star_expressions?"));
7349 }
7350 _res = NULL;
7351 done:
7352 D(p->level--);
7353 return _res;
7354}
7355
7356// raise_stmt: 'raise' expression ['from' expression] | 'raise'
7357static stmt_ty
7358raise_stmt_rule(Parser *p)
7359{
7360 D(p->level++);
7361 if (p->error_indicator) {
7362 D(p->level--);
7363 return NULL;
7364 }
7365 stmt_ty _res = NULL;
7366 int _mark = p->mark;
7367 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
7368 p->error_indicator = 1;
7369 D(p->level--);
7370 return NULL;
7371 }
7372 int _start_lineno = p->tokens[_mark]->lineno;
7373 UNUSED(_start_lineno); // Only used by EXTRA macro
7374 int _start_col_offset = p->tokens[_mark]->col_offset;
7375 UNUSED(_start_col_offset); // Only used by EXTRA macro
7376 { // 'raise' expression ['from' expression]
7377 if (p->error_indicator) {
7378 D(p->level--);
7379 return NULL;
7380 }
7381 D(fprintf(stderr, "%*c> raise_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'raise' expression ['from' expression]"));
7382 Token * _keyword;
7383 expr_ty a;
7384 void *b;
7385 if (
7386 (_keyword = _PyPegen_expect_token(p, 501)) // token='raise'
7387 &&
7388 (a = expression_rule(p)) // expression
7389 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08007390 (b = _tmp_66_rule(p), 1) // ['from' expression]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007391 )
7392 {
7393 D(fprintf(stderr, "%*c+ raise_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'raise' expression ['from' expression]"));
7394 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7395 if (_token == NULL) {
7396 D(p->level--);
7397 return NULL;
7398 }
7399 int _end_lineno = _token->end_lineno;
7400 UNUSED(_end_lineno); // Only used by EXTRA macro
7401 int _end_col_offset = _token->end_col_offset;
7402 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02007403 _res = _PyAST_Raise ( a , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007404 if (_res == NULL && PyErr_Occurred()) {
7405 p->error_indicator = 1;
7406 D(p->level--);
7407 return NULL;
7408 }
7409 goto done;
7410 }
7411 p->mark = _mark;
7412 D(fprintf(stderr, "%*c%s raise_stmt[%d-%d]: %s failed!\n", p->level, ' ',
7413 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'raise' expression ['from' expression]"));
7414 }
7415 { // 'raise'
7416 if (p->error_indicator) {
7417 D(p->level--);
7418 return NULL;
7419 }
7420 D(fprintf(stderr, "%*c> raise_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'raise'"));
7421 Token * _keyword;
7422 if (
7423 (_keyword = _PyPegen_expect_token(p, 501)) // token='raise'
7424 )
7425 {
7426 D(fprintf(stderr, "%*c+ raise_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'raise'"));
7427 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7428 if (_token == NULL) {
7429 D(p->level--);
7430 return NULL;
7431 }
7432 int _end_lineno = _token->end_lineno;
7433 UNUSED(_end_lineno); // Only used by EXTRA macro
7434 int _end_col_offset = _token->end_col_offset;
7435 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02007436 _res = _PyAST_Raise ( NULL , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007437 if (_res == NULL && PyErr_Occurred()) {
7438 p->error_indicator = 1;
7439 D(p->level--);
7440 return NULL;
7441 }
7442 goto done;
7443 }
7444 p->mark = _mark;
7445 D(fprintf(stderr, "%*c%s raise_stmt[%d-%d]: %s failed!\n", p->level, ' ',
7446 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'raise'"));
7447 }
7448 _res = NULL;
7449 done:
7450 D(p->level--);
7451 return _res;
7452}
7453
7454// function_def: decorators function_def_raw | function_def_raw
7455static stmt_ty
7456function_def_rule(Parser *p)
7457{
7458 D(p->level++);
7459 if (p->error_indicator) {
7460 D(p->level--);
7461 return NULL;
7462 }
7463 stmt_ty _res = NULL;
7464 int _mark = p->mark;
7465 { // decorators function_def_raw
7466 if (p->error_indicator) {
7467 D(p->level--);
7468 return NULL;
7469 }
7470 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 +01007471 asdl_expr_seq* d;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007472 stmt_ty f;
7473 if (
7474 (d = decorators_rule(p)) // decorators
7475 &&
7476 (f = function_def_raw_rule(p)) // function_def_raw
7477 )
7478 {
7479 D(fprintf(stderr, "%*c+ function_def[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "decorators function_def_raw"));
7480 _res = _PyPegen_function_def_decorators ( p , d , f );
7481 if (_res == NULL && PyErr_Occurred()) {
7482 p->error_indicator = 1;
7483 D(p->level--);
7484 return NULL;
7485 }
7486 goto done;
7487 }
7488 p->mark = _mark;
7489 D(fprintf(stderr, "%*c%s function_def[%d-%d]: %s failed!\n", p->level, ' ',
7490 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "decorators function_def_raw"));
7491 }
7492 { // function_def_raw
7493 if (p->error_indicator) {
7494 D(p->level--);
7495 return NULL;
7496 }
7497 D(fprintf(stderr, "%*c> function_def[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "function_def_raw"));
7498 stmt_ty function_def_raw_var;
7499 if (
7500 (function_def_raw_var = function_def_raw_rule(p)) // function_def_raw
7501 )
7502 {
7503 D(fprintf(stderr, "%*c+ function_def[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "function_def_raw"));
7504 _res = function_def_raw_var;
7505 goto done;
7506 }
7507 p->mark = _mark;
7508 D(fprintf(stderr, "%*c%s function_def[%d-%d]: %s failed!\n", p->level, ' ',
7509 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "function_def_raw"));
7510 }
7511 _res = NULL;
7512 done:
7513 D(p->level--);
7514 return _res;
7515}
7516
7517// function_def_raw:
Pablo Galindo58fb1562021-02-02 19:54:22 +00007518// | 'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block
7519// | ASYNC 'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007520static stmt_ty
7521function_def_raw_rule(Parser *p)
7522{
7523 D(p->level++);
7524 if (p->error_indicator) {
7525 D(p->level--);
7526 return NULL;
7527 }
7528 stmt_ty _res = NULL;
7529 int _mark = p->mark;
7530 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
7531 p->error_indicator = 1;
7532 D(p->level--);
7533 return NULL;
7534 }
7535 int _start_lineno = p->tokens[_mark]->lineno;
7536 UNUSED(_start_lineno); // Only used by EXTRA macro
7537 int _start_col_offset = p->tokens[_mark]->col_offset;
7538 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo58fb1562021-02-02 19:54:22 +00007539 { // 'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007540 if (p->error_indicator) {
7541 D(p->level--);
7542 return NULL;
7543 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00007544 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 +01007545 Token * _keyword;
7546 Token * _literal;
7547 Token * _literal_1;
7548 Token * _literal_2;
7549 void *a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01007550 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007551 expr_ty n;
7552 void *params;
7553 void *tc;
7554 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08007555 (_keyword = _PyPegen_expect_token(p, 526)) // token='def'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007556 &&
7557 (n = _PyPegen_name_token(p)) // NAME
7558 &&
7559 (_literal = _PyPegen_expect_token(p, 7)) // token='('
7560 &&
7561 (params = params_rule(p), 1) // params?
7562 &&
7563 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
7564 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08007565 (a = _tmp_67_rule(p), 1) // ['->' expression]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007566 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00007567 (_literal_2 = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007568 &&
7569 (tc = func_type_comment_rule(p), 1) // func_type_comment?
7570 &&
7571 (b = block_rule(p)) // block
7572 )
7573 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00007574 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 +01007575 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7576 if (_token == NULL) {
7577 D(p->level--);
7578 return NULL;
7579 }
7580 int _end_lineno = _token->end_lineno;
7581 UNUSED(_end_lineno); // Only used by EXTRA macro
7582 int _end_col_offset = _token->end_col_offset;
7583 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02007584 _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 +01007585 if (_res == NULL && PyErr_Occurred()) {
7586 p->error_indicator = 1;
7587 D(p->level--);
7588 return NULL;
7589 }
7590 goto done;
7591 }
7592 p->mark = _mark;
7593 D(fprintf(stderr, "%*c%s function_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00007594 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007595 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00007596 { // ASYNC 'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007597 if (p->error_indicator) {
7598 D(p->level--);
7599 return NULL;
7600 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00007601 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 +01007602 Token * _keyword;
7603 Token * _literal;
7604 Token * _literal_1;
7605 Token * _literal_2;
7606 void *a;
7607 Token * async_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +01007608 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007609 expr_ty n;
7610 void *params;
7611 void *tc;
7612 if (
7613 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
7614 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08007615 (_keyword = _PyPegen_expect_token(p, 526)) // token='def'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007616 &&
7617 (n = _PyPegen_name_token(p)) // NAME
7618 &&
7619 (_literal = _PyPegen_expect_token(p, 7)) // token='('
7620 &&
7621 (params = params_rule(p), 1) // params?
7622 &&
7623 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
7624 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08007625 (a = _tmp_68_rule(p), 1) // ['->' expression]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007626 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00007627 (_literal_2 = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007628 &&
7629 (tc = func_type_comment_rule(p), 1) // func_type_comment?
7630 &&
7631 (b = block_rule(p)) // block
7632 )
7633 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00007634 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 +01007635 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7636 if (_token == NULL) {
7637 D(p->level--);
7638 return NULL;
7639 }
7640 int _end_lineno = _token->end_lineno;
7641 UNUSED(_end_lineno); // Only used by EXTRA macro
7642 int _end_col_offset = _token->end_col_offset;
7643 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02007644 _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 +01007645 if (_res == NULL && PyErr_Occurred()) {
7646 p->error_indicator = 1;
7647 D(p->level--);
7648 return NULL;
7649 }
7650 goto done;
7651 }
7652 p->mark = _mark;
7653 D(fprintf(stderr, "%*c%s function_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00007654 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007655 }
7656 _res = NULL;
7657 done:
7658 D(p->level--);
7659 return _res;
7660}
7661
7662// func_type_comment:
7663// | NEWLINE TYPE_COMMENT &(NEWLINE INDENT)
7664// | invalid_double_type_comments
7665// | TYPE_COMMENT
7666static Token*
7667func_type_comment_rule(Parser *p)
7668{
7669 D(p->level++);
7670 if (p->error_indicator) {
7671 D(p->level--);
7672 return NULL;
7673 }
7674 Token* _res = NULL;
7675 int _mark = p->mark;
7676 { // NEWLINE TYPE_COMMENT &(NEWLINE INDENT)
7677 if (p->error_indicator) {
7678 D(p->level--);
7679 return NULL;
7680 }
7681 D(fprintf(stderr, "%*c> func_type_comment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE TYPE_COMMENT &(NEWLINE INDENT)"));
7682 Token * newline_var;
7683 Token * t;
7684 if (
7685 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
7686 &&
7687 (t = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
7688 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08007689 _PyPegen_lookahead(1, _tmp_69_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007690 )
7691 {
7692 D(fprintf(stderr, "%*c+ func_type_comment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE TYPE_COMMENT &(NEWLINE INDENT)"));
7693 _res = t;
7694 if (_res == NULL && PyErr_Occurred()) {
7695 p->error_indicator = 1;
7696 D(p->level--);
7697 return NULL;
7698 }
7699 goto done;
7700 }
7701 p->mark = _mark;
7702 D(fprintf(stderr, "%*c%s func_type_comment[%d-%d]: %s failed!\n", p->level, ' ',
7703 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE TYPE_COMMENT &(NEWLINE INDENT)"));
7704 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02007705 if (p->call_invalid_rules) { // invalid_double_type_comments
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007706 if (p->error_indicator) {
7707 D(p->level--);
7708 return NULL;
7709 }
7710 D(fprintf(stderr, "%*c> func_type_comment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_double_type_comments"));
7711 void *invalid_double_type_comments_var;
7712 if (
7713 (invalid_double_type_comments_var = invalid_double_type_comments_rule(p)) // invalid_double_type_comments
7714 )
7715 {
7716 D(fprintf(stderr, "%*c+ func_type_comment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_double_type_comments"));
7717 _res = invalid_double_type_comments_var;
7718 goto done;
7719 }
7720 p->mark = _mark;
7721 D(fprintf(stderr, "%*c%s func_type_comment[%d-%d]: %s failed!\n", p->level, ' ',
7722 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_double_type_comments"));
7723 }
7724 { // TYPE_COMMENT
7725 if (p->error_indicator) {
7726 D(p->level--);
7727 return NULL;
7728 }
7729 D(fprintf(stderr, "%*c> func_type_comment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "TYPE_COMMENT"));
7730 Token * type_comment_var;
7731 if (
7732 (type_comment_var = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
7733 )
7734 {
7735 D(fprintf(stderr, "%*c+ func_type_comment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "TYPE_COMMENT"));
7736 _res = type_comment_var;
7737 goto done;
7738 }
7739 p->mark = _mark;
7740 D(fprintf(stderr, "%*c%s func_type_comment[%d-%d]: %s failed!\n", p->level, ' ',
7741 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "TYPE_COMMENT"));
7742 }
7743 _res = NULL;
7744 done:
7745 D(p->level--);
7746 return _res;
7747}
7748
7749// params: invalid_parameters | parameters
7750static arguments_ty
7751params_rule(Parser *p)
7752{
7753 D(p->level++);
7754 if (p->error_indicator) {
7755 D(p->level--);
7756 return NULL;
7757 }
7758 arguments_ty _res = NULL;
7759 int _mark = p->mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02007760 if (p->call_invalid_rules) { // invalid_parameters
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007761 if (p->error_indicator) {
7762 D(p->level--);
7763 return NULL;
7764 }
7765 D(fprintf(stderr, "%*c> params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_parameters"));
7766 void *invalid_parameters_var;
7767 if (
7768 (invalid_parameters_var = invalid_parameters_rule(p)) // invalid_parameters
7769 )
7770 {
7771 D(fprintf(stderr, "%*c+ params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_parameters"));
7772 _res = invalid_parameters_var;
7773 goto done;
7774 }
7775 p->mark = _mark;
7776 D(fprintf(stderr, "%*c%s params[%d-%d]: %s failed!\n", p->level, ' ',
7777 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_parameters"));
7778 }
7779 { // parameters
7780 if (p->error_indicator) {
7781 D(p->level--);
7782 return NULL;
7783 }
7784 D(fprintf(stderr, "%*c> params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "parameters"));
7785 arguments_ty parameters_var;
7786 if (
7787 (parameters_var = parameters_rule(p)) // parameters
7788 )
7789 {
7790 D(fprintf(stderr, "%*c+ params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "parameters"));
7791 _res = parameters_var;
7792 goto done;
7793 }
7794 p->mark = _mark;
7795 D(fprintf(stderr, "%*c%s params[%d-%d]: %s failed!\n", p->level, ' ',
7796 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "parameters"));
7797 }
7798 _res = NULL;
7799 done:
7800 D(p->level--);
7801 return _res;
7802}
7803
7804// parameters:
7805// | slash_no_default param_no_default* param_with_default* star_etc?
7806// | slash_with_default param_with_default* star_etc?
7807// | param_no_default+ param_with_default* star_etc?
7808// | param_with_default+ star_etc?
7809// | star_etc
7810static arguments_ty
7811parameters_rule(Parser *p)
7812{
7813 D(p->level++);
7814 if (p->error_indicator) {
7815 D(p->level--);
7816 return NULL;
7817 }
7818 arguments_ty _res = NULL;
7819 int _mark = p->mark;
7820 { // slash_no_default param_no_default* param_with_default* star_etc?
7821 if (p->error_indicator) {
7822 D(p->level--);
7823 return NULL;
7824 }
7825 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 +01007826 asdl_arg_seq* a;
7827 asdl_arg_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007828 asdl_seq * c;
7829 void *d;
7830 if (
7831 (a = slash_no_default_rule(p)) // slash_no_default
7832 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08007833 (b = (asdl_arg_seq*)_loop0_70_rule(p)) // param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007834 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08007835 (c = _loop0_71_rule(p)) // param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007836 &&
7837 (d = star_etc_rule(p), 1) // star_etc?
7838 )
7839 {
7840 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?"));
7841 _res = _PyPegen_make_arguments ( p , a , NULL , b , c , d );
7842 if (_res == NULL && PyErr_Occurred()) {
7843 p->error_indicator = 1;
7844 D(p->level--);
7845 return NULL;
7846 }
7847 goto done;
7848 }
7849 p->mark = _mark;
7850 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
7851 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_no_default param_no_default* param_with_default* star_etc?"));
7852 }
7853 { // slash_with_default param_with_default* star_etc?
7854 if (p->error_indicator) {
7855 D(p->level--);
7856 return NULL;
7857 }
7858 D(fprintf(stderr, "%*c> parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slash_with_default param_with_default* star_etc?"));
7859 SlashWithDefault* a;
7860 asdl_seq * b;
7861 void *c;
7862 if (
7863 (a = slash_with_default_rule(p)) // slash_with_default
7864 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08007865 (b = _loop0_72_rule(p)) // param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007866 &&
7867 (c = star_etc_rule(p), 1) // star_etc?
7868 )
7869 {
7870 D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slash_with_default param_with_default* star_etc?"));
7871 _res = _PyPegen_make_arguments ( p , NULL , a , NULL , b , c );
7872 if (_res == NULL && PyErr_Occurred()) {
7873 p->error_indicator = 1;
7874 D(p->level--);
7875 return NULL;
7876 }
7877 goto done;
7878 }
7879 p->mark = _mark;
7880 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
7881 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_with_default param_with_default* star_etc?"));
7882 }
7883 { // param_no_default+ param_with_default* star_etc?
7884 if (p->error_indicator) {
7885 D(p->level--);
7886 return NULL;
7887 }
7888 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 +01007889 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007890 asdl_seq * b;
7891 void *c;
7892 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08007893 (a = (asdl_arg_seq*)_loop1_73_rule(p)) // param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007894 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08007895 (b = _loop0_74_rule(p)) // param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007896 &&
7897 (c = star_etc_rule(p), 1) // star_etc?
7898 )
7899 {
7900 D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default+ param_with_default* star_etc?"));
7901 _res = _PyPegen_make_arguments ( p , NULL , NULL , a , b , c );
7902 if (_res == NULL && PyErr_Occurred()) {
7903 p->error_indicator = 1;
7904 D(p->level--);
7905 return NULL;
7906 }
7907 goto done;
7908 }
7909 p->mark = _mark;
7910 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
7911 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default+ param_with_default* star_etc?"));
7912 }
7913 { // param_with_default+ star_etc?
7914 if (p->error_indicator) {
7915 D(p->level--);
7916 return NULL;
7917 }
7918 D(fprintf(stderr, "%*c> parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default+ star_etc?"));
7919 asdl_seq * a;
7920 void *b;
7921 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08007922 (a = _loop1_75_rule(p)) // param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007923 &&
7924 (b = star_etc_rule(p), 1) // star_etc?
7925 )
7926 {
7927 D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_with_default+ star_etc?"));
7928 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , a , b );
7929 if (_res == NULL && PyErr_Occurred()) {
7930 p->error_indicator = 1;
7931 D(p->level--);
7932 return NULL;
7933 }
7934 goto done;
7935 }
7936 p->mark = _mark;
7937 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
7938 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default+ star_etc?"));
7939 }
7940 { // star_etc
7941 if (p->error_indicator) {
7942 D(p->level--);
7943 return NULL;
7944 }
7945 D(fprintf(stderr, "%*c> parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_etc"));
7946 StarEtc* a;
7947 if (
7948 (a = star_etc_rule(p)) // star_etc
7949 )
7950 {
7951 D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_etc"));
7952 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , NULL , a );
7953 if (_res == NULL && PyErr_Occurred()) {
7954 p->error_indicator = 1;
7955 D(p->level--);
7956 return NULL;
7957 }
7958 goto done;
7959 }
7960 p->mark = _mark;
7961 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
7962 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_etc"));
7963 }
7964 _res = NULL;
7965 done:
7966 D(p->level--);
7967 return _res;
7968}
7969
7970// slash_no_default: param_no_default+ '/' ',' | param_no_default+ '/' &')'
Pablo Galindoa5634c42020-09-16 19:42:00 +01007971static asdl_arg_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007972slash_no_default_rule(Parser *p)
7973{
7974 D(p->level++);
7975 if (p->error_indicator) {
7976 D(p->level--);
7977 return NULL;
7978 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01007979 asdl_arg_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007980 int _mark = p->mark;
7981 { // param_no_default+ '/' ','
7982 if (p->error_indicator) {
7983 D(p->level--);
7984 return NULL;
7985 }
7986 D(fprintf(stderr, "%*c> slash_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default+ '/' ','"));
7987 Token * _literal;
7988 Token * _literal_1;
Pablo Galindoa5634c42020-09-16 19:42:00 +01007989 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007990 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08007991 (a = (asdl_arg_seq*)_loop1_76_rule(p)) // param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007992 &&
7993 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
7994 &&
7995 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
7996 )
7997 {
7998 D(fprintf(stderr, "%*c+ slash_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default+ '/' ','"));
7999 _res = a;
8000 if (_res == NULL && PyErr_Occurred()) {
8001 p->error_indicator = 1;
8002 D(p->level--);
8003 return NULL;
8004 }
8005 goto done;
8006 }
8007 p->mark = _mark;
8008 D(fprintf(stderr, "%*c%s slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
8009 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default+ '/' ','"));
8010 }
8011 { // param_no_default+ '/' &')'
8012 if (p->error_indicator) {
8013 D(p->level--);
8014 return NULL;
8015 }
8016 D(fprintf(stderr, "%*c> slash_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default+ '/' &')'"));
8017 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01008018 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008019 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08008020 (a = (asdl_arg_seq*)_loop1_77_rule(p)) // param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008021 &&
8022 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
8023 &&
8024 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
8025 )
8026 {
8027 D(fprintf(stderr, "%*c+ slash_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default+ '/' &')'"));
8028 _res = a;
8029 if (_res == NULL && PyErr_Occurred()) {
8030 p->error_indicator = 1;
8031 D(p->level--);
8032 return NULL;
8033 }
8034 goto done;
8035 }
8036 p->mark = _mark;
8037 D(fprintf(stderr, "%*c%s slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
8038 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default+ '/' &')'"));
8039 }
8040 _res = NULL;
8041 done:
8042 D(p->level--);
8043 return _res;
8044}
8045
8046// slash_with_default:
8047// | param_no_default* param_with_default+ '/' ','
8048// | param_no_default* param_with_default+ '/' &')'
8049static SlashWithDefault*
8050slash_with_default_rule(Parser *p)
8051{
8052 D(p->level++);
8053 if (p->error_indicator) {
8054 D(p->level--);
8055 return NULL;
8056 }
8057 SlashWithDefault* _res = NULL;
8058 int _mark = p->mark;
8059 { // param_no_default* param_with_default+ '/' ','
8060 if (p->error_indicator) {
8061 D(p->level--);
8062 return NULL;
8063 }
8064 D(fprintf(stderr, "%*c> slash_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default* param_with_default+ '/' ','"));
8065 Token * _literal;
8066 Token * _literal_1;
8067 asdl_seq * a;
8068 asdl_seq * b;
8069 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08008070 (a = _loop0_78_rule(p)) // param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008071 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008072 (b = _loop1_79_rule(p)) // param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008073 &&
8074 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
8075 &&
8076 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
8077 )
8078 {
8079 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 +01008080 _res = _PyPegen_slash_with_default ( p , ( asdl_arg_seq * ) a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008081 if (_res == NULL && PyErr_Occurred()) {
8082 p->error_indicator = 1;
8083 D(p->level--);
8084 return NULL;
8085 }
8086 goto done;
8087 }
8088 p->mark = _mark;
8089 D(fprintf(stderr, "%*c%s slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
8090 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default* param_with_default+ '/' ','"));
8091 }
8092 { // param_no_default* param_with_default+ '/' &')'
8093 if (p->error_indicator) {
8094 D(p->level--);
8095 return NULL;
8096 }
8097 D(fprintf(stderr, "%*c> slash_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default* param_with_default+ '/' &')'"));
8098 Token * _literal;
8099 asdl_seq * a;
8100 asdl_seq * b;
8101 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08008102 (a = _loop0_80_rule(p)) // param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008103 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008104 (b = _loop1_81_rule(p)) // param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008105 &&
8106 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
8107 &&
8108 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
8109 )
8110 {
8111 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 +01008112 _res = _PyPegen_slash_with_default ( p , ( asdl_arg_seq * ) a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008113 if (_res == NULL && PyErr_Occurred()) {
8114 p->error_indicator = 1;
8115 D(p->level--);
8116 return NULL;
8117 }
8118 goto done;
8119 }
8120 p->mark = _mark;
8121 D(fprintf(stderr, "%*c%s slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
8122 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default* param_with_default+ '/' &')'"));
8123 }
8124 _res = NULL;
8125 done:
8126 D(p->level--);
8127 return _res;
8128}
8129
8130// star_etc:
8131// | '*' param_no_default param_maybe_default* kwds?
8132// | '*' ',' param_maybe_default+ kwds?
8133// | kwds
8134// | invalid_star_etc
8135static StarEtc*
8136star_etc_rule(Parser *p)
8137{
8138 D(p->level++);
8139 if (p->error_indicator) {
8140 D(p->level--);
8141 return NULL;
8142 }
8143 StarEtc* _res = NULL;
8144 int _mark = p->mark;
8145 { // '*' param_no_default param_maybe_default* kwds?
8146 if (p->error_indicator) {
8147 D(p->level--);
8148 return NULL;
8149 }
8150 D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' param_no_default param_maybe_default* kwds?"));
8151 Token * _literal;
8152 arg_ty a;
8153 asdl_seq * b;
8154 void *c;
8155 if (
8156 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
8157 &&
8158 (a = param_no_default_rule(p)) // param_no_default
8159 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008160 (b = _loop0_82_rule(p)) // param_maybe_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008161 &&
8162 (c = kwds_rule(p), 1) // kwds?
8163 )
8164 {
8165 D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' param_no_default param_maybe_default* kwds?"));
8166 _res = _PyPegen_star_etc ( p , a , b , c );
8167 if (_res == NULL && PyErr_Occurred()) {
8168 p->error_indicator = 1;
8169 D(p->level--);
8170 return NULL;
8171 }
8172 goto done;
8173 }
8174 p->mark = _mark;
8175 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
8176 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' param_no_default param_maybe_default* kwds?"));
8177 }
8178 { // '*' ',' param_maybe_default+ kwds?
8179 if (p->error_indicator) {
8180 D(p->level--);
8181 return NULL;
8182 }
8183 D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' ',' param_maybe_default+ kwds?"));
8184 Token * _literal;
8185 Token * _literal_1;
8186 asdl_seq * b;
8187 void *c;
8188 if (
8189 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
8190 &&
8191 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
8192 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008193 (b = _loop1_83_rule(p)) // param_maybe_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008194 &&
8195 (c = kwds_rule(p), 1) // kwds?
8196 )
8197 {
8198 D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' ',' param_maybe_default+ kwds?"));
8199 _res = _PyPegen_star_etc ( p , NULL , b , c );
8200 if (_res == NULL && PyErr_Occurred()) {
8201 p->error_indicator = 1;
8202 D(p->level--);
8203 return NULL;
8204 }
8205 goto done;
8206 }
8207 p->mark = _mark;
8208 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
8209 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' ',' param_maybe_default+ kwds?"));
8210 }
8211 { // kwds
8212 if (p->error_indicator) {
8213 D(p->level--);
8214 return NULL;
8215 }
8216 D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwds"));
8217 arg_ty a;
8218 if (
8219 (a = kwds_rule(p)) // kwds
8220 )
8221 {
8222 D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwds"));
8223 _res = _PyPegen_star_etc ( p , NULL , NULL , a );
8224 if (_res == NULL && PyErr_Occurred()) {
8225 p->error_indicator = 1;
8226 D(p->level--);
8227 return NULL;
8228 }
8229 goto done;
8230 }
8231 p->mark = _mark;
8232 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
8233 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwds"));
8234 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02008235 if (p->call_invalid_rules) { // invalid_star_etc
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008236 if (p->error_indicator) {
8237 D(p->level--);
8238 return NULL;
8239 }
8240 D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_star_etc"));
8241 void *invalid_star_etc_var;
8242 if (
8243 (invalid_star_etc_var = invalid_star_etc_rule(p)) // invalid_star_etc
8244 )
8245 {
8246 D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_star_etc"));
8247 _res = invalid_star_etc_var;
8248 goto done;
8249 }
8250 p->mark = _mark;
8251 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
8252 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_star_etc"));
8253 }
8254 _res = NULL;
8255 done:
8256 D(p->level--);
8257 return _res;
8258}
8259
8260// kwds: '**' param_no_default
8261static arg_ty
8262kwds_rule(Parser *p)
8263{
8264 D(p->level++);
8265 if (p->error_indicator) {
8266 D(p->level--);
8267 return NULL;
8268 }
8269 arg_ty _res = NULL;
8270 int _mark = p->mark;
8271 { // '**' param_no_default
8272 if (p->error_indicator) {
8273 D(p->level--);
8274 return NULL;
8275 }
8276 D(fprintf(stderr, "%*c> kwds[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' param_no_default"));
8277 Token * _literal;
8278 arg_ty a;
8279 if (
8280 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
8281 &&
8282 (a = param_no_default_rule(p)) // param_no_default
8283 )
8284 {
8285 D(fprintf(stderr, "%*c+ kwds[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' param_no_default"));
8286 _res = a;
8287 if (_res == NULL && PyErr_Occurred()) {
8288 p->error_indicator = 1;
8289 D(p->level--);
8290 return NULL;
8291 }
8292 goto done;
8293 }
8294 p->mark = _mark;
8295 D(fprintf(stderr, "%*c%s kwds[%d-%d]: %s failed!\n", p->level, ' ',
8296 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' param_no_default"));
8297 }
8298 _res = NULL;
8299 done:
8300 D(p->level--);
8301 return _res;
8302}
8303
8304// param_no_default: param ',' TYPE_COMMENT? | param TYPE_COMMENT? &')'
8305static arg_ty
8306param_no_default_rule(Parser *p)
8307{
8308 D(p->level++);
8309 if (p->error_indicator) {
8310 D(p->level--);
8311 return NULL;
8312 }
8313 arg_ty _res = NULL;
8314 int _mark = p->mark;
8315 { // param ',' TYPE_COMMENT?
8316 if (p->error_indicator) {
8317 D(p->level--);
8318 return NULL;
8319 }
8320 D(fprintf(stderr, "%*c> param_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param ',' TYPE_COMMENT?"));
8321 Token * _literal;
8322 arg_ty a;
8323 void *tc;
8324 if (
8325 (a = param_rule(p)) // param
8326 &&
8327 (_literal = _PyPegen_expect_token(p, 12)) // token=','
8328 &&
8329 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
8330 )
8331 {
8332 D(fprintf(stderr, "%*c+ param_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param ',' TYPE_COMMENT?"));
8333 _res = _PyPegen_add_type_comment_to_arg ( p , a , tc );
8334 if (_res == NULL && PyErr_Occurred()) {
8335 p->error_indicator = 1;
8336 D(p->level--);
8337 return NULL;
8338 }
8339 goto done;
8340 }
8341 p->mark = _mark;
8342 D(fprintf(stderr, "%*c%s param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
8343 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param ',' TYPE_COMMENT?"));
8344 }
8345 { // param TYPE_COMMENT? &')'
8346 if (p->error_indicator) {
8347 D(p->level--);
8348 return NULL;
8349 }
8350 D(fprintf(stderr, "%*c> param_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param TYPE_COMMENT? &')'"));
8351 arg_ty a;
8352 void *tc;
8353 if (
8354 (a = param_rule(p)) // param
8355 &&
8356 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
8357 &&
8358 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
8359 )
8360 {
8361 D(fprintf(stderr, "%*c+ param_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param TYPE_COMMENT? &')'"));
8362 _res = _PyPegen_add_type_comment_to_arg ( p , a , tc );
8363 if (_res == NULL && PyErr_Occurred()) {
8364 p->error_indicator = 1;
8365 D(p->level--);
8366 return NULL;
8367 }
8368 goto done;
8369 }
8370 p->mark = _mark;
8371 D(fprintf(stderr, "%*c%s param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
8372 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param TYPE_COMMENT? &')'"));
8373 }
8374 _res = NULL;
8375 done:
8376 D(p->level--);
8377 return _res;
8378}
8379
8380// param_with_default: param default ',' TYPE_COMMENT? | param default TYPE_COMMENT? &')'
8381static NameDefaultPair*
8382param_with_default_rule(Parser *p)
8383{
8384 D(p->level++);
8385 if (p->error_indicator) {
8386 D(p->level--);
8387 return NULL;
8388 }
8389 NameDefaultPair* _res = NULL;
8390 int _mark = p->mark;
8391 { // param default ',' TYPE_COMMENT?
8392 if (p->error_indicator) {
8393 D(p->level--);
8394 return NULL;
8395 }
8396 D(fprintf(stderr, "%*c> param_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param default ',' TYPE_COMMENT?"));
8397 Token * _literal;
8398 arg_ty a;
8399 expr_ty c;
8400 void *tc;
8401 if (
8402 (a = param_rule(p)) // param
8403 &&
8404 (c = default_rule(p)) // default
8405 &&
8406 (_literal = _PyPegen_expect_token(p, 12)) // token=','
8407 &&
8408 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
8409 )
8410 {
8411 D(fprintf(stderr, "%*c+ param_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param default ',' TYPE_COMMENT?"));
8412 _res = _PyPegen_name_default_pair ( p , a , c , tc );
8413 if (_res == NULL && PyErr_Occurred()) {
8414 p->error_indicator = 1;
8415 D(p->level--);
8416 return NULL;
8417 }
8418 goto done;
8419 }
8420 p->mark = _mark;
8421 D(fprintf(stderr, "%*c%s param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
8422 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default ',' TYPE_COMMENT?"));
8423 }
8424 { // param default TYPE_COMMENT? &')'
8425 if (p->error_indicator) {
8426 D(p->level--);
8427 return NULL;
8428 }
8429 D(fprintf(stderr, "%*c> param_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param default TYPE_COMMENT? &')'"));
8430 arg_ty a;
8431 expr_ty c;
8432 void *tc;
8433 if (
8434 (a = param_rule(p)) // param
8435 &&
8436 (c = default_rule(p)) // default
8437 &&
8438 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
8439 &&
8440 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
8441 )
8442 {
8443 D(fprintf(stderr, "%*c+ param_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param default TYPE_COMMENT? &')'"));
8444 _res = _PyPegen_name_default_pair ( p , a , c , tc );
8445 if (_res == NULL && PyErr_Occurred()) {
8446 p->error_indicator = 1;
8447 D(p->level--);
8448 return NULL;
8449 }
8450 goto done;
8451 }
8452 p->mark = _mark;
8453 D(fprintf(stderr, "%*c%s param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
8454 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default TYPE_COMMENT? &')'"));
8455 }
8456 _res = NULL;
8457 done:
8458 D(p->level--);
8459 return _res;
8460}
8461
8462// param_maybe_default:
8463// | param default? ',' TYPE_COMMENT?
8464// | param default? TYPE_COMMENT? &')'
8465static NameDefaultPair*
8466param_maybe_default_rule(Parser *p)
8467{
8468 D(p->level++);
8469 if (p->error_indicator) {
8470 D(p->level--);
8471 return NULL;
8472 }
8473 NameDefaultPair* _res = NULL;
8474 int _mark = p->mark;
8475 { // param default? ',' TYPE_COMMENT?
8476 if (p->error_indicator) {
8477 D(p->level--);
8478 return NULL;
8479 }
8480 D(fprintf(stderr, "%*c> param_maybe_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param default? ',' TYPE_COMMENT?"));
8481 Token * _literal;
8482 arg_ty a;
8483 void *c;
8484 void *tc;
8485 if (
8486 (a = param_rule(p)) // param
8487 &&
8488 (c = default_rule(p), 1) // default?
8489 &&
8490 (_literal = _PyPegen_expect_token(p, 12)) // token=','
8491 &&
8492 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
8493 )
8494 {
8495 D(fprintf(stderr, "%*c+ param_maybe_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param default? ',' TYPE_COMMENT?"));
8496 _res = _PyPegen_name_default_pair ( p , a , c , tc );
8497 if (_res == NULL && PyErr_Occurred()) {
8498 p->error_indicator = 1;
8499 D(p->level--);
8500 return NULL;
8501 }
8502 goto done;
8503 }
8504 p->mark = _mark;
8505 D(fprintf(stderr, "%*c%s param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
8506 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default? ',' TYPE_COMMENT?"));
8507 }
8508 { // param default? TYPE_COMMENT? &')'
8509 if (p->error_indicator) {
8510 D(p->level--);
8511 return NULL;
8512 }
8513 D(fprintf(stderr, "%*c> param_maybe_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param default? TYPE_COMMENT? &')'"));
8514 arg_ty a;
8515 void *c;
8516 void *tc;
8517 if (
8518 (a = param_rule(p)) // param
8519 &&
8520 (c = default_rule(p), 1) // default?
8521 &&
8522 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
8523 &&
8524 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
8525 )
8526 {
8527 D(fprintf(stderr, "%*c+ param_maybe_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param default? TYPE_COMMENT? &')'"));
8528 _res = _PyPegen_name_default_pair ( p , a , c , tc );
8529 if (_res == NULL && PyErr_Occurred()) {
8530 p->error_indicator = 1;
8531 D(p->level--);
8532 return NULL;
8533 }
8534 goto done;
8535 }
8536 p->mark = _mark;
8537 D(fprintf(stderr, "%*c%s param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
8538 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default? TYPE_COMMENT? &')'"));
8539 }
8540 _res = NULL;
8541 done:
8542 D(p->level--);
8543 return _res;
8544}
8545
8546// param: NAME annotation?
8547static arg_ty
8548param_rule(Parser *p)
8549{
8550 D(p->level++);
8551 if (p->error_indicator) {
8552 D(p->level--);
8553 return NULL;
8554 }
8555 arg_ty _res = NULL;
8556 int _mark = p->mark;
8557 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
8558 p->error_indicator = 1;
8559 D(p->level--);
8560 return NULL;
8561 }
8562 int _start_lineno = p->tokens[_mark]->lineno;
8563 UNUSED(_start_lineno); // Only used by EXTRA macro
8564 int _start_col_offset = p->tokens[_mark]->col_offset;
8565 UNUSED(_start_col_offset); // Only used by EXTRA macro
8566 { // NAME annotation?
8567 if (p->error_indicator) {
8568 D(p->level--);
8569 return NULL;
8570 }
8571 D(fprintf(stderr, "%*c> param[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME annotation?"));
8572 expr_ty a;
8573 void *b;
8574 if (
8575 (a = _PyPegen_name_token(p)) // NAME
8576 &&
8577 (b = annotation_rule(p), 1) // annotation?
8578 )
8579 {
8580 D(fprintf(stderr, "%*c+ param[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME annotation?"));
8581 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8582 if (_token == NULL) {
8583 D(p->level--);
8584 return NULL;
8585 }
8586 int _end_lineno = _token->end_lineno;
8587 UNUSED(_end_lineno); // Only used by EXTRA macro
8588 int _end_col_offset = _token->end_col_offset;
8589 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02008590 _res = _PyAST_arg ( a -> v . Name . id , b , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008591 if (_res == NULL && PyErr_Occurred()) {
8592 p->error_indicator = 1;
8593 D(p->level--);
8594 return NULL;
8595 }
8596 goto done;
8597 }
8598 p->mark = _mark;
8599 D(fprintf(stderr, "%*c%s param[%d-%d]: %s failed!\n", p->level, ' ',
8600 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME annotation?"));
8601 }
8602 _res = NULL;
8603 done:
8604 D(p->level--);
8605 return _res;
8606}
8607
8608// annotation: ':' expression
8609static expr_ty
8610annotation_rule(Parser *p)
8611{
8612 D(p->level++);
8613 if (p->error_indicator) {
8614 D(p->level--);
8615 return NULL;
8616 }
8617 expr_ty _res = NULL;
8618 int _mark = p->mark;
8619 { // ':' expression
8620 if (p->error_indicator) {
8621 D(p->level--);
8622 return NULL;
8623 }
8624 D(fprintf(stderr, "%*c> annotation[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':' expression"));
8625 Token * _literal;
8626 expr_ty a;
8627 if (
8628 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
8629 &&
8630 (a = expression_rule(p)) // expression
8631 )
8632 {
8633 D(fprintf(stderr, "%*c+ annotation[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':' expression"));
8634 _res = a;
8635 if (_res == NULL && PyErr_Occurred()) {
8636 p->error_indicator = 1;
8637 D(p->level--);
8638 return NULL;
8639 }
8640 goto done;
8641 }
8642 p->mark = _mark;
8643 D(fprintf(stderr, "%*c%s annotation[%d-%d]: %s failed!\n", p->level, ' ',
8644 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':' expression"));
8645 }
8646 _res = NULL;
8647 done:
8648 D(p->level--);
8649 return _res;
8650}
8651
8652// default: '=' expression
8653static expr_ty
8654default_rule(Parser *p)
8655{
8656 D(p->level++);
8657 if (p->error_indicator) {
8658 D(p->level--);
8659 return NULL;
8660 }
8661 expr_ty _res = NULL;
8662 int _mark = p->mark;
8663 { // '=' expression
8664 if (p->error_indicator) {
8665 D(p->level--);
8666 return NULL;
8667 }
8668 D(fprintf(stderr, "%*c> default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'=' expression"));
8669 Token * _literal;
8670 expr_ty a;
8671 if (
8672 (_literal = _PyPegen_expect_token(p, 22)) // token='='
8673 &&
8674 (a = expression_rule(p)) // expression
8675 )
8676 {
8677 D(fprintf(stderr, "%*c+ default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'=' expression"));
8678 _res = a;
8679 if (_res == NULL && PyErr_Occurred()) {
8680 p->error_indicator = 1;
8681 D(p->level--);
8682 return NULL;
8683 }
8684 goto done;
8685 }
8686 p->mark = _mark;
8687 D(fprintf(stderr, "%*c%s default[%d-%d]: %s failed!\n", p->level, ' ',
8688 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'=' expression"));
8689 }
8690 _res = NULL;
8691 done:
8692 D(p->level--);
8693 return _res;
8694}
8695
8696// decorators: (('@' named_expression NEWLINE))+
Pablo Galindoa5634c42020-09-16 19:42:00 +01008697static asdl_expr_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008698decorators_rule(Parser *p)
8699{
8700 D(p->level++);
8701 if (p->error_indicator) {
8702 D(p->level--);
8703 return NULL;
8704 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01008705 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008706 int _mark = p->mark;
8707 { // (('@' named_expression NEWLINE))+
8708 if (p->error_indicator) {
8709 D(p->level--);
8710 return NULL;
8711 }
8712 D(fprintf(stderr, "%*c> decorators[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(('@' named_expression NEWLINE))+"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01008713 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008714 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08008715 (a = (asdl_expr_seq*)_loop1_84_rule(p)) // (('@' named_expression NEWLINE))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008716 )
8717 {
8718 D(fprintf(stderr, "%*c+ decorators[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(('@' named_expression NEWLINE))+"));
8719 _res = a;
8720 if (_res == NULL && PyErr_Occurred()) {
8721 p->error_indicator = 1;
8722 D(p->level--);
8723 return NULL;
8724 }
8725 goto done;
8726 }
8727 p->mark = _mark;
8728 D(fprintf(stderr, "%*c%s decorators[%d-%d]: %s failed!\n", p->level, ' ',
8729 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(('@' named_expression NEWLINE))+"));
8730 }
8731 _res = NULL;
8732 done:
8733 D(p->level--);
8734 return _res;
8735}
8736
8737// class_def: decorators class_def_raw | class_def_raw
8738static stmt_ty
8739class_def_rule(Parser *p)
8740{
8741 D(p->level++);
8742 if (p->error_indicator) {
8743 D(p->level--);
8744 return NULL;
8745 }
8746 stmt_ty _res = NULL;
8747 int _mark = p->mark;
8748 { // decorators class_def_raw
8749 if (p->error_indicator) {
8750 D(p->level--);
8751 return NULL;
8752 }
8753 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 +01008754 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008755 stmt_ty b;
8756 if (
8757 (a = decorators_rule(p)) // decorators
8758 &&
8759 (b = class_def_raw_rule(p)) // class_def_raw
8760 )
8761 {
8762 D(fprintf(stderr, "%*c+ class_def[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "decorators class_def_raw"));
8763 _res = _PyPegen_class_def_decorators ( p , a , b );
8764 if (_res == NULL && PyErr_Occurred()) {
8765 p->error_indicator = 1;
8766 D(p->level--);
8767 return NULL;
8768 }
8769 goto done;
8770 }
8771 p->mark = _mark;
8772 D(fprintf(stderr, "%*c%s class_def[%d-%d]: %s failed!\n", p->level, ' ',
8773 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "decorators class_def_raw"));
8774 }
8775 { // class_def_raw
8776 if (p->error_indicator) {
8777 D(p->level--);
8778 return NULL;
8779 }
8780 D(fprintf(stderr, "%*c> class_def[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "class_def_raw"));
8781 stmt_ty class_def_raw_var;
8782 if (
8783 (class_def_raw_var = class_def_raw_rule(p)) // class_def_raw
8784 )
8785 {
8786 D(fprintf(stderr, "%*c+ class_def[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "class_def_raw"));
8787 _res = class_def_raw_var;
8788 goto done;
8789 }
8790 p->mark = _mark;
8791 D(fprintf(stderr, "%*c%s class_def[%d-%d]: %s failed!\n", p->level, ' ',
8792 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "class_def_raw"));
8793 }
8794 _res = NULL;
8795 done:
8796 D(p->level--);
8797 return _res;
8798}
8799
Pablo Galindo58fb1562021-02-02 19:54:22 +00008800// class_def_raw: 'class' NAME ['(' arguments? ')'] &&':' block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008801static stmt_ty
8802class_def_raw_rule(Parser *p)
8803{
8804 D(p->level++);
8805 if (p->error_indicator) {
8806 D(p->level--);
8807 return NULL;
8808 }
8809 stmt_ty _res = NULL;
8810 int _mark = p->mark;
8811 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
8812 p->error_indicator = 1;
8813 D(p->level--);
8814 return NULL;
8815 }
8816 int _start_lineno = p->tokens[_mark]->lineno;
8817 UNUSED(_start_lineno); // Only used by EXTRA macro
8818 int _start_col_offset = p->tokens[_mark]->col_offset;
8819 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo58fb1562021-02-02 19:54:22 +00008820 { // 'class' NAME ['(' arguments? ')'] &&':' block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008821 if (p->error_indicator) {
8822 D(p->level--);
8823 return NULL;
8824 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00008825 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 +01008826 Token * _keyword;
8827 Token * _literal;
8828 expr_ty a;
8829 void *b;
Pablo Galindoa5634c42020-09-16 19:42:00 +01008830 asdl_stmt_seq* c;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008831 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08008832 (_keyword = _PyPegen_expect_token(p, 527)) // token='class'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008833 &&
8834 (a = _PyPegen_name_token(p)) // NAME
8835 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008836 (b = _tmp_85_rule(p), 1) // ['(' arguments? ')']
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008837 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00008838 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008839 &&
8840 (c = block_rule(p)) // block
8841 )
8842 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00008843 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 +01008844 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8845 if (_token == NULL) {
8846 D(p->level--);
8847 return NULL;
8848 }
8849 int _end_lineno = _token->end_lineno;
8850 UNUSED(_end_lineno); // Only used by EXTRA macro
8851 int _end_col_offset = _token->end_col_offset;
8852 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02008853 _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 +01008854 if (_res == NULL && PyErr_Occurred()) {
8855 p->error_indicator = 1;
8856 D(p->level--);
8857 return NULL;
8858 }
8859 goto done;
8860 }
8861 p->mark = _mark;
8862 D(fprintf(stderr, "%*c%s class_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00008863 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'class' NAME ['(' arguments? ')'] &&':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008864 }
8865 _res = NULL;
8866 done:
8867 D(p->level--);
8868 return _res;
8869}
8870
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00008871// block: NEWLINE INDENT statements DEDENT | simple_stmts | invalid_block
Pablo Galindoa5634c42020-09-16 19:42:00 +01008872static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008873block_rule(Parser *p)
8874{
8875 D(p->level++);
8876 if (p->error_indicator) {
8877 D(p->level--);
8878 return NULL;
8879 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01008880 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008881 if (_PyPegen_is_memoized(p, block_type, &_res)) {
8882 D(p->level--);
8883 return _res;
8884 }
8885 int _mark = p->mark;
8886 { // NEWLINE INDENT statements DEDENT
8887 if (p->error_indicator) {
8888 D(p->level--);
8889 return NULL;
8890 }
8891 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 +01008892 asdl_stmt_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008893 Token * dedent_var;
8894 Token * indent_var;
8895 Token * newline_var;
8896 if (
8897 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
8898 &&
8899 (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
8900 &&
8901 (a = statements_rule(p)) // statements
8902 &&
8903 (dedent_var = _PyPegen_expect_token(p, DEDENT)) // token='DEDENT'
8904 )
8905 {
8906 D(fprintf(stderr, "%*c+ block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE INDENT statements DEDENT"));
8907 _res = a;
8908 if (_res == NULL && PyErr_Occurred()) {
8909 p->error_indicator = 1;
8910 D(p->level--);
8911 return NULL;
8912 }
8913 goto done;
8914 }
8915 p->mark = _mark;
8916 D(fprintf(stderr, "%*c%s block[%d-%d]: %s failed!\n", p->level, ' ',
8917 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE INDENT statements DEDENT"));
8918 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00008919 { // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008920 if (p->error_indicator) {
8921 D(p->level--);
8922 return NULL;
8923 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00008924 D(fprintf(stderr, "%*c> block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
8925 asdl_stmt_seq* simple_stmts_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008926 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00008927 (simple_stmts_var = simple_stmts_rule(p)) // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008928 )
8929 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00008930 D(fprintf(stderr, "%*c+ block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
8931 _res = simple_stmts_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008932 goto done;
8933 }
8934 p->mark = _mark;
8935 D(fprintf(stderr, "%*c%s block[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00008936 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmts"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008937 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02008938 if (p->call_invalid_rules) { // invalid_block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008939 if (p->error_indicator) {
8940 D(p->level--);
8941 return NULL;
8942 }
8943 D(fprintf(stderr, "%*c> block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_block"));
8944 void *invalid_block_var;
8945 if (
8946 (invalid_block_var = invalid_block_rule(p)) // invalid_block
8947 )
8948 {
8949 D(fprintf(stderr, "%*c+ block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_block"));
8950 _res = invalid_block_var;
8951 goto done;
8952 }
8953 p->mark = _mark;
8954 D(fprintf(stderr, "%*c%s block[%d-%d]: %s failed!\n", p->level, ' ',
8955 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_block"));
8956 }
8957 _res = NULL;
8958 done:
8959 _PyPegen_insert_memo(p, _mark, block_type, _res);
8960 D(p->level--);
8961 return _res;
8962}
8963
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008964// star_expressions:
8965// | star_expression ((',' star_expression))+ ','?
8966// | star_expression ','
8967// | star_expression
8968static expr_ty
8969star_expressions_rule(Parser *p)
8970{
8971 D(p->level++);
8972 if (p->error_indicator) {
8973 D(p->level--);
8974 return NULL;
8975 }
8976 expr_ty _res = NULL;
8977 int _mark = p->mark;
8978 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
8979 p->error_indicator = 1;
8980 D(p->level--);
8981 return NULL;
8982 }
8983 int _start_lineno = p->tokens[_mark]->lineno;
8984 UNUSED(_start_lineno); // Only used by EXTRA macro
8985 int _start_col_offset = p->tokens[_mark]->col_offset;
8986 UNUSED(_start_col_offset); // Only used by EXTRA macro
8987 { // star_expression ((',' star_expression))+ ','?
8988 if (p->error_indicator) {
8989 D(p->level--);
8990 return NULL;
8991 }
8992 D(fprintf(stderr, "%*c> star_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expression ((',' star_expression))+ ','?"));
8993 void *_opt_var;
8994 UNUSED(_opt_var); // Silence compiler warnings
8995 expr_ty a;
8996 asdl_seq * b;
8997 if (
8998 (a = star_expression_rule(p)) // star_expression
8999 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08009000 (b = _loop1_86_rule(p)) // ((',' star_expression))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009001 &&
9002 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
9003 )
9004 {
9005 D(fprintf(stderr, "%*c+ star_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expression ((',' star_expression))+ ','?"));
9006 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9007 if (_token == NULL) {
9008 D(p->level--);
9009 return NULL;
9010 }
9011 int _end_lineno = _token->end_lineno;
9012 UNUSED(_end_lineno); // Only used by EXTRA macro
9013 int _end_col_offset = _token->end_col_offset;
9014 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02009015 _res = _PyAST_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , a , b ) ) , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009016 if (_res == NULL && PyErr_Occurred()) {
9017 p->error_indicator = 1;
9018 D(p->level--);
9019 return NULL;
9020 }
9021 goto done;
9022 }
9023 p->mark = _mark;
9024 D(fprintf(stderr, "%*c%s star_expressions[%d-%d]: %s failed!\n", p->level, ' ',
9025 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expression ((',' star_expression))+ ','?"));
9026 }
9027 { // star_expression ','
9028 if (p->error_indicator) {
9029 D(p->level--);
9030 return NULL;
9031 }
9032 D(fprintf(stderr, "%*c> star_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expression ','"));
9033 Token * _literal;
9034 expr_ty a;
9035 if (
9036 (a = star_expression_rule(p)) // star_expression
9037 &&
9038 (_literal = _PyPegen_expect_token(p, 12)) // token=','
9039 )
9040 {
9041 D(fprintf(stderr, "%*c+ star_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expression ','"));
9042 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9043 if (_token == NULL) {
9044 D(p->level--);
9045 return NULL;
9046 }
9047 int _end_lineno = _token->end_lineno;
9048 UNUSED(_end_lineno); // Only used by EXTRA macro
9049 int _end_col_offset = _token->end_col_offset;
9050 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02009051 _res = _PyAST_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_singleton_seq ( p , a ) ) , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009052 if (_res == NULL && PyErr_Occurred()) {
9053 p->error_indicator = 1;
9054 D(p->level--);
9055 return NULL;
9056 }
9057 goto done;
9058 }
9059 p->mark = _mark;
9060 D(fprintf(stderr, "%*c%s star_expressions[%d-%d]: %s failed!\n", p->level, ' ',
9061 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expression ','"));
9062 }
9063 { // star_expression
9064 if (p->error_indicator) {
9065 D(p->level--);
9066 return NULL;
9067 }
9068 D(fprintf(stderr, "%*c> star_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expression"));
9069 expr_ty star_expression_var;
9070 if (
9071 (star_expression_var = star_expression_rule(p)) // star_expression
9072 )
9073 {
9074 D(fprintf(stderr, "%*c+ star_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expression"));
9075 _res = star_expression_var;
9076 goto done;
9077 }
9078 p->mark = _mark;
9079 D(fprintf(stderr, "%*c%s star_expressions[%d-%d]: %s failed!\n", p->level, ' ',
9080 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expression"));
9081 }
9082 _res = NULL;
9083 done:
9084 D(p->level--);
9085 return _res;
9086}
9087
9088// star_expression: '*' bitwise_or | expression
9089static expr_ty
9090star_expression_rule(Parser *p)
9091{
9092 D(p->level++);
9093 if (p->error_indicator) {
9094 D(p->level--);
9095 return NULL;
9096 }
9097 expr_ty _res = NULL;
9098 if (_PyPegen_is_memoized(p, star_expression_type, &_res)) {
9099 D(p->level--);
9100 return _res;
9101 }
9102 int _mark = p->mark;
9103 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9104 p->error_indicator = 1;
9105 D(p->level--);
9106 return NULL;
9107 }
9108 int _start_lineno = p->tokens[_mark]->lineno;
9109 UNUSED(_start_lineno); // Only used by EXTRA macro
9110 int _start_col_offset = p->tokens[_mark]->col_offset;
9111 UNUSED(_start_col_offset); // Only used by EXTRA macro
9112 { // '*' bitwise_or
9113 if (p->error_indicator) {
9114 D(p->level--);
9115 return NULL;
9116 }
9117 D(fprintf(stderr, "%*c> star_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or"));
9118 Token * _literal;
9119 expr_ty a;
9120 if (
9121 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
9122 &&
9123 (a = bitwise_or_rule(p)) // bitwise_or
9124 )
9125 {
9126 D(fprintf(stderr, "%*c+ star_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or"));
9127 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9128 if (_token == NULL) {
9129 D(p->level--);
9130 return NULL;
9131 }
9132 int _end_lineno = _token->end_lineno;
9133 UNUSED(_end_lineno); // Only used by EXTRA macro
9134 int _end_col_offset = _token->end_col_offset;
9135 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02009136 _res = _PyAST_Starred ( a , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009137 if (_res == NULL && PyErr_Occurred()) {
9138 p->error_indicator = 1;
9139 D(p->level--);
9140 return NULL;
9141 }
9142 goto done;
9143 }
9144 p->mark = _mark;
9145 D(fprintf(stderr, "%*c%s star_expression[%d-%d]: %s failed!\n", p->level, ' ',
9146 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' bitwise_or"));
9147 }
9148 { // expression
9149 if (p->error_indicator) {
9150 D(p->level--);
9151 return NULL;
9152 }
9153 D(fprintf(stderr, "%*c> star_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression"));
9154 expr_ty expression_var;
9155 if (
9156 (expression_var = expression_rule(p)) // expression
9157 )
9158 {
9159 D(fprintf(stderr, "%*c+ star_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression"));
9160 _res = expression_var;
9161 goto done;
9162 }
9163 p->mark = _mark;
9164 D(fprintf(stderr, "%*c%s star_expression[%d-%d]: %s failed!\n", p->level, ' ',
9165 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression"));
9166 }
9167 _res = NULL;
9168 done:
9169 _PyPegen_insert_memo(p, _mark, star_expression_type, _res);
9170 D(p->level--);
9171 return _res;
9172}
9173
9174// star_named_expressions: ','.star_named_expression+ ','?
Pablo Galindoa5634c42020-09-16 19:42:00 +01009175static asdl_expr_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009176star_named_expressions_rule(Parser *p)
9177{
9178 D(p->level++);
9179 if (p->error_indicator) {
9180 D(p->level--);
9181 return NULL;
9182 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01009183 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009184 int _mark = p->mark;
9185 { // ','.star_named_expression+ ','?
9186 if (p->error_indicator) {
9187 D(p->level--);
9188 return NULL;
9189 }
9190 D(fprintf(stderr, "%*c> star_named_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.star_named_expression+ ','?"));
9191 void *_opt_var;
9192 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +01009193 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009194 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08009195 (a = (asdl_expr_seq*)_gather_87_rule(p)) // ','.star_named_expression+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009196 &&
9197 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
9198 )
9199 {
9200 D(fprintf(stderr, "%*c+ star_named_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.star_named_expression+ ','?"));
9201 _res = a;
9202 if (_res == NULL && PyErr_Occurred()) {
9203 p->error_indicator = 1;
9204 D(p->level--);
9205 return NULL;
9206 }
9207 goto done;
9208 }
9209 p->mark = _mark;
9210 D(fprintf(stderr, "%*c%s star_named_expressions[%d-%d]: %s failed!\n", p->level, ' ',
9211 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.star_named_expression+ ','?"));
9212 }
9213 _res = NULL;
9214 done:
9215 D(p->level--);
9216 return _res;
9217}
9218
9219// star_named_expression: '*' bitwise_or | named_expression
9220static expr_ty
9221star_named_expression_rule(Parser *p)
9222{
9223 D(p->level++);
9224 if (p->error_indicator) {
9225 D(p->level--);
9226 return NULL;
9227 }
9228 expr_ty _res = NULL;
9229 int _mark = p->mark;
9230 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9231 p->error_indicator = 1;
9232 D(p->level--);
9233 return NULL;
9234 }
9235 int _start_lineno = p->tokens[_mark]->lineno;
9236 UNUSED(_start_lineno); // Only used by EXTRA macro
9237 int _start_col_offset = p->tokens[_mark]->col_offset;
9238 UNUSED(_start_col_offset); // Only used by EXTRA macro
9239 { // '*' bitwise_or
9240 if (p->error_indicator) {
9241 D(p->level--);
9242 return NULL;
9243 }
9244 D(fprintf(stderr, "%*c> star_named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or"));
9245 Token * _literal;
9246 expr_ty a;
9247 if (
9248 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
9249 &&
9250 (a = bitwise_or_rule(p)) // bitwise_or
9251 )
9252 {
9253 D(fprintf(stderr, "%*c+ star_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or"));
9254 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9255 if (_token == NULL) {
9256 D(p->level--);
9257 return NULL;
9258 }
9259 int _end_lineno = _token->end_lineno;
9260 UNUSED(_end_lineno); // Only used by EXTRA macro
9261 int _end_col_offset = _token->end_col_offset;
9262 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02009263 _res = _PyAST_Starred ( a , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009264 if (_res == NULL && PyErr_Occurred()) {
9265 p->error_indicator = 1;
9266 D(p->level--);
9267 return NULL;
9268 }
9269 goto done;
9270 }
9271 p->mark = _mark;
9272 D(fprintf(stderr, "%*c%s star_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
9273 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' bitwise_or"));
9274 }
9275 { // named_expression
9276 if (p->error_indicator) {
9277 D(p->level--);
9278 return NULL;
9279 }
9280 D(fprintf(stderr, "%*c> star_named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression"));
9281 expr_ty named_expression_var;
9282 if (
9283 (named_expression_var = named_expression_rule(p)) // named_expression
9284 )
9285 {
9286 D(fprintf(stderr, "%*c+ star_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "named_expression"));
9287 _res = named_expression_var;
9288 goto done;
9289 }
9290 p->mark = _mark;
9291 D(fprintf(stderr, "%*c%s star_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
9292 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression"));
9293 }
9294 _res = NULL;
9295 done:
9296 D(p->level--);
9297 return _res;
9298}
9299
Pablo Galindob86ed8e2021-04-12 16:59:30 +01009300// named_expression: NAME ':=' ~ expression | invalid_named_expression | expression !':='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009301static expr_ty
9302named_expression_rule(Parser *p)
9303{
9304 D(p->level++);
9305 if (p->error_indicator) {
9306 D(p->level--);
9307 return NULL;
9308 }
9309 expr_ty _res = NULL;
9310 int _mark = p->mark;
9311 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9312 p->error_indicator = 1;
9313 D(p->level--);
9314 return NULL;
9315 }
9316 int _start_lineno = p->tokens[_mark]->lineno;
9317 UNUSED(_start_lineno); // Only used by EXTRA macro
9318 int _start_col_offset = p->tokens[_mark]->col_offset;
9319 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03009320 { // NAME ':=' ~ expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009321 if (p->error_indicator) {
9322 D(p->level--);
9323 return NULL;
9324 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03009325 D(fprintf(stderr, "%*c> named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME ':=' ~ expression"));
9326 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009327 Token * _literal;
9328 expr_ty a;
9329 expr_ty b;
9330 if (
9331 (a = _PyPegen_name_token(p)) // NAME
9332 &&
9333 (_literal = _PyPegen_expect_token(p, 53)) // token=':='
9334 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03009335 (_cut_var = 1)
9336 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009337 (b = expression_rule(p)) // expression
9338 )
9339 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03009340 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 +01009341 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9342 if (_token == NULL) {
9343 D(p->level--);
9344 return NULL;
9345 }
9346 int _end_lineno = _token->end_lineno;
9347 UNUSED(_end_lineno); // Only used by EXTRA macro
9348 int _end_col_offset = _token->end_col_offset;
9349 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02009350 _res = _PyAST_NamedExpr ( CHECK ( expr_ty , _PyPegen_set_expr_context ( p , a , Store ) ) , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009351 if (_res == NULL && PyErr_Occurred()) {
9352 p->error_indicator = 1;
9353 D(p->level--);
9354 return NULL;
9355 }
9356 goto done;
9357 }
9358 p->mark = _mark;
9359 D(fprintf(stderr, "%*c%s named_expression[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03009360 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME ':=' ~ expression"));
9361 if (_cut_var) {
9362 D(p->level--);
9363 return NULL;
9364 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009365 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01009366 if (p->call_invalid_rules) { // invalid_named_expression
9367 if (p->error_indicator) {
9368 D(p->level--);
9369 return NULL;
9370 }
9371 D(fprintf(stderr, "%*c> named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_named_expression"));
9372 void *invalid_named_expression_var;
9373 if (
9374 (invalid_named_expression_var = invalid_named_expression_rule(p)) // invalid_named_expression
9375 )
9376 {
9377 D(fprintf(stderr, "%*c+ named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_named_expression"));
9378 _res = invalid_named_expression_var;
9379 goto done;
9380 }
9381 p->mark = _mark;
9382 D(fprintf(stderr, "%*c%s named_expression[%d-%d]: %s failed!\n", p->level, ' ',
9383 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_named_expression"));
9384 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009385 { // expression !':='
9386 if (p->error_indicator) {
9387 D(p->level--);
9388 return NULL;
9389 }
9390 D(fprintf(stderr, "%*c> named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression !':='"));
9391 expr_ty expression_var;
9392 if (
9393 (expression_var = expression_rule(p)) // expression
9394 &&
9395 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 53) // token=':='
9396 )
9397 {
9398 D(fprintf(stderr, "%*c+ named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression !':='"));
9399 _res = expression_var;
9400 goto done;
9401 }
9402 p->mark = _mark;
9403 D(fprintf(stderr, "%*c%s named_expression[%d-%d]: %s failed!\n", p->level, ' ',
9404 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression !':='"));
9405 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009406 _res = NULL;
9407 done:
9408 D(p->level--);
9409 return _res;
9410}
9411
Pablo Galindod9151cb2021-04-13 02:32:33 +01009412// direct_named_expression: NAME ':=' ~ expression | expression !':='
9413static expr_ty
9414direct_named_expression_rule(Parser *p)
9415{
9416 D(p->level++);
9417 if (p->error_indicator) {
9418 D(p->level--);
9419 return NULL;
9420 }
9421 expr_ty _res = NULL;
9422 int _mark = p->mark;
9423 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9424 p->error_indicator = 1;
9425 D(p->level--);
9426 return NULL;
9427 }
9428 int _start_lineno = p->tokens[_mark]->lineno;
9429 UNUSED(_start_lineno); // Only used by EXTRA macro
9430 int _start_col_offset = p->tokens[_mark]->col_offset;
9431 UNUSED(_start_col_offset); // Only used by EXTRA macro
9432 { // NAME ':=' ~ expression
9433 if (p->error_indicator) {
9434 D(p->level--);
9435 return NULL;
9436 }
9437 D(fprintf(stderr, "%*c> direct_named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME ':=' ~ expression"));
9438 int _cut_var = 0;
9439 Token * _literal;
9440 expr_ty a;
9441 expr_ty b;
9442 if (
9443 (a = _PyPegen_name_token(p)) // NAME
9444 &&
9445 (_literal = _PyPegen_expect_token(p, 53)) // token=':='
9446 &&
9447 (_cut_var = 1)
9448 &&
9449 (b = expression_rule(p)) // expression
9450 )
9451 {
9452 D(fprintf(stderr, "%*c+ direct_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME ':=' ~ expression"));
9453 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9454 if (_token == NULL) {
9455 D(p->level--);
9456 return NULL;
9457 }
9458 int _end_lineno = _token->end_lineno;
9459 UNUSED(_end_lineno); // Only used by EXTRA macro
9460 int _end_col_offset = _token->end_col_offset;
9461 UNUSED(_end_col_offset); // Only used by EXTRA macro
9462 _res = _PyAST_NamedExpr ( CHECK ( expr_ty , _PyPegen_set_expr_context ( p , a , Store ) ) , b , EXTRA );
9463 if (_res == NULL && PyErr_Occurred()) {
9464 p->error_indicator = 1;
9465 D(p->level--);
9466 return NULL;
9467 }
9468 goto done;
9469 }
9470 p->mark = _mark;
9471 D(fprintf(stderr, "%*c%s direct_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
9472 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME ':=' ~ expression"));
9473 if (_cut_var) {
9474 D(p->level--);
9475 return NULL;
9476 }
9477 }
9478 { // expression !':='
9479 if (p->error_indicator) {
9480 D(p->level--);
9481 return NULL;
9482 }
9483 D(fprintf(stderr, "%*c> direct_named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression !':='"));
9484 expr_ty expression_var;
9485 if (
9486 (expression_var = expression_rule(p)) // expression
9487 &&
9488 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 53) // token=':='
9489 )
9490 {
9491 D(fprintf(stderr, "%*c+ direct_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression !':='"));
9492 _res = expression_var;
9493 goto done;
9494 }
9495 p->mark = _mark;
9496 D(fprintf(stderr, "%*c%s direct_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
9497 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression !':='"));
9498 }
9499 _res = NULL;
9500 done:
9501 D(p->level--);
9502 return _res;
9503}
9504
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009505// annotated_rhs: yield_expr | star_expressions
9506static expr_ty
9507annotated_rhs_rule(Parser *p)
9508{
9509 D(p->level++);
9510 if (p->error_indicator) {
9511 D(p->level--);
9512 return NULL;
9513 }
9514 expr_ty _res = NULL;
9515 int _mark = p->mark;
9516 { // yield_expr
9517 if (p->error_indicator) {
9518 D(p->level--);
9519 return NULL;
9520 }
9521 D(fprintf(stderr, "%*c> annotated_rhs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
9522 expr_ty yield_expr_var;
9523 if (
9524 (yield_expr_var = yield_expr_rule(p)) // yield_expr
9525 )
9526 {
9527 D(fprintf(stderr, "%*c+ annotated_rhs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
9528 _res = yield_expr_var;
9529 goto done;
9530 }
9531 p->mark = _mark;
9532 D(fprintf(stderr, "%*c%s annotated_rhs[%d-%d]: %s failed!\n", p->level, ' ',
9533 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
9534 }
9535 { // star_expressions
9536 if (p->error_indicator) {
9537 D(p->level--);
9538 return NULL;
9539 }
9540 D(fprintf(stderr, "%*c> annotated_rhs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
9541 expr_ty star_expressions_var;
9542 if (
9543 (star_expressions_var = star_expressions_rule(p)) // star_expressions
9544 )
9545 {
9546 D(fprintf(stderr, "%*c+ annotated_rhs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
9547 _res = star_expressions_var;
9548 goto done;
9549 }
9550 p->mark = _mark;
9551 D(fprintf(stderr, "%*c%s annotated_rhs[%d-%d]: %s failed!\n", p->level, ' ',
9552 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
9553 }
9554 _res = NULL;
9555 done:
9556 D(p->level--);
9557 return _res;
9558}
9559
9560// expressions: expression ((',' expression))+ ','? | expression ',' | expression
9561static expr_ty
9562expressions_rule(Parser *p)
9563{
9564 D(p->level++);
9565 if (p->error_indicator) {
9566 D(p->level--);
9567 return NULL;
9568 }
9569 expr_ty _res = NULL;
9570 int _mark = p->mark;
9571 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9572 p->error_indicator = 1;
9573 D(p->level--);
9574 return NULL;
9575 }
9576 int _start_lineno = p->tokens[_mark]->lineno;
9577 UNUSED(_start_lineno); // Only used by EXTRA macro
9578 int _start_col_offset = p->tokens[_mark]->col_offset;
9579 UNUSED(_start_col_offset); // Only used by EXTRA macro
9580 { // expression ((',' expression))+ ','?
9581 if (p->error_indicator) {
9582 D(p->level--);
9583 return NULL;
9584 }
9585 D(fprintf(stderr, "%*c> expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ((',' expression))+ ','?"));
9586 void *_opt_var;
9587 UNUSED(_opt_var); // Silence compiler warnings
9588 expr_ty a;
9589 asdl_seq * b;
9590 if (
9591 (a = expression_rule(p)) // expression
9592 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08009593 (b = _loop1_89_rule(p)) // ((',' expression))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009594 &&
9595 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
9596 )
9597 {
9598 D(fprintf(stderr, "%*c+ expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ((',' expression))+ ','?"));
9599 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9600 if (_token == NULL) {
9601 D(p->level--);
9602 return NULL;
9603 }
9604 int _end_lineno = _token->end_lineno;
9605 UNUSED(_end_lineno); // Only used by EXTRA macro
9606 int _end_col_offset = _token->end_col_offset;
9607 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02009608 _res = _PyAST_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , a , b ) ) , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009609 if (_res == NULL && PyErr_Occurred()) {
9610 p->error_indicator = 1;
9611 D(p->level--);
9612 return NULL;
9613 }
9614 goto done;
9615 }
9616 p->mark = _mark;
9617 D(fprintf(stderr, "%*c%s expressions[%d-%d]: %s failed!\n", p->level, ' ',
9618 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ((',' expression))+ ','?"));
9619 }
9620 { // expression ','
9621 if (p->error_indicator) {
9622 D(p->level--);
9623 return NULL;
9624 }
9625 D(fprintf(stderr, "%*c> expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ','"));
9626 Token * _literal;
9627 expr_ty a;
9628 if (
9629 (a = expression_rule(p)) // expression
9630 &&
9631 (_literal = _PyPegen_expect_token(p, 12)) // token=','
9632 )
9633 {
9634 D(fprintf(stderr, "%*c+ expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ','"));
9635 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9636 if (_token == NULL) {
9637 D(p->level--);
9638 return NULL;
9639 }
9640 int _end_lineno = _token->end_lineno;
9641 UNUSED(_end_lineno); // Only used by EXTRA macro
9642 int _end_col_offset = _token->end_col_offset;
9643 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02009644 _res = _PyAST_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_singleton_seq ( p , a ) ) , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009645 if (_res == NULL && PyErr_Occurred()) {
9646 p->error_indicator = 1;
9647 D(p->level--);
9648 return NULL;
9649 }
9650 goto done;
9651 }
9652 p->mark = _mark;
9653 D(fprintf(stderr, "%*c%s expressions[%d-%d]: %s failed!\n", p->level, ' ',
9654 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ','"));
9655 }
9656 { // expression
9657 if (p->error_indicator) {
9658 D(p->level--);
9659 return NULL;
9660 }
9661 D(fprintf(stderr, "%*c> expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression"));
9662 expr_ty expression_var;
9663 if (
9664 (expression_var = expression_rule(p)) // expression
9665 )
9666 {
9667 D(fprintf(stderr, "%*c+ expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression"));
9668 _res = expression_var;
9669 goto done;
9670 }
9671 p->mark = _mark;
9672 D(fprintf(stderr, "%*c%s expressions[%d-%d]: %s failed!\n", p->level, ' ',
9673 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression"));
9674 }
9675 _res = NULL;
9676 done:
9677 D(p->level--);
9678 return _res;
9679}
9680
9681// expression: disjunction 'if' disjunction 'else' expression | disjunction | lambdef
9682static expr_ty
9683expression_rule(Parser *p)
9684{
9685 D(p->level++);
9686 if (p->error_indicator) {
9687 D(p->level--);
9688 return NULL;
9689 }
9690 expr_ty _res = NULL;
9691 if (_PyPegen_is_memoized(p, expression_type, &_res)) {
9692 D(p->level--);
9693 return _res;
9694 }
9695 int _mark = p->mark;
9696 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9697 p->error_indicator = 1;
9698 D(p->level--);
9699 return NULL;
9700 }
9701 int _start_lineno = p->tokens[_mark]->lineno;
9702 UNUSED(_start_lineno); // Only used by EXTRA macro
9703 int _start_col_offset = p->tokens[_mark]->col_offset;
9704 UNUSED(_start_col_offset); // Only used by EXTRA macro
9705 { // disjunction 'if' disjunction 'else' expression
9706 if (p->error_indicator) {
9707 D(p->level--);
9708 return NULL;
9709 }
9710 D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction 'else' expression"));
9711 Token * _keyword;
9712 Token * _keyword_1;
9713 expr_ty a;
9714 expr_ty b;
9715 expr_ty c;
9716 if (
9717 (a = disjunction_rule(p)) // disjunction
9718 &&
9719 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
9720 &&
9721 (b = disjunction_rule(p)) // disjunction
9722 &&
9723 (_keyword_1 = _PyPegen_expect_token(p, 516)) // token='else'
9724 &&
9725 (c = expression_rule(p)) // expression
9726 )
9727 {
9728 D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction 'else' expression"));
9729 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9730 if (_token == NULL) {
9731 D(p->level--);
9732 return NULL;
9733 }
9734 int _end_lineno = _token->end_lineno;
9735 UNUSED(_end_lineno); // Only used by EXTRA macro
9736 int _end_col_offset = _token->end_col_offset;
9737 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02009738 _res = _PyAST_IfExp ( b , a , c , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009739 if (_res == NULL && PyErr_Occurred()) {
9740 p->error_indicator = 1;
9741 D(p->level--);
9742 return NULL;
9743 }
9744 goto done;
9745 }
9746 p->mark = _mark;
9747 D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
9748 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction 'if' disjunction 'else' expression"));
9749 }
9750 { // disjunction
9751 if (p->error_indicator) {
9752 D(p->level--);
9753 return NULL;
9754 }
9755 D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "disjunction"));
9756 expr_ty disjunction_var;
9757 if (
9758 (disjunction_var = disjunction_rule(p)) // disjunction
9759 )
9760 {
9761 D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "disjunction"));
9762 _res = disjunction_var;
9763 goto done;
9764 }
9765 p->mark = _mark;
9766 D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
9767 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction"));
9768 }
9769 { // lambdef
9770 if (p->error_indicator) {
9771 D(p->level--);
9772 return NULL;
9773 }
9774 D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambdef"));
9775 expr_ty lambdef_var;
9776 if (
9777 (lambdef_var = lambdef_rule(p)) // lambdef
9778 )
9779 {
9780 D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambdef"));
9781 _res = lambdef_var;
9782 goto done;
9783 }
9784 p->mark = _mark;
9785 D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
9786 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambdef"));
9787 }
9788 _res = NULL;
9789 done:
9790 _PyPegen_insert_memo(p, _mark, expression_type, _res);
9791 D(p->level--);
9792 return _res;
9793}
9794
9795// lambdef: 'lambda' lambda_params? ':' expression
9796static expr_ty
9797lambdef_rule(Parser *p)
9798{
9799 D(p->level++);
9800 if (p->error_indicator) {
9801 D(p->level--);
9802 return NULL;
9803 }
9804 expr_ty _res = NULL;
9805 int _mark = p->mark;
9806 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9807 p->error_indicator = 1;
9808 D(p->level--);
9809 return NULL;
9810 }
9811 int _start_lineno = p->tokens[_mark]->lineno;
9812 UNUSED(_start_lineno); // Only used by EXTRA macro
9813 int _start_col_offset = p->tokens[_mark]->col_offset;
9814 UNUSED(_start_col_offset); // Only used by EXTRA macro
9815 { // 'lambda' lambda_params? ':' expression
9816 if (p->error_indicator) {
9817 D(p->level--);
9818 return NULL;
9819 }
9820 D(fprintf(stderr, "%*c> lambdef[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'lambda' lambda_params? ':' expression"));
9821 Token * _keyword;
9822 Token * _literal;
9823 void *a;
9824 expr_ty b;
9825 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08009826 (_keyword = _PyPegen_expect_token(p, 528)) // token='lambda'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009827 &&
9828 (a = lambda_params_rule(p), 1) // lambda_params?
9829 &&
9830 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
9831 &&
9832 (b = expression_rule(p)) // expression
9833 )
9834 {
9835 D(fprintf(stderr, "%*c+ lambdef[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'lambda' lambda_params? ':' expression"));
9836 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9837 if (_token == NULL) {
9838 D(p->level--);
9839 return NULL;
9840 }
9841 int _end_lineno = _token->end_lineno;
9842 UNUSED(_end_lineno); // Only used by EXTRA macro
9843 int _end_col_offset = _token->end_col_offset;
9844 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02009845 _res = _PyAST_Lambda ( ( a ) ? a : CHECK ( arguments_ty , _PyPegen_empty_arguments ( p ) ) , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009846 if (_res == NULL && PyErr_Occurred()) {
9847 p->error_indicator = 1;
9848 D(p->level--);
9849 return NULL;
9850 }
9851 goto done;
9852 }
9853 p->mark = _mark;
9854 D(fprintf(stderr, "%*c%s lambdef[%d-%d]: %s failed!\n", p->level, ' ',
9855 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'lambda' lambda_params? ':' expression"));
9856 }
9857 _res = NULL;
9858 done:
9859 D(p->level--);
9860 return _res;
9861}
9862
9863// lambda_params: invalid_lambda_parameters | lambda_parameters
9864static arguments_ty
9865lambda_params_rule(Parser *p)
9866{
9867 D(p->level++);
9868 if (p->error_indicator) {
9869 D(p->level--);
9870 return NULL;
9871 }
9872 arguments_ty _res = NULL;
9873 int _mark = p->mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02009874 if (p->call_invalid_rules) { // invalid_lambda_parameters
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009875 if (p->error_indicator) {
9876 D(p->level--);
9877 return NULL;
9878 }
9879 D(fprintf(stderr, "%*c> lambda_params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_lambda_parameters"));
9880 void *invalid_lambda_parameters_var;
9881 if (
9882 (invalid_lambda_parameters_var = invalid_lambda_parameters_rule(p)) // invalid_lambda_parameters
9883 )
9884 {
9885 D(fprintf(stderr, "%*c+ lambda_params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_lambda_parameters"));
9886 _res = invalid_lambda_parameters_var;
9887 goto done;
9888 }
9889 p->mark = _mark;
9890 D(fprintf(stderr, "%*c%s lambda_params[%d-%d]: %s failed!\n", p->level, ' ',
9891 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_lambda_parameters"));
9892 }
9893 { // lambda_parameters
9894 if (p->error_indicator) {
9895 D(p->level--);
9896 return NULL;
9897 }
9898 D(fprintf(stderr, "%*c> lambda_params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_parameters"));
9899 arguments_ty lambda_parameters_var;
9900 if (
9901 (lambda_parameters_var = lambda_parameters_rule(p)) // lambda_parameters
9902 )
9903 {
9904 D(fprintf(stderr, "%*c+ lambda_params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_parameters"));
9905 _res = lambda_parameters_var;
9906 goto done;
9907 }
9908 p->mark = _mark;
9909 D(fprintf(stderr, "%*c%s lambda_params[%d-%d]: %s failed!\n", p->level, ' ',
9910 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_parameters"));
9911 }
9912 _res = NULL;
9913 done:
9914 D(p->level--);
9915 return _res;
9916}
9917
9918// lambda_parameters:
9919// | lambda_slash_no_default lambda_param_no_default* lambda_param_with_default* lambda_star_etc?
9920// | lambda_slash_with_default lambda_param_with_default* lambda_star_etc?
9921// | lambda_param_no_default+ lambda_param_with_default* lambda_star_etc?
9922// | lambda_param_with_default+ lambda_star_etc?
9923// | lambda_star_etc
9924static arguments_ty
9925lambda_parameters_rule(Parser *p)
9926{
9927 D(p->level++);
9928 if (p->error_indicator) {
9929 D(p->level--);
9930 return NULL;
9931 }
9932 arguments_ty _res = NULL;
9933 int _mark = p->mark;
9934 { // lambda_slash_no_default lambda_param_no_default* lambda_param_with_default* lambda_star_etc?
9935 if (p->error_indicator) {
9936 D(p->level--);
9937 return NULL;
9938 }
9939 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 +01009940 asdl_arg_seq* a;
9941 asdl_arg_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009942 asdl_seq * c;
9943 void *d;
9944 if (
9945 (a = lambda_slash_no_default_rule(p)) // lambda_slash_no_default
9946 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08009947 (b = (asdl_arg_seq*)_loop0_90_rule(p)) // lambda_param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009948 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08009949 (c = _loop0_91_rule(p)) // lambda_param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009950 &&
9951 (d = lambda_star_etc_rule(p), 1) // lambda_star_etc?
9952 )
9953 {
9954 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?"));
9955 _res = _PyPegen_make_arguments ( p , a , NULL , b , c , d );
9956 if (_res == NULL && PyErr_Occurred()) {
9957 p->error_indicator = 1;
9958 D(p->level--);
9959 return NULL;
9960 }
9961 goto done;
9962 }
9963 p->mark = _mark;
9964 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
9965 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_slash_no_default lambda_param_no_default* lambda_param_with_default* lambda_star_etc?"));
9966 }
9967 { // lambda_slash_with_default lambda_param_with_default* lambda_star_etc?
9968 if (p->error_indicator) {
9969 D(p->level--);
9970 return NULL;
9971 }
9972 D(fprintf(stderr, "%*c> lambda_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_slash_with_default lambda_param_with_default* lambda_star_etc?"));
9973 SlashWithDefault* a;
9974 asdl_seq * b;
9975 void *c;
9976 if (
9977 (a = lambda_slash_with_default_rule(p)) // lambda_slash_with_default
9978 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08009979 (b = _loop0_92_rule(p)) // lambda_param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009980 &&
9981 (c = lambda_star_etc_rule(p), 1) // lambda_star_etc?
9982 )
9983 {
9984 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?"));
9985 _res = _PyPegen_make_arguments ( p , NULL , a , NULL , b , c );
9986 if (_res == NULL && PyErr_Occurred()) {
9987 p->error_indicator = 1;
9988 D(p->level--);
9989 return NULL;
9990 }
9991 goto done;
9992 }
9993 p->mark = _mark;
9994 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
9995 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_slash_with_default lambda_param_with_default* lambda_star_etc?"));
9996 }
9997 { // lambda_param_no_default+ lambda_param_with_default* lambda_star_etc?
9998 if (p->error_indicator) {
9999 D(p->level--);
10000 return NULL;
10001 }
10002 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 +010010003 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010004 asdl_seq * b;
10005 void *c;
10006 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080010007 (a = (asdl_arg_seq*)_loop1_93_rule(p)) // lambda_param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010008 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080010009 (b = _loop0_94_rule(p)) // lambda_param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010010 &&
10011 (c = lambda_star_etc_rule(p), 1) // lambda_star_etc?
10012 )
10013 {
10014 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?"));
10015 _res = _PyPegen_make_arguments ( p , NULL , NULL , a , b , c );
10016 if (_res == NULL && PyErr_Occurred()) {
10017 p->error_indicator = 1;
10018 D(p->level--);
10019 return NULL;
10020 }
10021 goto done;
10022 }
10023 p->mark = _mark;
10024 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
10025 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default+ lambda_param_with_default* lambda_star_etc?"));
10026 }
10027 { // lambda_param_with_default+ lambda_star_etc?
10028 if (p->error_indicator) {
10029 D(p->level--);
10030 return NULL;
10031 }
10032 D(fprintf(stderr, "%*c> lambda_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+ lambda_star_etc?"));
10033 asdl_seq * a;
10034 void *b;
10035 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080010036 (a = _loop1_95_rule(p)) // lambda_param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010037 &&
10038 (b = lambda_star_etc_rule(p), 1) // lambda_star_etc?
10039 )
10040 {
10041 D(fprintf(stderr, "%*c+ lambda_parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+ lambda_star_etc?"));
10042 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , a , b );
10043 if (_res == NULL && PyErr_Occurred()) {
10044 p->error_indicator = 1;
10045 D(p->level--);
10046 return NULL;
10047 }
10048 goto done;
10049 }
10050 p->mark = _mark;
10051 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
10052 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default+ lambda_star_etc?"));
10053 }
10054 { // lambda_star_etc
10055 if (p->error_indicator) {
10056 D(p->level--);
10057 return NULL;
10058 }
10059 D(fprintf(stderr, "%*c> lambda_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_star_etc"));
10060 StarEtc* a;
10061 if (
10062 (a = lambda_star_etc_rule(p)) // lambda_star_etc
10063 )
10064 {
10065 D(fprintf(stderr, "%*c+ lambda_parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_star_etc"));
10066 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , NULL , a );
10067 if (_res == NULL && PyErr_Occurred()) {
10068 p->error_indicator = 1;
10069 D(p->level--);
10070 return NULL;
10071 }
10072 goto done;
10073 }
10074 p->mark = _mark;
10075 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
10076 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_star_etc"));
10077 }
10078 _res = NULL;
10079 done:
10080 D(p->level--);
10081 return _res;
10082}
10083
10084// lambda_slash_no_default:
10085// | lambda_param_no_default+ '/' ','
10086// | lambda_param_no_default+ '/' &':'
Pablo Galindoa5634c42020-09-16 19:42:00 +010010087static asdl_arg_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010088lambda_slash_no_default_rule(Parser *p)
10089{
10090 D(p->level++);
10091 if (p->error_indicator) {
10092 D(p->level--);
10093 return NULL;
10094 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010010095 asdl_arg_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010096 int _mark = p->mark;
10097 { // lambda_param_no_default+ '/' ','
10098 if (p->error_indicator) {
10099 D(p->level--);
10100 return NULL;
10101 }
10102 D(fprintf(stderr, "%*c> lambda_slash_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ '/' ','"));
10103 Token * _literal;
10104 Token * _literal_1;
Pablo Galindoa5634c42020-09-16 19:42:00 +010010105 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010106 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080010107 (a = (asdl_arg_seq*)_loop1_96_rule(p)) // lambda_param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010108 &&
10109 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
10110 &&
10111 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
10112 )
10113 {
10114 D(fprintf(stderr, "%*c+ lambda_slash_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ '/' ','"));
10115 _res = a;
10116 if (_res == NULL && PyErr_Occurred()) {
10117 p->error_indicator = 1;
10118 D(p->level--);
10119 return NULL;
10120 }
10121 goto done;
10122 }
10123 p->mark = _mark;
10124 D(fprintf(stderr, "%*c%s lambda_slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
10125 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default+ '/' ','"));
10126 }
10127 { // lambda_param_no_default+ '/' &':'
10128 if (p->error_indicator) {
10129 D(p->level--);
10130 return NULL;
10131 }
10132 D(fprintf(stderr, "%*c> lambda_slash_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ '/' &':'"));
10133 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +010010134 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010135 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080010136 (a = (asdl_arg_seq*)_loop1_97_rule(p)) // lambda_param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010137 &&
10138 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
10139 &&
10140 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
10141 )
10142 {
10143 D(fprintf(stderr, "%*c+ lambda_slash_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ '/' &':'"));
10144 _res = a;
10145 if (_res == NULL && PyErr_Occurred()) {
10146 p->error_indicator = 1;
10147 D(p->level--);
10148 return NULL;
10149 }
10150 goto done;
10151 }
10152 p->mark = _mark;
10153 D(fprintf(stderr, "%*c%s lambda_slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
10154 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default+ '/' &':'"));
10155 }
10156 _res = NULL;
10157 done:
10158 D(p->level--);
10159 return _res;
10160}
10161
10162// lambda_slash_with_default:
10163// | lambda_param_no_default* lambda_param_with_default+ '/' ','
10164// | lambda_param_no_default* lambda_param_with_default+ '/' &':'
10165static SlashWithDefault*
10166lambda_slash_with_default_rule(Parser *p)
10167{
10168 D(p->level++);
10169 if (p->error_indicator) {
10170 D(p->level--);
10171 return NULL;
10172 }
10173 SlashWithDefault* _res = NULL;
10174 int _mark = p->mark;
10175 { // lambda_param_no_default* lambda_param_with_default+ '/' ','
10176 if (p->error_indicator) {
10177 D(p->level--);
10178 return NULL;
10179 }
10180 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+ '/' ','"));
10181 Token * _literal;
10182 Token * _literal_1;
10183 asdl_seq * a;
10184 asdl_seq * b;
10185 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080010186 (a = _loop0_98_rule(p)) // lambda_param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010187 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080010188 (b = _loop1_99_rule(p)) // lambda_param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010189 &&
10190 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
10191 &&
10192 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
10193 )
10194 {
10195 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 +010010196 _res = _PyPegen_slash_with_default ( p , ( asdl_arg_seq * ) a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010197 if (_res == NULL && PyErr_Occurred()) {
10198 p->error_indicator = 1;
10199 D(p->level--);
10200 return NULL;
10201 }
10202 goto done;
10203 }
10204 p->mark = _mark;
10205 D(fprintf(stderr, "%*c%s lambda_slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
10206 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default* lambda_param_with_default+ '/' ','"));
10207 }
10208 { // lambda_param_no_default* lambda_param_with_default+ '/' &':'
10209 if (p->error_indicator) {
10210 D(p->level--);
10211 return NULL;
10212 }
10213 D(fprintf(stderr, "%*c> lambda_slash_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default* lambda_param_with_default+ '/' &':'"));
10214 Token * _literal;
10215 asdl_seq * a;
10216 asdl_seq * b;
10217 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080010218 (a = _loop0_100_rule(p)) // lambda_param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010219 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080010220 (b = _loop1_101_rule(p)) // lambda_param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010221 &&
10222 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
10223 &&
10224 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
10225 )
10226 {
10227 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 +010010228 _res = _PyPegen_slash_with_default ( p , ( asdl_arg_seq * ) a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010229 if (_res == NULL && PyErr_Occurred()) {
10230 p->error_indicator = 1;
10231 D(p->level--);
10232 return NULL;
10233 }
10234 goto done;
10235 }
10236 p->mark = _mark;
10237 D(fprintf(stderr, "%*c%s lambda_slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
10238 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default* lambda_param_with_default+ '/' &':'"));
10239 }
10240 _res = NULL;
10241 done:
10242 D(p->level--);
10243 return _res;
10244}
10245
10246// lambda_star_etc:
10247// | '*' lambda_param_no_default lambda_param_maybe_default* lambda_kwds?
10248// | '*' ',' lambda_param_maybe_default+ lambda_kwds?
10249// | lambda_kwds
10250// | invalid_lambda_star_etc
10251static StarEtc*
10252lambda_star_etc_rule(Parser *p)
10253{
10254 D(p->level++);
10255 if (p->error_indicator) {
10256 D(p->level--);
10257 return NULL;
10258 }
10259 StarEtc* _res = NULL;
10260 int _mark = p->mark;
10261 { // '*' lambda_param_no_default lambda_param_maybe_default* lambda_kwds?
10262 if (p->error_indicator) {
10263 D(p->level--);
10264 return NULL;
10265 }
10266 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?"));
10267 Token * _literal;
10268 arg_ty a;
10269 asdl_seq * b;
10270 void *c;
10271 if (
10272 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
10273 &&
10274 (a = lambda_param_no_default_rule(p)) // lambda_param_no_default
10275 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080010276 (b = _loop0_102_rule(p)) // lambda_param_maybe_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010277 &&
10278 (c = lambda_kwds_rule(p), 1) // lambda_kwds?
10279 )
10280 {
10281 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?"));
10282 _res = _PyPegen_star_etc ( p , a , b , c );
10283 if (_res == NULL && PyErr_Occurred()) {
10284 p->error_indicator = 1;
10285 D(p->level--);
10286 return NULL;
10287 }
10288 goto done;
10289 }
10290 p->mark = _mark;
10291 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
10292 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' lambda_param_no_default lambda_param_maybe_default* lambda_kwds?"));
10293 }
10294 { // '*' ',' lambda_param_maybe_default+ lambda_kwds?
10295 if (p->error_indicator) {
10296 D(p->level--);
10297 return NULL;
10298 }
10299 D(fprintf(stderr, "%*c> lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' ',' lambda_param_maybe_default+ lambda_kwds?"));
10300 Token * _literal;
10301 Token * _literal_1;
10302 asdl_seq * b;
10303 void *c;
10304 if (
10305 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
10306 &&
10307 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
10308 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080010309 (b = _loop1_103_rule(p)) // lambda_param_maybe_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010310 &&
10311 (c = lambda_kwds_rule(p), 1) // lambda_kwds?
10312 )
10313 {
10314 D(fprintf(stderr, "%*c+ lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' ',' lambda_param_maybe_default+ lambda_kwds?"));
10315 _res = _PyPegen_star_etc ( p , NULL , b , c );
10316 if (_res == NULL && PyErr_Occurred()) {
10317 p->error_indicator = 1;
10318 D(p->level--);
10319 return NULL;
10320 }
10321 goto done;
10322 }
10323 p->mark = _mark;
10324 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
10325 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' ',' lambda_param_maybe_default+ lambda_kwds?"));
10326 }
10327 { // lambda_kwds
10328 if (p->error_indicator) {
10329 D(p->level--);
10330 return NULL;
10331 }
10332 D(fprintf(stderr, "%*c> lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_kwds"));
10333 arg_ty a;
10334 if (
10335 (a = lambda_kwds_rule(p)) // lambda_kwds
10336 )
10337 {
10338 D(fprintf(stderr, "%*c+ lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_kwds"));
10339 _res = _PyPegen_star_etc ( p , NULL , NULL , a );
10340 if (_res == NULL && PyErr_Occurred()) {
10341 p->error_indicator = 1;
10342 D(p->level--);
10343 return NULL;
10344 }
10345 goto done;
10346 }
10347 p->mark = _mark;
10348 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
10349 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_kwds"));
10350 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020010351 if (p->call_invalid_rules) { // invalid_lambda_star_etc
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010352 if (p->error_indicator) {
10353 D(p->level--);
10354 return NULL;
10355 }
10356 D(fprintf(stderr, "%*c> lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_lambda_star_etc"));
10357 void *invalid_lambda_star_etc_var;
10358 if (
10359 (invalid_lambda_star_etc_var = invalid_lambda_star_etc_rule(p)) // invalid_lambda_star_etc
10360 )
10361 {
10362 D(fprintf(stderr, "%*c+ lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_lambda_star_etc"));
10363 _res = invalid_lambda_star_etc_var;
10364 goto done;
10365 }
10366 p->mark = _mark;
10367 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
10368 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_lambda_star_etc"));
10369 }
10370 _res = NULL;
10371 done:
10372 D(p->level--);
10373 return _res;
10374}
10375
10376// lambda_kwds: '**' lambda_param_no_default
10377static arg_ty
10378lambda_kwds_rule(Parser *p)
10379{
10380 D(p->level++);
10381 if (p->error_indicator) {
10382 D(p->level--);
10383 return NULL;
10384 }
10385 arg_ty _res = NULL;
10386 int _mark = p->mark;
10387 { // '**' lambda_param_no_default
10388 if (p->error_indicator) {
10389 D(p->level--);
10390 return NULL;
10391 }
10392 D(fprintf(stderr, "%*c> lambda_kwds[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' lambda_param_no_default"));
10393 Token * _literal;
10394 arg_ty a;
10395 if (
10396 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
10397 &&
10398 (a = lambda_param_no_default_rule(p)) // lambda_param_no_default
10399 )
10400 {
10401 D(fprintf(stderr, "%*c+ lambda_kwds[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' lambda_param_no_default"));
10402 _res = a;
10403 if (_res == NULL && PyErr_Occurred()) {
10404 p->error_indicator = 1;
10405 D(p->level--);
10406 return NULL;
10407 }
10408 goto done;
10409 }
10410 p->mark = _mark;
10411 D(fprintf(stderr, "%*c%s lambda_kwds[%d-%d]: %s failed!\n", p->level, ' ',
10412 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' lambda_param_no_default"));
10413 }
10414 _res = NULL;
10415 done:
10416 D(p->level--);
10417 return _res;
10418}
10419
10420// lambda_param_no_default: lambda_param ',' | lambda_param &':'
10421static arg_ty
10422lambda_param_no_default_rule(Parser *p)
10423{
10424 D(p->level++);
10425 if (p->error_indicator) {
10426 D(p->level--);
10427 return NULL;
10428 }
10429 arg_ty _res = NULL;
10430 int _mark = p->mark;
10431 { // lambda_param ','
10432 if (p->error_indicator) {
10433 D(p->level--);
10434 return NULL;
10435 }
10436 D(fprintf(stderr, "%*c> lambda_param_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param ','"));
10437 Token * _literal;
10438 arg_ty a;
10439 if (
10440 (a = lambda_param_rule(p)) // lambda_param
10441 &&
10442 (_literal = _PyPegen_expect_token(p, 12)) // token=','
10443 )
10444 {
10445 D(fprintf(stderr, "%*c+ lambda_param_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param ','"));
10446 _res = a;
10447 if (_res == NULL && PyErr_Occurred()) {
10448 p->error_indicator = 1;
10449 D(p->level--);
10450 return NULL;
10451 }
10452 goto done;
10453 }
10454 p->mark = _mark;
10455 D(fprintf(stderr, "%*c%s lambda_param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
10456 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param ','"));
10457 }
10458 { // lambda_param &':'
10459 if (p->error_indicator) {
10460 D(p->level--);
10461 return NULL;
10462 }
10463 D(fprintf(stderr, "%*c> lambda_param_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param &':'"));
10464 arg_ty a;
10465 if (
10466 (a = lambda_param_rule(p)) // lambda_param
10467 &&
10468 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
10469 )
10470 {
10471 D(fprintf(stderr, "%*c+ lambda_param_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param &':'"));
10472 _res = a;
10473 if (_res == NULL && PyErr_Occurred()) {
10474 p->error_indicator = 1;
10475 D(p->level--);
10476 return NULL;
10477 }
10478 goto done;
10479 }
10480 p->mark = _mark;
10481 D(fprintf(stderr, "%*c%s lambda_param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
10482 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param &':'"));
10483 }
10484 _res = NULL;
10485 done:
10486 D(p->level--);
10487 return _res;
10488}
10489
10490// lambda_param_with_default: lambda_param default ',' | lambda_param default &':'
10491static NameDefaultPair*
10492lambda_param_with_default_rule(Parser *p)
10493{
10494 D(p->level++);
10495 if (p->error_indicator) {
10496 D(p->level--);
10497 return NULL;
10498 }
10499 NameDefaultPair* _res = NULL;
10500 int _mark = p->mark;
10501 { // lambda_param default ','
10502 if (p->error_indicator) {
10503 D(p->level--);
10504 return NULL;
10505 }
10506 D(fprintf(stderr, "%*c> lambda_param_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param default ','"));
10507 Token * _literal;
10508 arg_ty a;
10509 expr_ty c;
10510 if (
10511 (a = lambda_param_rule(p)) // lambda_param
10512 &&
10513 (c = default_rule(p)) // default
10514 &&
10515 (_literal = _PyPegen_expect_token(p, 12)) // token=','
10516 )
10517 {
10518 D(fprintf(stderr, "%*c+ lambda_param_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param default ','"));
10519 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
10520 if (_res == NULL && PyErr_Occurred()) {
10521 p->error_indicator = 1;
10522 D(p->level--);
10523 return NULL;
10524 }
10525 goto done;
10526 }
10527 p->mark = _mark;
10528 D(fprintf(stderr, "%*c%s lambda_param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
10529 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default ','"));
10530 }
10531 { // lambda_param default &':'
10532 if (p->error_indicator) {
10533 D(p->level--);
10534 return NULL;
10535 }
10536 D(fprintf(stderr, "%*c> lambda_param_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param default &':'"));
10537 arg_ty a;
10538 expr_ty c;
10539 if (
10540 (a = lambda_param_rule(p)) // lambda_param
10541 &&
10542 (c = default_rule(p)) // default
10543 &&
10544 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
10545 )
10546 {
10547 D(fprintf(stderr, "%*c+ lambda_param_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param default &':'"));
10548 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
10549 if (_res == NULL && PyErr_Occurred()) {
10550 p->error_indicator = 1;
10551 D(p->level--);
10552 return NULL;
10553 }
10554 goto done;
10555 }
10556 p->mark = _mark;
10557 D(fprintf(stderr, "%*c%s lambda_param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
10558 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default &':'"));
10559 }
10560 _res = NULL;
10561 done:
10562 D(p->level--);
10563 return _res;
10564}
10565
10566// lambda_param_maybe_default: lambda_param default? ',' | lambda_param default? &':'
10567static NameDefaultPair*
10568lambda_param_maybe_default_rule(Parser *p)
10569{
10570 D(p->level++);
10571 if (p->error_indicator) {
10572 D(p->level--);
10573 return NULL;
10574 }
10575 NameDefaultPair* _res = NULL;
10576 int _mark = p->mark;
10577 { // lambda_param default? ','
10578 if (p->error_indicator) {
10579 D(p->level--);
10580 return NULL;
10581 }
10582 D(fprintf(stderr, "%*c> lambda_param_maybe_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param default? ','"));
10583 Token * _literal;
10584 arg_ty a;
10585 void *c;
10586 if (
10587 (a = lambda_param_rule(p)) // lambda_param
10588 &&
10589 (c = default_rule(p), 1) // default?
10590 &&
10591 (_literal = _PyPegen_expect_token(p, 12)) // token=','
10592 )
10593 {
10594 D(fprintf(stderr, "%*c+ lambda_param_maybe_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param default? ','"));
10595 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
10596 if (_res == NULL && PyErr_Occurred()) {
10597 p->error_indicator = 1;
10598 D(p->level--);
10599 return NULL;
10600 }
10601 goto done;
10602 }
10603 p->mark = _mark;
10604 D(fprintf(stderr, "%*c%s lambda_param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
10605 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default? ','"));
10606 }
10607 { // lambda_param default? &':'
10608 if (p->error_indicator) {
10609 D(p->level--);
10610 return NULL;
10611 }
10612 D(fprintf(stderr, "%*c> lambda_param_maybe_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param default? &':'"));
10613 arg_ty a;
10614 void *c;
10615 if (
10616 (a = lambda_param_rule(p)) // lambda_param
10617 &&
10618 (c = default_rule(p), 1) // default?
10619 &&
10620 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
10621 )
10622 {
10623 D(fprintf(stderr, "%*c+ lambda_param_maybe_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param default? &':'"));
10624 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
10625 if (_res == NULL && PyErr_Occurred()) {
10626 p->error_indicator = 1;
10627 D(p->level--);
10628 return NULL;
10629 }
10630 goto done;
10631 }
10632 p->mark = _mark;
10633 D(fprintf(stderr, "%*c%s lambda_param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
10634 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default? &':'"));
10635 }
10636 _res = NULL;
10637 done:
10638 D(p->level--);
10639 return _res;
10640}
10641
10642// lambda_param: NAME
10643static arg_ty
10644lambda_param_rule(Parser *p)
10645{
10646 D(p->level++);
10647 if (p->error_indicator) {
10648 D(p->level--);
10649 return NULL;
10650 }
10651 arg_ty _res = NULL;
10652 int _mark = p->mark;
10653 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10654 p->error_indicator = 1;
10655 D(p->level--);
10656 return NULL;
10657 }
10658 int _start_lineno = p->tokens[_mark]->lineno;
10659 UNUSED(_start_lineno); // Only used by EXTRA macro
10660 int _start_col_offset = p->tokens[_mark]->col_offset;
10661 UNUSED(_start_col_offset); // Only used by EXTRA macro
10662 { // NAME
10663 if (p->error_indicator) {
10664 D(p->level--);
10665 return NULL;
10666 }
10667 D(fprintf(stderr, "%*c> lambda_param[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
10668 expr_ty a;
10669 if (
10670 (a = _PyPegen_name_token(p)) // NAME
10671 )
10672 {
10673 D(fprintf(stderr, "%*c+ lambda_param[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
10674 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10675 if (_token == NULL) {
10676 D(p->level--);
10677 return NULL;
10678 }
10679 int _end_lineno = _token->end_lineno;
10680 UNUSED(_end_lineno); // Only used by EXTRA macro
10681 int _end_col_offset = _token->end_col_offset;
10682 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020010683 _res = _PyAST_arg ( a -> v . Name . id , NULL , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010684 if (_res == NULL && PyErr_Occurred()) {
10685 p->error_indicator = 1;
10686 D(p->level--);
10687 return NULL;
10688 }
10689 goto done;
10690 }
10691 p->mark = _mark;
10692 D(fprintf(stderr, "%*c%s lambda_param[%d-%d]: %s failed!\n", p->level, ' ',
10693 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
10694 }
10695 _res = NULL;
10696 done:
10697 D(p->level--);
10698 return _res;
10699}
10700
10701// disjunction: conjunction (('or' conjunction))+ | conjunction
10702static expr_ty
10703disjunction_rule(Parser *p)
10704{
10705 D(p->level++);
10706 if (p->error_indicator) {
10707 D(p->level--);
10708 return NULL;
10709 }
10710 expr_ty _res = NULL;
10711 if (_PyPegen_is_memoized(p, disjunction_type, &_res)) {
10712 D(p->level--);
10713 return _res;
10714 }
10715 int _mark = p->mark;
10716 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10717 p->error_indicator = 1;
10718 D(p->level--);
10719 return NULL;
10720 }
10721 int _start_lineno = p->tokens[_mark]->lineno;
10722 UNUSED(_start_lineno); // Only used by EXTRA macro
10723 int _start_col_offset = p->tokens[_mark]->col_offset;
10724 UNUSED(_start_col_offset); // Only used by EXTRA macro
10725 { // conjunction (('or' conjunction))+
10726 if (p->error_indicator) {
10727 D(p->level--);
10728 return NULL;
10729 }
10730 D(fprintf(stderr, "%*c> disjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "conjunction (('or' conjunction))+"));
10731 expr_ty a;
10732 asdl_seq * b;
10733 if (
10734 (a = conjunction_rule(p)) // conjunction
10735 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080010736 (b = _loop1_104_rule(p)) // (('or' conjunction))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010737 )
10738 {
10739 D(fprintf(stderr, "%*c+ disjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "conjunction (('or' conjunction))+"));
10740 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10741 if (_token == NULL) {
10742 D(p->level--);
10743 return NULL;
10744 }
10745 int _end_lineno = _token->end_lineno;
10746 UNUSED(_end_lineno); // Only used by EXTRA macro
10747 int _end_col_offset = _token->end_col_offset;
10748 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020010749 _res = _PyAST_BoolOp ( Or , CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , a , b ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010750 if (_res == NULL && PyErr_Occurred()) {
10751 p->error_indicator = 1;
10752 D(p->level--);
10753 return NULL;
10754 }
10755 goto done;
10756 }
10757 p->mark = _mark;
10758 D(fprintf(stderr, "%*c%s disjunction[%d-%d]: %s failed!\n", p->level, ' ',
10759 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "conjunction (('or' conjunction))+"));
10760 }
10761 { // conjunction
10762 if (p->error_indicator) {
10763 D(p->level--);
10764 return NULL;
10765 }
10766 D(fprintf(stderr, "%*c> disjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "conjunction"));
10767 expr_ty conjunction_var;
10768 if (
10769 (conjunction_var = conjunction_rule(p)) // conjunction
10770 )
10771 {
10772 D(fprintf(stderr, "%*c+ disjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "conjunction"));
10773 _res = conjunction_var;
10774 goto done;
10775 }
10776 p->mark = _mark;
10777 D(fprintf(stderr, "%*c%s disjunction[%d-%d]: %s failed!\n", p->level, ' ',
10778 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "conjunction"));
10779 }
10780 _res = NULL;
10781 done:
10782 _PyPegen_insert_memo(p, _mark, disjunction_type, _res);
10783 D(p->level--);
10784 return _res;
10785}
10786
10787// conjunction: inversion (('and' inversion))+ | inversion
10788static expr_ty
10789conjunction_rule(Parser *p)
10790{
10791 D(p->level++);
10792 if (p->error_indicator) {
10793 D(p->level--);
10794 return NULL;
10795 }
10796 expr_ty _res = NULL;
10797 if (_PyPegen_is_memoized(p, conjunction_type, &_res)) {
10798 D(p->level--);
10799 return _res;
10800 }
10801 int _mark = p->mark;
10802 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10803 p->error_indicator = 1;
10804 D(p->level--);
10805 return NULL;
10806 }
10807 int _start_lineno = p->tokens[_mark]->lineno;
10808 UNUSED(_start_lineno); // Only used by EXTRA macro
10809 int _start_col_offset = p->tokens[_mark]->col_offset;
10810 UNUSED(_start_col_offset); // Only used by EXTRA macro
10811 { // inversion (('and' inversion))+
10812 if (p->error_indicator) {
10813 D(p->level--);
10814 return NULL;
10815 }
10816 D(fprintf(stderr, "%*c> conjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "inversion (('and' inversion))+"));
10817 expr_ty a;
10818 asdl_seq * b;
10819 if (
10820 (a = inversion_rule(p)) // inversion
10821 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080010822 (b = _loop1_105_rule(p)) // (('and' inversion))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010823 )
10824 {
10825 D(fprintf(stderr, "%*c+ conjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "inversion (('and' inversion))+"));
10826 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10827 if (_token == NULL) {
10828 D(p->level--);
10829 return NULL;
10830 }
10831 int _end_lineno = _token->end_lineno;
10832 UNUSED(_end_lineno); // Only used by EXTRA macro
10833 int _end_col_offset = _token->end_col_offset;
10834 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020010835 _res = _PyAST_BoolOp ( And , CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , a , b ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010836 if (_res == NULL && PyErr_Occurred()) {
10837 p->error_indicator = 1;
10838 D(p->level--);
10839 return NULL;
10840 }
10841 goto done;
10842 }
10843 p->mark = _mark;
10844 D(fprintf(stderr, "%*c%s conjunction[%d-%d]: %s failed!\n", p->level, ' ',
10845 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "inversion (('and' inversion))+"));
10846 }
10847 { // inversion
10848 if (p->error_indicator) {
10849 D(p->level--);
10850 return NULL;
10851 }
10852 D(fprintf(stderr, "%*c> conjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "inversion"));
10853 expr_ty inversion_var;
10854 if (
10855 (inversion_var = inversion_rule(p)) // inversion
10856 )
10857 {
10858 D(fprintf(stderr, "%*c+ conjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "inversion"));
10859 _res = inversion_var;
10860 goto done;
10861 }
10862 p->mark = _mark;
10863 D(fprintf(stderr, "%*c%s conjunction[%d-%d]: %s failed!\n", p->level, ' ',
10864 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "inversion"));
10865 }
10866 _res = NULL;
10867 done:
10868 _PyPegen_insert_memo(p, _mark, conjunction_type, _res);
10869 D(p->level--);
10870 return _res;
10871}
10872
10873// inversion: 'not' inversion | comparison
10874static expr_ty
10875inversion_rule(Parser *p)
10876{
10877 D(p->level++);
10878 if (p->error_indicator) {
10879 D(p->level--);
10880 return NULL;
10881 }
10882 expr_ty _res = NULL;
10883 if (_PyPegen_is_memoized(p, inversion_type, &_res)) {
10884 D(p->level--);
10885 return _res;
10886 }
10887 int _mark = p->mark;
10888 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10889 p->error_indicator = 1;
10890 D(p->level--);
10891 return NULL;
10892 }
10893 int _start_lineno = p->tokens[_mark]->lineno;
10894 UNUSED(_start_lineno); // Only used by EXTRA macro
10895 int _start_col_offset = p->tokens[_mark]->col_offset;
10896 UNUSED(_start_col_offset); // Only used by EXTRA macro
10897 { // 'not' inversion
10898 if (p->error_indicator) {
10899 D(p->level--);
10900 return NULL;
10901 }
10902 D(fprintf(stderr, "%*c> inversion[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'not' inversion"));
10903 Token * _keyword;
10904 expr_ty a;
10905 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080010906 (_keyword = _PyPegen_expect_token(p, 529)) // token='not'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010907 &&
10908 (a = inversion_rule(p)) // inversion
10909 )
10910 {
10911 D(fprintf(stderr, "%*c+ inversion[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'not' inversion"));
10912 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10913 if (_token == NULL) {
10914 D(p->level--);
10915 return NULL;
10916 }
10917 int _end_lineno = _token->end_lineno;
10918 UNUSED(_end_lineno); // Only used by EXTRA macro
10919 int _end_col_offset = _token->end_col_offset;
10920 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020010921 _res = _PyAST_UnaryOp ( Not , a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010922 if (_res == NULL && PyErr_Occurred()) {
10923 p->error_indicator = 1;
10924 D(p->level--);
10925 return NULL;
10926 }
10927 goto done;
10928 }
10929 p->mark = _mark;
10930 D(fprintf(stderr, "%*c%s inversion[%d-%d]: %s failed!\n", p->level, ' ',
10931 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'not' inversion"));
10932 }
10933 { // comparison
10934 if (p->error_indicator) {
10935 D(p->level--);
10936 return NULL;
10937 }
10938 D(fprintf(stderr, "%*c> inversion[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "comparison"));
10939 expr_ty comparison_var;
10940 if (
10941 (comparison_var = comparison_rule(p)) // comparison
10942 )
10943 {
10944 D(fprintf(stderr, "%*c+ inversion[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "comparison"));
10945 _res = comparison_var;
10946 goto done;
10947 }
10948 p->mark = _mark;
10949 D(fprintf(stderr, "%*c%s inversion[%d-%d]: %s failed!\n", p->level, ' ',
10950 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "comparison"));
10951 }
10952 _res = NULL;
10953 done:
10954 _PyPegen_insert_memo(p, _mark, inversion_type, _res);
10955 D(p->level--);
10956 return _res;
10957}
10958
10959// comparison: bitwise_or compare_op_bitwise_or_pair+ | bitwise_or
10960static expr_ty
10961comparison_rule(Parser *p)
10962{
10963 D(p->level++);
10964 if (p->error_indicator) {
10965 D(p->level--);
10966 return NULL;
10967 }
10968 expr_ty _res = NULL;
10969 int _mark = p->mark;
10970 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10971 p->error_indicator = 1;
10972 D(p->level--);
10973 return NULL;
10974 }
10975 int _start_lineno = p->tokens[_mark]->lineno;
10976 UNUSED(_start_lineno); // Only used by EXTRA macro
10977 int _start_col_offset = p->tokens[_mark]->col_offset;
10978 UNUSED(_start_col_offset); // Only used by EXTRA macro
10979 { // bitwise_or compare_op_bitwise_or_pair+
10980 if (p->error_indicator) {
10981 D(p->level--);
10982 return NULL;
10983 }
10984 D(fprintf(stderr, "%*c> comparison[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_or compare_op_bitwise_or_pair+"));
10985 expr_ty a;
10986 asdl_seq * b;
10987 if (
10988 (a = bitwise_or_rule(p)) // bitwise_or
10989 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080010990 (b = _loop1_106_rule(p)) // compare_op_bitwise_or_pair+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010991 )
10992 {
10993 D(fprintf(stderr, "%*c+ comparison[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_or compare_op_bitwise_or_pair+"));
10994 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10995 if (_token == NULL) {
10996 D(p->level--);
10997 return NULL;
10998 }
10999 int _end_lineno = _token->end_lineno;
11000 UNUSED(_end_lineno); // Only used by EXTRA macro
11001 int _end_col_offset = _token->end_col_offset;
11002 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020011003 _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 +010011004 if (_res == NULL && PyErr_Occurred()) {
11005 p->error_indicator = 1;
11006 D(p->level--);
11007 return NULL;
11008 }
11009 goto done;
11010 }
11011 p->mark = _mark;
11012 D(fprintf(stderr, "%*c%s comparison[%d-%d]: %s failed!\n", p->level, ' ',
11013 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_or compare_op_bitwise_or_pair+"));
11014 }
11015 { // bitwise_or
11016 if (p->error_indicator) {
11017 D(p->level--);
11018 return NULL;
11019 }
11020 D(fprintf(stderr, "%*c> comparison[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_or"));
11021 expr_ty bitwise_or_var;
11022 if (
11023 (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or
11024 )
11025 {
11026 D(fprintf(stderr, "%*c+ comparison[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_or"));
11027 _res = bitwise_or_var;
11028 goto done;
11029 }
11030 p->mark = _mark;
11031 D(fprintf(stderr, "%*c%s comparison[%d-%d]: %s failed!\n", p->level, ' ',
11032 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_or"));
11033 }
11034 _res = NULL;
11035 done:
11036 D(p->level--);
11037 return _res;
11038}
11039
11040// compare_op_bitwise_or_pair:
11041// | eq_bitwise_or
11042// | noteq_bitwise_or
11043// | lte_bitwise_or
11044// | lt_bitwise_or
11045// | gte_bitwise_or
11046// | gt_bitwise_or
11047// | notin_bitwise_or
11048// | in_bitwise_or
11049// | isnot_bitwise_or
11050// | is_bitwise_or
11051static CmpopExprPair*
11052compare_op_bitwise_or_pair_rule(Parser *p)
11053{
11054 D(p->level++);
11055 if (p->error_indicator) {
11056 D(p->level--);
11057 return NULL;
11058 }
11059 CmpopExprPair* _res = NULL;
11060 int _mark = p->mark;
11061 { // eq_bitwise_or
11062 if (p->error_indicator) {
11063 D(p->level--);
11064 return NULL;
11065 }
11066 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "eq_bitwise_or"));
11067 CmpopExprPair* eq_bitwise_or_var;
11068 if (
11069 (eq_bitwise_or_var = eq_bitwise_or_rule(p)) // eq_bitwise_or
11070 )
11071 {
11072 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "eq_bitwise_or"));
11073 _res = eq_bitwise_or_var;
11074 goto done;
11075 }
11076 p->mark = _mark;
11077 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
11078 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "eq_bitwise_or"));
11079 }
11080 { // noteq_bitwise_or
11081 if (p->error_indicator) {
11082 D(p->level--);
11083 return NULL;
11084 }
11085 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "noteq_bitwise_or"));
11086 CmpopExprPair* noteq_bitwise_or_var;
11087 if (
11088 (noteq_bitwise_or_var = noteq_bitwise_or_rule(p)) // noteq_bitwise_or
11089 )
11090 {
11091 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "noteq_bitwise_or"));
11092 _res = noteq_bitwise_or_var;
11093 goto done;
11094 }
11095 p->mark = _mark;
11096 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
11097 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "noteq_bitwise_or"));
11098 }
11099 { // lte_bitwise_or
11100 if (p->error_indicator) {
11101 D(p->level--);
11102 return NULL;
11103 }
11104 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lte_bitwise_or"));
11105 CmpopExprPair* lte_bitwise_or_var;
11106 if (
11107 (lte_bitwise_or_var = lte_bitwise_or_rule(p)) // lte_bitwise_or
11108 )
11109 {
11110 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lte_bitwise_or"));
11111 _res = lte_bitwise_or_var;
11112 goto done;
11113 }
11114 p->mark = _mark;
11115 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
11116 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lte_bitwise_or"));
11117 }
11118 { // lt_bitwise_or
11119 if (p->error_indicator) {
11120 D(p->level--);
11121 return NULL;
11122 }
11123 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lt_bitwise_or"));
11124 CmpopExprPair* lt_bitwise_or_var;
11125 if (
11126 (lt_bitwise_or_var = lt_bitwise_or_rule(p)) // lt_bitwise_or
11127 )
11128 {
11129 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lt_bitwise_or"));
11130 _res = lt_bitwise_or_var;
11131 goto done;
11132 }
11133 p->mark = _mark;
11134 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
11135 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lt_bitwise_or"));
11136 }
11137 { // gte_bitwise_or
11138 if (p->error_indicator) {
11139 D(p->level--);
11140 return NULL;
11141 }
11142 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "gte_bitwise_or"));
11143 CmpopExprPair* gte_bitwise_or_var;
11144 if (
11145 (gte_bitwise_or_var = gte_bitwise_or_rule(p)) // gte_bitwise_or
11146 )
11147 {
11148 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "gte_bitwise_or"));
11149 _res = gte_bitwise_or_var;
11150 goto done;
11151 }
11152 p->mark = _mark;
11153 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
11154 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "gte_bitwise_or"));
11155 }
11156 { // gt_bitwise_or
11157 if (p->error_indicator) {
11158 D(p->level--);
11159 return NULL;
11160 }
11161 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "gt_bitwise_or"));
11162 CmpopExprPair* gt_bitwise_or_var;
11163 if (
11164 (gt_bitwise_or_var = gt_bitwise_or_rule(p)) // gt_bitwise_or
11165 )
11166 {
11167 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "gt_bitwise_or"));
11168 _res = gt_bitwise_or_var;
11169 goto done;
11170 }
11171 p->mark = _mark;
11172 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
11173 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "gt_bitwise_or"));
11174 }
11175 { // notin_bitwise_or
11176 if (p->error_indicator) {
11177 D(p->level--);
11178 return NULL;
11179 }
11180 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "notin_bitwise_or"));
11181 CmpopExprPair* notin_bitwise_or_var;
11182 if (
11183 (notin_bitwise_or_var = notin_bitwise_or_rule(p)) // notin_bitwise_or
11184 )
11185 {
11186 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "notin_bitwise_or"));
11187 _res = notin_bitwise_or_var;
11188 goto done;
11189 }
11190 p->mark = _mark;
11191 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
11192 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "notin_bitwise_or"));
11193 }
11194 { // in_bitwise_or
11195 if (p->error_indicator) {
11196 D(p->level--);
11197 return NULL;
11198 }
11199 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "in_bitwise_or"));
11200 CmpopExprPair* in_bitwise_or_var;
11201 if (
11202 (in_bitwise_or_var = in_bitwise_or_rule(p)) // in_bitwise_or
11203 )
11204 {
11205 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "in_bitwise_or"));
11206 _res = in_bitwise_or_var;
11207 goto done;
11208 }
11209 p->mark = _mark;
11210 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
11211 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "in_bitwise_or"));
11212 }
11213 { // isnot_bitwise_or
11214 if (p->error_indicator) {
11215 D(p->level--);
11216 return NULL;
11217 }
11218 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "isnot_bitwise_or"));
11219 CmpopExprPair* isnot_bitwise_or_var;
11220 if (
11221 (isnot_bitwise_or_var = isnot_bitwise_or_rule(p)) // isnot_bitwise_or
11222 )
11223 {
11224 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "isnot_bitwise_or"));
11225 _res = isnot_bitwise_or_var;
11226 goto done;
11227 }
11228 p->mark = _mark;
11229 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
11230 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "isnot_bitwise_or"));
11231 }
11232 { // is_bitwise_or
11233 if (p->error_indicator) {
11234 D(p->level--);
11235 return NULL;
11236 }
11237 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "is_bitwise_or"));
11238 CmpopExprPair* is_bitwise_or_var;
11239 if (
11240 (is_bitwise_or_var = is_bitwise_or_rule(p)) // is_bitwise_or
11241 )
11242 {
11243 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "is_bitwise_or"));
11244 _res = is_bitwise_or_var;
11245 goto done;
11246 }
11247 p->mark = _mark;
11248 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
11249 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "is_bitwise_or"));
11250 }
11251 _res = NULL;
11252 done:
11253 D(p->level--);
11254 return _res;
11255}
11256
11257// eq_bitwise_or: '==' bitwise_or
11258static CmpopExprPair*
11259eq_bitwise_or_rule(Parser *p)
11260{
11261 D(p->level++);
11262 if (p->error_indicator) {
11263 D(p->level--);
11264 return NULL;
11265 }
11266 CmpopExprPair* _res = NULL;
11267 int _mark = p->mark;
11268 { // '==' bitwise_or
11269 if (p->error_indicator) {
11270 D(p->level--);
11271 return NULL;
11272 }
11273 D(fprintf(stderr, "%*c> eq_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'==' bitwise_or"));
11274 Token * _literal;
11275 expr_ty a;
11276 if (
11277 (_literal = _PyPegen_expect_token(p, 27)) // token='=='
11278 &&
11279 (a = bitwise_or_rule(p)) // bitwise_or
11280 )
11281 {
11282 D(fprintf(stderr, "%*c+ eq_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'==' bitwise_or"));
11283 _res = _PyPegen_cmpop_expr_pair ( p , Eq , a );
11284 if (_res == NULL && PyErr_Occurred()) {
11285 p->error_indicator = 1;
11286 D(p->level--);
11287 return NULL;
11288 }
11289 goto done;
11290 }
11291 p->mark = _mark;
11292 D(fprintf(stderr, "%*c%s eq_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
11293 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'==' bitwise_or"));
11294 }
11295 _res = NULL;
11296 done:
11297 D(p->level--);
11298 return _res;
11299}
11300
11301// noteq_bitwise_or: ('!=') bitwise_or
11302static CmpopExprPair*
11303noteq_bitwise_or_rule(Parser *p)
11304{
11305 D(p->level++);
11306 if (p->error_indicator) {
11307 D(p->level--);
11308 return NULL;
11309 }
11310 CmpopExprPair* _res = NULL;
11311 int _mark = p->mark;
11312 { // ('!=') bitwise_or
11313 if (p->error_indicator) {
11314 D(p->level--);
11315 return NULL;
11316 }
11317 D(fprintf(stderr, "%*c> noteq_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('!=') bitwise_or"));
Brandt Bucher145bf262021-02-26 14:51:55 -080011318 void *_tmp_107_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011319 expr_ty a;
11320 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080011321 (_tmp_107_var = _tmp_107_rule(p)) // '!='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011322 &&
11323 (a = bitwise_or_rule(p)) // bitwise_or
11324 )
11325 {
11326 D(fprintf(stderr, "%*c+ noteq_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "('!=') bitwise_or"));
11327 _res = _PyPegen_cmpop_expr_pair ( p , NotEq , a );
11328 if (_res == NULL && PyErr_Occurred()) {
11329 p->error_indicator = 1;
11330 D(p->level--);
11331 return NULL;
11332 }
11333 goto done;
11334 }
11335 p->mark = _mark;
11336 D(fprintf(stderr, "%*c%s noteq_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
11337 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('!=') bitwise_or"));
11338 }
11339 _res = NULL;
11340 done:
11341 D(p->level--);
11342 return _res;
11343}
11344
11345// lte_bitwise_or: '<=' bitwise_or
11346static CmpopExprPair*
11347lte_bitwise_or_rule(Parser *p)
11348{
11349 D(p->level++);
11350 if (p->error_indicator) {
11351 D(p->level--);
11352 return NULL;
11353 }
11354 CmpopExprPair* _res = NULL;
11355 int _mark = p->mark;
11356 { // '<=' bitwise_or
11357 if (p->error_indicator) {
11358 D(p->level--);
11359 return NULL;
11360 }
11361 D(fprintf(stderr, "%*c> lte_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'<=' bitwise_or"));
11362 Token * _literal;
11363 expr_ty a;
11364 if (
11365 (_literal = _PyPegen_expect_token(p, 29)) // token='<='
11366 &&
11367 (a = bitwise_or_rule(p)) // bitwise_or
11368 )
11369 {
11370 D(fprintf(stderr, "%*c+ lte_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'<=' bitwise_or"));
11371 _res = _PyPegen_cmpop_expr_pair ( p , LtE , a );
11372 if (_res == NULL && PyErr_Occurred()) {
11373 p->error_indicator = 1;
11374 D(p->level--);
11375 return NULL;
11376 }
11377 goto done;
11378 }
11379 p->mark = _mark;
11380 D(fprintf(stderr, "%*c%s lte_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
11381 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'<=' bitwise_or"));
11382 }
11383 _res = NULL;
11384 done:
11385 D(p->level--);
11386 return _res;
11387}
11388
11389// lt_bitwise_or: '<' bitwise_or
11390static CmpopExprPair*
11391lt_bitwise_or_rule(Parser *p)
11392{
11393 D(p->level++);
11394 if (p->error_indicator) {
11395 D(p->level--);
11396 return NULL;
11397 }
11398 CmpopExprPair* _res = NULL;
11399 int _mark = p->mark;
11400 { // '<' bitwise_or
11401 if (p->error_indicator) {
11402 D(p->level--);
11403 return NULL;
11404 }
11405 D(fprintf(stderr, "%*c> lt_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'<' bitwise_or"));
11406 Token * _literal;
11407 expr_ty a;
11408 if (
11409 (_literal = _PyPegen_expect_token(p, 20)) // token='<'
11410 &&
11411 (a = bitwise_or_rule(p)) // bitwise_or
11412 )
11413 {
11414 D(fprintf(stderr, "%*c+ lt_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'<' bitwise_or"));
11415 _res = _PyPegen_cmpop_expr_pair ( p , Lt , a );
11416 if (_res == NULL && PyErr_Occurred()) {
11417 p->error_indicator = 1;
11418 D(p->level--);
11419 return NULL;
11420 }
11421 goto done;
11422 }
11423 p->mark = _mark;
11424 D(fprintf(stderr, "%*c%s lt_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
11425 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'<' bitwise_or"));
11426 }
11427 _res = NULL;
11428 done:
11429 D(p->level--);
11430 return _res;
11431}
11432
11433// gte_bitwise_or: '>=' bitwise_or
11434static CmpopExprPair*
11435gte_bitwise_or_rule(Parser *p)
11436{
11437 D(p->level++);
11438 if (p->error_indicator) {
11439 D(p->level--);
11440 return NULL;
11441 }
11442 CmpopExprPair* _res = NULL;
11443 int _mark = p->mark;
11444 { // '>=' bitwise_or
11445 if (p->error_indicator) {
11446 D(p->level--);
11447 return NULL;
11448 }
11449 D(fprintf(stderr, "%*c> gte_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'>=' bitwise_or"));
11450 Token * _literal;
11451 expr_ty a;
11452 if (
11453 (_literal = _PyPegen_expect_token(p, 30)) // token='>='
11454 &&
11455 (a = bitwise_or_rule(p)) // bitwise_or
11456 )
11457 {
11458 D(fprintf(stderr, "%*c+ gte_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'>=' bitwise_or"));
11459 _res = _PyPegen_cmpop_expr_pair ( p , GtE , a );
11460 if (_res == NULL && PyErr_Occurred()) {
11461 p->error_indicator = 1;
11462 D(p->level--);
11463 return NULL;
11464 }
11465 goto done;
11466 }
11467 p->mark = _mark;
11468 D(fprintf(stderr, "%*c%s gte_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
11469 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'>=' bitwise_or"));
11470 }
11471 _res = NULL;
11472 done:
11473 D(p->level--);
11474 return _res;
11475}
11476
11477// gt_bitwise_or: '>' bitwise_or
11478static CmpopExprPair*
11479gt_bitwise_or_rule(Parser *p)
11480{
11481 D(p->level++);
11482 if (p->error_indicator) {
11483 D(p->level--);
11484 return NULL;
11485 }
11486 CmpopExprPair* _res = NULL;
11487 int _mark = p->mark;
11488 { // '>' bitwise_or
11489 if (p->error_indicator) {
11490 D(p->level--);
11491 return NULL;
11492 }
11493 D(fprintf(stderr, "%*c> gt_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'>' bitwise_or"));
11494 Token * _literal;
11495 expr_ty a;
11496 if (
11497 (_literal = _PyPegen_expect_token(p, 21)) // token='>'
11498 &&
11499 (a = bitwise_or_rule(p)) // bitwise_or
11500 )
11501 {
11502 D(fprintf(stderr, "%*c+ gt_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'>' bitwise_or"));
11503 _res = _PyPegen_cmpop_expr_pair ( p , Gt , a );
11504 if (_res == NULL && PyErr_Occurred()) {
11505 p->error_indicator = 1;
11506 D(p->level--);
11507 return NULL;
11508 }
11509 goto done;
11510 }
11511 p->mark = _mark;
11512 D(fprintf(stderr, "%*c%s gt_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
11513 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'>' bitwise_or"));
11514 }
11515 _res = NULL;
11516 done:
11517 D(p->level--);
11518 return _res;
11519}
11520
11521// notin_bitwise_or: 'not' 'in' bitwise_or
11522static CmpopExprPair*
11523notin_bitwise_or_rule(Parser *p)
11524{
11525 D(p->level++);
11526 if (p->error_indicator) {
11527 D(p->level--);
11528 return NULL;
11529 }
11530 CmpopExprPair* _res = NULL;
11531 int _mark = p->mark;
11532 { // 'not' 'in' bitwise_or
11533 if (p->error_indicator) {
11534 D(p->level--);
11535 return NULL;
11536 }
11537 D(fprintf(stderr, "%*c> notin_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'not' 'in' bitwise_or"));
11538 Token * _keyword;
11539 Token * _keyword_1;
11540 expr_ty a;
11541 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080011542 (_keyword = _PyPegen_expect_token(p, 529)) // token='not'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011543 &&
11544 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
11545 &&
11546 (a = bitwise_or_rule(p)) // bitwise_or
11547 )
11548 {
11549 D(fprintf(stderr, "%*c+ notin_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'not' 'in' bitwise_or"));
11550 _res = _PyPegen_cmpop_expr_pair ( p , NotIn , a );
11551 if (_res == NULL && PyErr_Occurred()) {
11552 p->error_indicator = 1;
11553 D(p->level--);
11554 return NULL;
11555 }
11556 goto done;
11557 }
11558 p->mark = _mark;
11559 D(fprintf(stderr, "%*c%s notin_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
11560 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'not' 'in' bitwise_or"));
11561 }
11562 _res = NULL;
11563 done:
11564 D(p->level--);
11565 return _res;
11566}
11567
11568// in_bitwise_or: 'in' bitwise_or
11569static CmpopExprPair*
11570in_bitwise_or_rule(Parser *p)
11571{
11572 D(p->level++);
11573 if (p->error_indicator) {
11574 D(p->level--);
11575 return NULL;
11576 }
11577 CmpopExprPair* _res = NULL;
11578 int _mark = p->mark;
11579 { // 'in' bitwise_or
11580 if (p->error_indicator) {
11581 D(p->level--);
11582 return NULL;
11583 }
11584 D(fprintf(stderr, "%*c> in_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'in' bitwise_or"));
11585 Token * _keyword;
11586 expr_ty a;
11587 if (
11588 (_keyword = _PyPegen_expect_token(p, 518)) // token='in'
11589 &&
11590 (a = bitwise_or_rule(p)) // bitwise_or
11591 )
11592 {
11593 D(fprintf(stderr, "%*c+ in_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'in' bitwise_or"));
11594 _res = _PyPegen_cmpop_expr_pair ( p , In , a );
11595 if (_res == NULL && PyErr_Occurred()) {
11596 p->error_indicator = 1;
11597 D(p->level--);
11598 return NULL;
11599 }
11600 goto done;
11601 }
11602 p->mark = _mark;
11603 D(fprintf(stderr, "%*c%s in_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
11604 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'in' bitwise_or"));
11605 }
11606 _res = NULL;
11607 done:
11608 D(p->level--);
11609 return _res;
11610}
11611
11612// isnot_bitwise_or: 'is' 'not' bitwise_or
11613static CmpopExprPair*
11614isnot_bitwise_or_rule(Parser *p)
11615{
11616 D(p->level++);
11617 if (p->error_indicator) {
11618 D(p->level--);
11619 return NULL;
11620 }
11621 CmpopExprPair* _res = NULL;
11622 int _mark = p->mark;
11623 { // 'is' 'not' bitwise_or
11624 if (p->error_indicator) {
11625 D(p->level--);
11626 return NULL;
11627 }
11628 D(fprintf(stderr, "%*c> isnot_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'is' 'not' bitwise_or"));
11629 Token * _keyword;
11630 Token * _keyword_1;
11631 expr_ty a;
11632 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080011633 (_keyword = _PyPegen_expect_token(p, 530)) // token='is'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011634 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080011635 (_keyword_1 = _PyPegen_expect_token(p, 529)) // token='not'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011636 &&
11637 (a = bitwise_or_rule(p)) // bitwise_or
11638 )
11639 {
11640 D(fprintf(stderr, "%*c+ isnot_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'is' 'not' bitwise_or"));
11641 _res = _PyPegen_cmpop_expr_pair ( p , IsNot , a );
11642 if (_res == NULL && PyErr_Occurred()) {
11643 p->error_indicator = 1;
11644 D(p->level--);
11645 return NULL;
11646 }
11647 goto done;
11648 }
11649 p->mark = _mark;
11650 D(fprintf(stderr, "%*c%s isnot_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
11651 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'is' 'not' bitwise_or"));
11652 }
11653 _res = NULL;
11654 done:
11655 D(p->level--);
11656 return _res;
11657}
11658
11659// is_bitwise_or: 'is' bitwise_or
11660static CmpopExprPair*
11661is_bitwise_or_rule(Parser *p)
11662{
11663 D(p->level++);
11664 if (p->error_indicator) {
11665 D(p->level--);
11666 return NULL;
11667 }
11668 CmpopExprPair* _res = NULL;
11669 int _mark = p->mark;
11670 { // 'is' bitwise_or
11671 if (p->error_indicator) {
11672 D(p->level--);
11673 return NULL;
11674 }
11675 D(fprintf(stderr, "%*c> is_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'is' bitwise_or"));
11676 Token * _keyword;
11677 expr_ty a;
11678 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080011679 (_keyword = _PyPegen_expect_token(p, 530)) // token='is'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011680 &&
11681 (a = bitwise_or_rule(p)) // bitwise_or
11682 )
11683 {
11684 D(fprintf(stderr, "%*c+ is_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'is' bitwise_or"));
11685 _res = _PyPegen_cmpop_expr_pair ( p , Is , a );
11686 if (_res == NULL && PyErr_Occurred()) {
11687 p->error_indicator = 1;
11688 D(p->level--);
11689 return NULL;
11690 }
11691 goto done;
11692 }
11693 p->mark = _mark;
11694 D(fprintf(stderr, "%*c%s is_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
11695 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'is' bitwise_or"));
11696 }
11697 _res = NULL;
11698 done:
11699 D(p->level--);
11700 return _res;
11701}
11702
11703// Left-recursive
11704// bitwise_or: bitwise_or '|' bitwise_xor | bitwise_xor
11705static expr_ty bitwise_or_raw(Parser *);
11706static expr_ty
11707bitwise_or_rule(Parser *p)
11708{
11709 D(p->level++);
11710 expr_ty _res = NULL;
11711 if (_PyPegen_is_memoized(p, bitwise_or_type, &_res)) {
11712 D(p->level--);
11713 return _res;
11714 }
11715 int _mark = p->mark;
11716 int _resmark = p->mark;
11717 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080011718 int tmpvar_2 = _PyPegen_update_memo(p, _mark, bitwise_or_type, _res);
11719 if (tmpvar_2) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011720 D(p->level--);
11721 return _res;
11722 }
11723 p->mark = _mark;
11724 void *_raw = bitwise_or_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020011725 if (p->error_indicator)
11726 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011727 if (_raw == NULL || p->mark <= _resmark)
11728 break;
11729 _resmark = p->mark;
11730 _res = _raw;
11731 }
11732 p->mark = _resmark;
11733 D(p->level--);
11734 return _res;
11735}
11736static expr_ty
11737bitwise_or_raw(Parser *p)
11738{
11739 D(p->level++);
11740 if (p->error_indicator) {
11741 D(p->level--);
11742 return NULL;
11743 }
11744 expr_ty _res = NULL;
11745 int _mark = p->mark;
11746 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11747 p->error_indicator = 1;
11748 D(p->level--);
11749 return NULL;
11750 }
11751 int _start_lineno = p->tokens[_mark]->lineno;
11752 UNUSED(_start_lineno); // Only used by EXTRA macro
11753 int _start_col_offset = p->tokens[_mark]->col_offset;
11754 UNUSED(_start_col_offset); // Only used by EXTRA macro
11755 { // bitwise_or '|' bitwise_xor
11756 if (p->error_indicator) {
11757 D(p->level--);
11758 return NULL;
11759 }
11760 D(fprintf(stderr, "%*c> bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_or '|' bitwise_xor"));
11761 Token * _literal;
11762 expr_ty a;
11763 expr_ty b;
11764 if (
11765 (a = bitwise_or_rule(p)) // bitwise_or
11766 &&
11767 (_literal = _PyPegen_expect_token(p, 18)) // token='|'
11768 &&
11769 (b = bitwise_xor_rule(p)) // bitwise_xor
11770 )
11771 {
11772 D(fprintf(stderr, "%*c+ bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_or '|' bitwise_xor"));
11773 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11774 if (_token == NULL) {
11775 D(p->level--);
11776 return NULL;
11777 }
11778 int _end_lineno = _token->end_lineno;
11779 UNUSED(_end_lineno); // Only used by EXTRA macro
11780 int _end_col_offset = _token->end_col_offset;
11781 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020011782 _res = _PyAST_BinOp ( a , BitOr , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011783 if (_res == NULL && PyErr_Occurred()) {
11784 p->error_indicator = 1;
11785 D(p->level--);
11786 return NULL;
11787 }
11788 goto done;
11789 }
11790 p->mark = _mark;
11791 D(fprintf(stderr, "%*c%s bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
11792 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_or '|' bitwise_xor"));
11793 }
11794 { // bitwise_xor
11795 if (p->error_indicator) {
11796 D(p->level--);
11797 return NULL;
11798 }
11799 D(fprintf(stderr, "%*c> bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_xor"));
11800 expr_ty bitwise_xor_var;
11801 if (
11802 (bitwise_xor_var = bitwise_xor_rule(p)) // bitwise_xor
11803 )
11804 {
11805 D(fprintf(stderr, "%*c+ bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_xor"));
11806 _res = bitwise_xor_var;
11807 goto done;
11808 }
11809 p->mark = _mark;
11810 D(fprintf(stderr, "%*c%s bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
11811 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_xor"));
11812 }
11813 _res = NULL;
11814 done:
11815 D(p->level--);
11816 return _res;
11817}
11818
11819// Left-recursive
11820// bitwise_xor: bitwise_xor '^' bitwise_and | bitwise_and
11821static expr_ty bitwise_xor_raw(Parser *);
11822static expr_ty
11823bitwise_xor_rule(Parser *p)
11824{
11825 D(p->level++);
11826 expr_ty _res = NULL;
11827 if (_PyPegen_is_memoized(p, bitwise_xor_type, &_res)) {
11828 D(p->level--);
11829 return _res;
11830 }
11831 int _mark = p->mark;
11832 int _resmark = p->mark;
11833 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080011834 int tmpvar_3 = _PyPegen_update_memo(p, _mark, bitwise_xor_type, _res);
11835 if (tmpvar_3) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011836 D(p->level--);
11837 return _res;
11838 }
11839 p->mark = _mark;
11840 void *_raw = bitwise_xor_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020011841 if (p->error_indicator)
11842 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011843 if (_raw == NULL || p->mark <= _resmark)
11844 break;
11845 _resmark = p->mark;
11846 _res = _raw;
11847 }
11848 p->mark = _resmark;
11849 D(p->level--);
11850 return _res;
11851}
11852static expr_ty
11853bitwise_xor_raw(Parser *p)
11854{
11855 D(p->level++);
11856 if (p->error_indicator) {
11857 D(p->level--);
11858 return NULL;
11859 }
11860 expr_ty _res = NULL;
11861 int _mark = p->mark;
11862 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11863 p->error_indicator = 1;
11864 D(p->level--);
11865 return NULL;
11866 }
11867 int _start_lineno = p->tokens[_mark]->lineno;
11868 UNUSED(_start_lineno); // Only used by EXTRA macro
11869 int _start_col_offset = p->tokens[_mark]->col_offset;
11870 UNUSED(_start_col_offset); // Only used by EXTRA macro
11871 { // bitwise_xor '^' bitwise_and
11872 if (p->error_indicator) {
11873 D(p->level--);
11874 return NULL;
11875 }
11876 D(fprintf(stderr, "%*c> bitwise_xor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_xor '^' bitwise_and"));
11877 Token * _literal;
11878 expr_ty a;
11879 expr_ty b;
11880 if (
11881 (a = bitwise_xor_rule(p)) // bitwise_xor
11882 &&
11883 (_literal = _PyPegen_expect_token(p, 32)) // token='^'
11884 &&
11885 (b = bitwise_and_rule(p)) // bitwise_and
11886 )
11887 {
11888 D(fprintf(stderr, "%*c+ bitwise_xor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_xor '^' bitwise_and"));
11889 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11890 if (_token == NULL) {
11891 D(p->level--);
11892 return NULL;
11893 }
11894 int _end_lineno = _token->end_lineno;
11895 UNUSED(_end_lineno); // Only used by EXTRA macro
11896 int _end_col_offset = _token->end_col_offset;
11897 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020011898 _res = _PyAST_BinOp ( a , BitXor , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011899 if (_res == NULL && PyErr_Occurred()) {
11900 p->error_indicator = 1;
11901 D(p->level--);
11902 return NULL;
11903 }
11904 goto done;
11905 }
11906 p->mark = _mark;
11907 D(fprintf(stderr, "%*c%s bitwise_xor[%d-%d]: %s failed!\n", p->level, ' ',
11908 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_xor '^' bitwise_and"));
11909 }
11910 { // bitwise_and
11911 if (p->error_indicator) {
11912 D(p->level--);
11913 return NULL;
11914 }
11915 D(fprintf(stderr, "%*c> bitwise_xor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_and"));
11916 expr_ty bitwise_and_var;
11917 if (
11918 (bitwise_and_var = bitwise_and_rule(p)) // bitwise_and
11919 )
11920 {
11921 D(fprintf(stderr, "%*c+ bitwise_xor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_and"));
11922 _res = bitwise_and_var;
11923 goto done;
11924 }
11925 p->mark = _mark;
11926 D(fprintf(stderr, "%*c%s bitwise_xor[%d-%d]: %s failed!\n", p->level, ' ',
11927 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_and"));
11928 }
11929 _res = NULL;
11930 done:
11931 D(p->level--);
11932 return _res;
11933}
11934
11935// Left-recursive
11936// bitwise_and: bitwise_and '&' shift_expr | shift_expr
11937static expr_ty bitwise_and_raw(Parser *);
11938static expr_ty
11939bitwise_and_rule(Parser *p)
11940{
11941 D(p->level++);
11942 expr_ty _res = NULL;
11943 if (_PyPegen_is_memoized(p, bitwise_and_type, &_res)) {
11944 D(p->level--);
11945 return _res;
11946 }
11947 int _mark = p->mark;
11948 int _resmark = p->mark;
11949 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080011950 int tmpvar_4 = _PyPegen_update_memo(p, _mark, bitwise_and_type, _res);
11951 if (tmpvar_4) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011952 D(p->level--);
11953 return _res;
11954 }
11955 p->mark = _mark;
11956 void *_raw = bitwise_and_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020011957 if (p->error_indicator)
11958 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011959 if (_raw == NULL || p->mark <= _resmark)
11960 break;
11961 _resmark = p->mark;
11962 _res = _raw;
11963 }
11964 p->mark = _resmark;
11965 D(p->level--);
11966 return _res;
11967}
11968static expr_ty
11969bitwise_and_raw(Parser *p)
11970{
11971 D(p->level++);
11972 if (p->error_indicator) {
11973 D(p->level--);
11974 return NULL;
11975 }
11976 expr_ty _res = NULL;
11977 int _mark = p->mark;
11978 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11979 p->error_indicator = 1;
11980 D(p->level--);
11981 return NULL;
11982 }
11983 int _start_lineno = p->tokens[_mark]->lineno;
11984 UNUSED(_start_lineno); // Only used by EXTRA macro
11985 int _start_col_offset = p->tokens[_mark]->col_offset;
11986 UNUSED(_start_col_offset); // Only used by EXTRA macro
11987 { // bitwise_and '&' shift_expr
11988 if (p->error_indicator) {
11989 D(p->level--);
11990 return NULL;
11991 }
11992 D(fprintf(stderr, "%*c> bitwise_and[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_and '&' shift_expr"));
11993 Token * _literal;
11994 expr_ty a;
11995 expr_ty b;
11996 if (
11997 (a = bitwise_and_rule(p)) // bitwise_and
11998 &&
11999 (_literal = _PyPegen_expect_token(p, 19)) // token='&'
12000 &&
12001 (b = shift_expr_rule(p)) // shift_expr
12002 )
12003 {
12004 D(fprintf(stderr, "%*c+ bitwise_and[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_and '&' shift_expr"));
12005 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12006 if (_token == NULL) {
12007 D(p->level--);
12008 return NULL;
12009 }
12010 int _end_lineno = _token->end_lineno;
12011 UNUSED(_end_lineno); // Only used by EXTRA macro
12012 int _end_col_offset = _token->end_col_offset;
12013 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020012014 _res = _PyAST_BinOp ( a , BitAnd , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012015 if (_res == NULL && PyErr_Occurred()) {
12016 p->error_indicator = 1;
12017 D(p->level--);
12018 return NULL;
12019 }
12020 goto done;
12021 }
12022 p->mark = _mark;
12023 D(fprintf(stderr, "%*c%s bitwise_and[%d-%d]: %s failed!\n", p->level, ' ',
12024 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_and '&' shift_expr"));
12025 }
12026 { // shift_expr
12027 if (p->error_indicator) {
12028 D(p->level--);
12029 return NULL;
12030 }
12031 D(fprintf(stderr, "%*c> bitwise_and[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "shift_expr"));
12032 expr_ty shift_expr_var;
12033 if (
12034 (shift_expr_var = shift_expr_rule(p)) // shift_expr
12035 )
12036 {
12037 D(fprintf(stderr, "%*c+ bitwise_and[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "shift_expr"));
12038 _res = shift_expr_var;
12039 goto done;
12040 }
12041 p->mark = _mark;
12042 D(fprintf(stderr, "%*c%s bitwise_and[%d-%d]: %s failed!\n", p->level, ' ',
12043 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "shift_expr"));
12044 }
12045 _res = NULL;
12046 done:
12047 D(p->level--);
12048 return _res;
12049}
12050
12051// Left-recursive
12052// shift_expr: shift_expr '<<' sum | shift_expr '>>' sum | sum
12053static expr_ty shift_expr_raw(Parser *);
12054static expr_ty
12055shift_expr_rule(Parser *p)
12056{
12057 D(p->level++);
12058 expr_ty _res = NULL;
12059 if (_PyPegen_is_memoized(p, shift_expr_type, &_res)) {
12060 D(p->level--);
12061 return _res;
12062 }
12063 int _mark = p->mark;
12064 int _resmark = p->mark;
12065 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080012066 int tmpvar_5 = _PyPegen_update_memo(p, _mark, shift_expr_type, _res);
12067 if (tmpvar_5) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012068 D(p->level--);
12069 return _res;
12070 }
12071 p->mark = _mark;
12072 void *_raw = shift_expr_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020012073 if (p->error_indicator)
12074 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012075 if (_raw == NULL || p->mark <= _resmark)
12076 break;
12077 _resmark = p->mark;
12078 _res = _raw;
12079 }
12080 p->mark = _resmark;
12081 D(p->level--);
12082 return _res;
12083}
12084static expr_ty
12085shift_expr_raw(Parser *p)
12086{
12087 D(p->level++);
12088 if (p->error_indicator) {
12089 D(p->level--);
12090 return NULL;
12091 }
12092 expr_ty _res = NULL;
12093 int _mark = p->mark;
12094 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12095 p->error_indicator = 1;
12096 D(p->level--);
12097 return NULL;
12098 }
12099 int _start_lineno = p->tokens[_mark]->lineno;
12100 UNUSED(_start_lineno); // Only used by EXTRA macro
12101 int _start_col_offset = p->tokens[_mark]->col_offset;
12102 UNUSED(_start_col_offset); // Only used by EXTRA macro
12103 { // shift_expr '<<' sum
12104 if (p->error_indicator) {
12105 D(p->level--);
12106 return NULL;
12107 }
12108 D(fprintf(stderr, "%*c> shift_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "shift_expr '<<' sum"));
12109 Token * _literal;
12110 expr_ty a;
12111 expr_ty b;
12112 if (
12113 (a = shift_expr_rule(p)) // shift_expr
12114 &&
12115 (_literal = _PyPegen_expect_token(p, 33)) // token='<<'
12116 &&
12117 (b = sum_rule(p)) // sum
12118 )
12119 {
12120 D(fprintf(stderr, "%*c+ shift_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "shift_expr '<<' sum"));
12121 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12122 if (_token == NULL) {
12123 D(p->level--);
12124 return NULL;
12125 }
12126 int _end_lineno = _token->end_lineno;
12127 UNUSED(_end_lineno); // Only used by EXTRA macro
12128 int _end_col_offset = _token->end_col_offset;
12129 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020012130 _res = _PyAST_BinOp ( a , LShift , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012131 if (_res == NULL && PyErr_Occurred()) {
12132 p->error_indicator = 1;
12133 D(p->level--);
12134 return NULL;
12135 }
12136 goto done;
12137 }
12138 p->mark = _mark;
12139 D(fprintf(stderr, "%*c%s shift_expr[%d-%d]: %s failed!\n", p->level, ' ',
12140 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "shift_expr '<<' sum"));
12141 }
12142 { // shift_expr '>>' sum
12143 if (p->error_indicator) {
12144 D(p->level--);
12145 return NULL;
12146 }
12147 D(fprintf(stderr, "%*c> shift_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "shift_expr '>>' sum"));
12148 Token * _literal;
12149 expr_ty a;
12150 expr_ty b;
12151 if (
12152 (a = shift_expr_rule(p)) // shift_expr
12153 &&
12154 (_literal = _PyPegen_expect_token(p, 34)) // token='>>'
12155 &&
12156 (b = sum_rule(p)) // sum
12157 )
12158 {
12159 D(fprintf(stderr, "%*c+ shift_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "shift_expr '>>' sum"));
12160 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12161 if (_token == NULL) {
12162 D(p->level--);
12163 return NULL;
12164 }
12165 int _end_lineno = _token->end_lineno;
12166 UNUSED(_end_lineno); // Only used by EXTRA macro
12167 int _end_col_offset = _token->end_col_offset;
12168 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020012169 _res = _PyAST_BinOp ( a , RShift , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012170 if (_res == NULL && PyErr_Occurred()) {
12171 p->error_indicator = 1;
12172 D(p->level--);
12173 return NULL;
12174 }
12175 goto done;
12176 }
12177 p->mark = _mark;
12178 D(fprintf(stderr, "%*c%s shift_expr[%d-%d]: %s failed!\n", p->level, ' ',
12179 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "shift_expr '>>' sum"));
12180 }
12181 { // sum
12182 if (p->error_indicator) {
12183 D(p->level--);
12184 return NULL;
12185 }
12186 D(fprintf(stderr, "%*c> shift_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sum"));
12187 expr_ty sum_var;
12188 if (
12189 (sum_var = sum_rule(p)) // sum
12190 )
12191 {
12192 D(fprintf(stderr, "%*c+ shift_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sum"));
12193 _res = sum_var;
12194 goto done;
12195 }
12196 p->mark = _mark;
12197 D(fprintf(stderr, "%*c%s shift_expr[%d-%d]: %s failed!\n", p->level, ' ',
12198 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sum"));
12199 }
12200 _res = NULL;
12201 done:
12202 D(p->level--);
12203 return _res;
12204}
12205
12206// Left-recursive
12207// sum: sum '+' term | sum '-' term | term
12208static expr_ty sum_raw(Parser *);
12209static expr_ty
12210sum_rule(Parser *p)
12211{
12212 D(p->level++);
12213 expr_ty _res = NULL;
12214 if (_PyPegen_is_memoized(p, sum_type, &_res)) {
12215 D(p->level--);
12216 return _res;
12217 }
12218 int _mark = p->mark;
12219 int _resmark = p->mark;
12220 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080012221 int tmpvar_6 = _PyPegen_update_memo(p, _mark, sum_type, _res);
12222 if (tmpvar_6) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012223 D(p->level--);
12224 return _res;
12225 }
12226 p->mark = _mark;
12227 void *_raw = sum_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020012228 if (p->error_indicator)
12229 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012230 if (_raw == NULL || p->mark <= _resmark)
12231 break;
12232 _resmark = p->mark;
12233 _res = _raw;
12234 }
12235 p->mark = _resmark;
12236 D(p->level--);
12237 return _res;
12238}
12239static expr_ty
12240sum_raw(Parser *p)
12241{
12242 D(p->level++);
12243 if (p->error_indicator) {
12244 D(p->level--);
12245 return NULL;
12246 }
12247 expr_ty _res = NULL;
12248 int _mark = p->mark;
12249 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12250 p->error_indicator = 1;
12251 D(p->level--);
12252 return NULL;
12253 }
12254 int _start_lineno = p->tokens[_mark]->lineno;
12255 UNUSED(_start_lineno); // Only used by EXTRA macro
12256 int _start_col_offset = p->tokens[_mark]->col_offset;
12257 UNUSED(_start_col_offset); // Only used by EXTRA macro
12258 { // sum '+' term
12259 if (p->error_indicator) {
12260 D(p->level--);
12261 return NULL;
12262 }
12263 D(fprintf(stderr, "%*c> sum[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sum '+' term"));
12264 Token * _literal;
12265 expr_ty a;
12266 expr_ty b;
12267 if (
12268 (a = sum_rule(p)) // sum
12269 &&
12270 (_literal = _PyPegen_expect_token(p, 14)) // token='+'
12271 &&
12272 (b = term_rule(p)) // term
12273 )
12274 {
12275 D(fprintf(stderr, "%*c+ sum[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sum '+' term"));
12276 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12277 if (_token == NULL) {
12278 D(p->level--);
12279 return NULL;
12280 }
12281 int _end_lineno = _token->end_lineno;
12282 UNUSED(_end_lineno); // Only used by EXTRA macro
12283 int _end_col_offset = _token->end_col_offset;
12284 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020012285 _res = _PyAST_BinOp ( a , Add , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012286 if (_res == NULL && PyErr_Occurred()) {
12287 p->error_indicator = 1;
12288 D(p->level--);
12289 return NULL;
12290 }
12291 goto done;
12292 }
12293 p->mark = _mark;
12294 D(fprintf(stderr, "%*c%s sum[%d-%d]: %s failed!\n", p->level, ' ',
12295 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sum '+' term"));
12296 }
12297 { // sum '-' term
12298 if (p->error_indicator) {
12299 D(p->level--);
12300 return NULL;
12301 }
12302 D(fprintf(stderr, "%*c> sum[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sum '-' term"));
12303 Token * _literal;
12304 expr_ty a;
12305 expr_ty b;
12306 if (
12307 (a = sum_rule(p)) // sum
12308 &&
12309 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
12310 &&
12311 (b = term_rule(p)) // term
12312 )
12313 {
12314 D(fprintf(stderr, "%*c+ sum[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sum '-' term"));
12315 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12316 if (_token == NULL) {
12317 D(p->level--);
12318 return NULL;
12319 }
12320 int _end_lineno = _token->end_lineno;
12321 UNUSED(_end_lineno); // Only used by EXTRA macro
12322 int _end_col_offset = _token->end_col_offset;
12323 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020012324 _res = _PyAST_BinOp ( a , Sub , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012325 if (_res == NULL && PyErr_Occurred()) {
12326 p->error_indicator = 1;
12327 D(p->level--);
12328 return NULL;
12329 }
12330 goto done;
12331 }
12332 p->mark = _mark;
12333 D(fprintf(stderr, "%*c%s sum[%d-%d]: %s failed!\n", p->level, ' ',
12334 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sum '-' term"));
12335 }
12336 { // term
12337 if (p->error_indicator) {
12338 D(p->level--);
12339 return NULL;
12340 }
12341 D(fprintf(stderr, "%*c> sum[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term"));
12342 expr_ty term_var;
12343 if (
12344 (term_var = term_rule(p)) // term
12345 )
12346 {
12347 D(fprintf(stderr, "%*c+ sum[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term"));
12348 _res = term_var;
12349 goto done;
12350 }
12351 p->mark = _mark;
12352 D(fprintf(stderr, "%*c%s sum[%d-%d]: %s failed!\n", p->level, ' ',
12353 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term"));
12354 }
12355 _res = NULL;
12356 done:
12357 D(p->level--);
12358 return _res;
12359}
12360
12361// Left-recursive
12362// term:
12363// | term '*' factor
12364// | term '/' factor
12365// | term '//' factor
12366// | term '%' factor
12367// | term '@' factor
12368// | factor
12369static expr_ty term_raw(Parser *);
12370static expr_ty
12371term_rule(Parser *p)
12372{
12373 D(p->level++);
12374 expr_ty _res = NULL;
12375 if (_PyPegen_is_memoized(p, term_type, &_res)) {
12376 D(p->level--);
12377 return _res;
12378 }
12379 int _mark = p->mark;
12380 int _resmark = p->mark;
12381 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080012382 int tmpvar_7 = _PyPegen_update_memo(p, _mark, term_type, _res);
12383 if (tmpvar_7) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012384 D(p->level--);
12385 return _res;
12386 }
12387 p->mark = _mark;
12388 void *_raw = term_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020012389 if (p->error_indicator)
12390 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012391 if (_raw == NULL || p->mark <= _resmark)
12392 break;
12393 _resmark = p->mark;
12394 _res = _raw;
12395 }
12396 p->mark = _resmark;
12397 D(p->level--);
12398 return _res;
12399}
12400static expr_ty
12401term_raw(Parser *p)
12402{
12403 D(p->level++);
12404 if (p->error_indicator) {
12405 D(p->level--);
12406 return NULL;
12407 }
12408 expr_ty _res = NULL;
12409 int _mark = p->mark;
12410 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12411 p->error_indicator = 1;
12412 D(p->level--);
12413 return NULL;
12414 }
12415 int _start_lineno = p->tokens[_mark]->lineno;
12416 UNUSED(_start_lineno); // Only used by EXTRA macro
12417 int _start_col_offset = p->tokens[_mark]->col_offset;
12418 UNUSED(_start_col_offset); // Only used by EXTRA macro
12419 { // term '*' factor
12420 if (p->error_indicator) {
12421 D(p->level--);
12422 return NULL;
12423 }
12424 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '*' factor"));
12425 Token * _literal;
12426 expr_ty a;
12427 expr_ty b;
12428 if (
12429 (a = term_rule(p)) // term
12430 &&
12431 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
12432 &&
12433 (b = factor_rule(p)) // factor
12434 )
12435 {
12436 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '*' factor"));
12437 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12438 if (_token == NULL) {
12439 D(p->level--);
12440 return NULL;
12441 }
12442 int _end_lineno = _token->end_lineno;
12443 UNUSED(_end_lineno); // Only used by EXTRA macro
12444 int _end_col_offset = _token->end_col_offset;
12445 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020012446 _res = _PyAST_BinOp ( a , Mult , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012447 if (_res == NULL && PyErr_Occurred()) {
12448 p->error_indicator = 1;
12449 D(p->level--);
12450 return NULL;
12451 }
12452 goto done;
12453 }
12454 p->mark = _mark;
12455 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
12456 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '*' factor"));
12457 }
12458 { // term '/' factor
12459 if (p->error_indicator) {
12460 D(p->level--);
12461 return NULL;
12462 }
12463 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '/' factor"));
12464 Token * _literal;
12465 expr_ty a;
12466 expr_ty b;
12467 if (
12468 (a = term_rule(p)) // term
12469 &&
12470 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
12471 &&
12472 (b = factor_rule(p)) // factor
12473 )
12474 {
12475 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '/' factor"));
12476 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12477 if (_token == NULL) {
12478 D(p->level--);
12479 return NULL;
12480 }
12481 int _end_lineno = _token->end_lineno;
12482 UNUSED(_end_lineno); // Only used by EXTRA macro
12483 int _end_col_offset = _token->end_col_offset;
12484 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020012485 _res = _PyAST_BinOp ( a , Div , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012486 if (_res == NULL && PyErr_Occurred()) {
12487 p->error_indicator = 1;
12488 D(p->level--);
12489 return NULL;
12490 }
12491 goto done;
12492 }
12493 p->mark = _mark;
12494 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
12495 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '/' factor"));
12496 }
12497 { // term '//' factor
12498 if (p->error_indicator) {
12499 D(p->level--);
12500 return NULL;
12501 }
12502 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '//' factor"));
12503 Token * _literal;
12504 expr_ty a;
12505 expr_ty b;
12506 if (
12507 (a = term_rule(p)) // term
12508 &&
12509 (_literal = _PyPegen_expect_token(p, 47)) // token='//'
12510 &&
12511 (b = factor_rule(p)) // factor
12512 )
12513 {
12514 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '//' factor"));
12515 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12516 if (_token == NULL) {
12517 D(p->level--);
12518 return NULL;
12519 }
12520 int _end_lineno = _token->end_lineno;
12521 UNUSED(_end_lineno); // Only used by EXTRA macro
12522 int _end_col_offset = _token->end_col_offset;
12523 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020012524 _res = _PyAST_BinOp ( a , FloorDiv , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012525 if (_res == NULL && PyErr_Occurred()) {
12526 p->error_indicator = 1;
12527 D(p->level--);
12528 return NULL;
12529 }
12530 goto done;
12531 }
12532 p->mark = _mark;
12533 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
12534 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '//' factor"));
12535 }
12536 { // term '%' factor
12537 if (p->error_indicator) {
12538 D(p->level--);
12539 return NULL;
12540 }
12541 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '%' factor"));
12542 Token * _literal;
12543 expr_ty a;
12544 expr_ty b;
12545 if (
12546 (a = term_rule(p)) // term
12547 &&
12548 (_literal = _PyPegen_expect_token(p, 24)) // token='%'
12549 &&
12550 (b = factor_rule(p)) // factor
12551 )
12552 {
12553 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '%' factor"));
12554 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12555 if (_token == NULL) {
12556 D(p->level--);
12557 return NULL;
12558 }
12559 int _end_lineno = _token->end_lineno;
12560 UNUSED(_end_lineno); // Only used by EXTRA macro
12561 int _end_col_offset = _token->end_col_offset;
12562 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020012563 _res = _PyAST_BinOp ( a , Mod , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012564 if (_res == NULL && PyErr_Occurred()) {
12565 p->error_indicator = 1;
12566 D(p->level--);
12567 return NULL;
12568 }
12569 goto done;
12570 }
12571 p->mark = _mark;
12572 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
12573 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '%' factor"));
12574 }
12575 { // term '@' factor
12576 if (p->error_indicator) {
12577 D(p->level--);
12578 return NULL;
12579 }
12580 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '@' factor"));
12581 Token * _literal;
12582 expr_ty a;
12583 expr_ty b;
12584 if (
12585 (a = term_rule(p)) // term
12586 &&
12587 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
12588 &&
12589 (b = factor_rule(p)) // factor
12590 )
12591 {
12592 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '@' factor"));
12593 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12594 if (_token == NULL) {
12595 D(p->level--);
12596 return NULL;
12597 }
12598 int _end_lineno = _token->end_lineno;
12599 UNUSED(_end_lineno); // Only used by EXTRA macro
12600 int _end_col_offset = _token->end_col_offset;
12601 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020012602 _res = CHECK_VERSION ( expr_ty , 5 , "The '@' operator is" , _PyAST_BinOp ( a , MatMult , b , EXTRA ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012603 if (_res == NULL && PyErr_Occurred()) {
12604 p->error_indicator = 1;
12605 D(p->level--);
12606 return NULL;
12607 }
12608 goto done;
12609 }
12610 p->mark = _mark;
12611 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
12612 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '@' factor"));
12613 }
12614 { // factor
12615 if (p->error_indicator) {
12616 D(p->level--);
12617 return NULL;
12618 }
12619 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "factor"));
12620 expr_ty factor_var;
12621 if (
12622 (factor_var = factor_rule(p)) // factor
12623 )
12624 {
12625 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "factor"));
12626 _res = factor_var;
12627 goto done;
12628 }
12629 p->mark = _mark;
12630 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
12631 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "factor"));
12632 }
12633 _res = NULL;
12634 done:
12635 D(p->level--);
12636 return _res;
12637}
12638
12639// factor: '+' factor | '-' factor | '~' factor | power
12640static expr_ty
12641factor_rule(Parser *p)
12642{
12643 D(p->level++);
12644 if (p->error_indicator) {
12645 D(p->level--);
12646 return NULL;
12647 }
12648 expr_ty _res = NULL;
12649 if (_PyPegen_is_memoized(p, factor_type, &_res)) {
12650 D(p->level--);
12651 return _res;
12652 }
12653 int _mark = p->mark;
12654 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12655 p->error_indicator = 1;
12656 D(p->level--);
12657 return NULL;
12658 }
12659 int _start_lineno = p->tokens[_mark]->lineno;
12660 UNUSED(_start_lineno); // Only used by EXTRA macro
12661 int _start_col_offset = p->tokens[_mark]->col_offset;
12662 UNUSED(_start_col_offset); // Only used by EXTRA macro
12663 { // '+' factor
12664 if (p->error_indicator) {
12665 D(p->level--);
12666 return NULL;
12667 }
12668 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'+' factor"));
12669 Token * _literal;
12670 expr_ty a;
12671 if (
12672 (_literal = _PyPegen_expect_token(p, 14)) // token='+'
12673 &&
12674 (a = factor_rule(p)) // factor
12675 )
12676 {
12677 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'+' factor"));
12678 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12679 if (_token == NULL) {
12680 D(p->level--);
12681 return NULL;
12682 }
12683 int _end_lineno = _token->end_lineno;
12684 UNUSED(_end_lineno); // Only used by EXTRA macro
12685 int _end_col_offset = _token->end_col_offset;
12686 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020012687 _res = _PyAST_UnaryOp ( UAdd , a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012688 if (_res == NULL && PyErr_Occurred()) {
12689 p->error_indicator = 1;
12690 D(p->level--);
12691 return NULL;
12692 }
12693 goto done;
12694 }
12695 p->mark = _mark;
12696 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
12697 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+' factor"));
12698 }
12699 { // '-' factor
12700 if (p->error_indicator) {
12701 D(p->level--);
12702 return NULL;
12703 }
12704 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-' factor"));
12705 Token * _literal;
12706 expr_ty a;
12707 if (
12708 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
12709 &&
12710 (a = factor_rule(p)) // factor
12711 )
12712 {
12713 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-' factor"));
12714 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12715 if (_token == NULL) {
12716 D(p->level--);
12717 return NULL;
12718 }
12719 int _end_lineno = _token->end_lineno;
12720 UNUSED(_end_lineno); // Only used by EXTRA macro
12721 int _end_col_offset = _token->end_col_offset;
12722 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020012723 _res = _PyAST_UnaryOp ( USub , a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012724 if (_res == NULL && PyErr_Occurred()) {
12725 p->error_indicator = 1;
12726 D(p->level--);
12727 return NULL;
12728 }
12729 goto done;
12730 }
12731 p->mark = _mark;
12732 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
12733 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-' factor"));
12734 }
12735 { // '~' factor
12736 if (p->error_indicator) {
12737 D(p->level--);
12738 return NULL;
12739 }
12740 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'~' factor"));
12741 Token * _literal;
12742 expr_ty a;
12743 if (
12744 (_literal = _PyPegen_expect_token(p, 31)) // token='~'
12745 &&
12746 (a = factor_rule(p)) // factor
12747 )
12748 {
12749 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'~' factor"));
12750 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12751 if (_token == NULL) {
12752 D(p->level--);
12753 return NULL;
12754 }
12755 int _end_lineno = _token->end_lineno;
12756 UNUSED(_end_lineno); // Only used by EXTRA macro
12757 int _end_col_offset = _token->end_col_offset;
12758 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020012759 _res = _PyAST_UnaryOp ( Invert , a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012760 if (_res == NULL && PyErr_Occurred()) {
12761 p->error_indicator = 1;
12762 D(p->level--);
12763 return NULL;
12764 }
12765 goto done;
12766 }
12767 p->mark = _mark;
12768 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
12769 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'~' factor"));
12770 }
12771 { // power
12772 if (p->error_indicator) {
12773 D(p->level--);
12774 return NULL;
12775 }
12776 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "power"));
12777 expr_ty power_var;
12778 if (
12779 (power_var = power_rule(p)) // power
12780 )
12781 {
12782 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "power"));
12783 _res = power_var;
12784 goto done;
12785 }
12786 p->mark = _mark;
12787 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
12788 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "power"));
12789 }
12790 _res = NULL;
12791 done:
12792 _PyPegen_insert_memo(p, _mark, factor_type, _res);
12793 D(p->level--);
12794 return _res;
12795}
12796
12797// power: await_primary '**' factor | await_primary
12798static expr_ty
12799power_rule(Parser *p)
12800{
12801 D(p->level++);
12802 if (p->error_indicator) {
12803 D(p->level--);
12804 return NULL;
12805 }
12806 expr_ty _res = NULL;
12807 int _mark = p->mark;
12808 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12809 p->error_indicator = 1;
12810 D(p->level--);
12811 return NULL;
12812 }
12813 int _start_lineno = p->tokens[_mark]->lineno;
12814 UNUSED(_start_lineno); // Only used by EXTRA macro
12815 int _start_col_offset = p->tokens[_mark]->col_offset;
12816 UNUSED(_start_col_offset); // Only used by EXTRA macro
12817 { // await_primary '**' factor
12818 if (p->error_indicator) {
12819 D(p->level--);
12820 return NULL;
12821 }
12822 D(fprintf(stderr, "%*c> power[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "await_primary '**' factor"));
12823 Token * _literal;
12824 expr_ty a;
12825 expr_ty b;
12826 if (
12827 (a = await_primary_rule(p)) // await_primary
12828 &&
12829 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
12830 &&
12831 (b = factor_rule(p)) // factor
12832 )
12833 {
12834 D(fprintf(stderr, "%*c+ power[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "await_primary '**' factor"));
12835 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12836 if (_token == NULL) {
12837 D(p->level--);
12838 return NULL;
12839 }
12840 int _end_lineno = _token->end_lineno;
12841 UNUSED(_end_lineno); // Only used by EXTRA macro
12842 int _end_col_offset = _token->end_col_offset;
12843 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020012844 _res = _PyAST_BinOp ( a , Pow , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012845 if (_res == NULL && PyErr_Occurred()) {
12846 p->error_indicator = 1;
12847 D(p->level--);
12848 return NULL;
12849 }
12850 goto done;
12851 }
12852 p->mark = _mark;
12853 D(fprintf(stderr, "%*c%s power[%d-%d]: %s failed!\n", p->level, ' ',
12854 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "await_primary '**' factor"));
12855 }
12856 { // await_primary
12857 if (p->error_indicator) {
12858 D(p->level--);
12859 return NULL;
12860 }
12861 D(fprintf(stderr, "%*c> power[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "await_primary"));
12862 expr_ty await_primary_var;
12863 if (
12864 (await_primary_var = await_primary_rule(p)) // await_primary
12865 )
12866 {
12867 D(fprintf(stderr, "%*c+ power[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "await_primary"));
12868 _res = await_primary_var;
12869 goto done;
12870 }
12871 p->mark = _mark;
12872 D(fprintf(stderr, "%*c%s power[%d-%d]: %s failed!\n", p->level, ' ',
12873 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "await_primary"));
12874 }
12875 _res = NULL;
12876 done:
12877 D(p->level--);
12878 return _res;
12879}
12880
12881// await_primary: AWAIT primary | primary
12882static expr_ty
12883await_primary_rule(Parser *p)
12884{
12885 D(p->level++);
12886 if (p->error_indicator) {
12887 D(p->level--);
12888 return NULL;
12889 }
12890 expr_ty _res = NULL;
12891 if (_PyPegen_is_memoized(p, await_primary_type, &_res)) {
12892 D(p->level--);
12893 return _res;
12894 }
12895 int _mark = p->mark;
12896 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12897 p->error_indicator = 1;
12898 D(p->level--);
12899 return NULL;
12900 }
12901 int _start_lineno = p->tokens[_mark]->lineno;
12902 UNUSED(_start_lineno); // Only used by EXTRA macro
12903 int _start_col_offset = p->tokens[_mark]->col_offset;
12904 UNUSED(_start_col_offset); // Only used by EXTRA macro
12905 { // AWAIT primary
12906 if (p->error_indicator) {
12907 D(p->level--);
12908 return NULL;
12909 }
12910 D(fprintf(stderr, "%*c> await_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "AWAIT primary"));
12911 expr_ty a;
12912 Token * await_var;
12913 if (
12914 (await_var = _PyPegen_expect_token(p, AWAIT)) // token='AWAIT'
12915 &&
12916 (a = primary_rule(p)) // primary
12917 )
12918 {
12919 D(fprintf(stderr, "%*c+ await_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "AWAIT primary"));
12920 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12921 if (_token == NULL) {
12922 D(p->level--);
12923 return NULL;
12924 }
12925 int _end_lineno = _token->end_lineno;
12926 UNUSED(_end_lineno); // Only used by EXTRA macro
12927 int _end_col_offset = _token->end_col_offset;
12928 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020012929 _res = CHECK_VERSION ( expr_ty , 5 , "Await expressions are" , _PyAST_Await ( a , EXTRA ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012930 if (_res == NULL && PyErr_Occurred()) {
12931 p->error_indicator = 1;
12932 D(p->level--);
12933 return NULL;
12934 }
12935 goto done;
12936 }
12937 p->mark = _mark;
12938 D(fprintf(stderr, "%*c%s await_primary[%d-%d]: %s failed!\n", p->level, ' ',
12939 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "AWAIT primary"));
12940 }
12941 { // primary
12942 if (p->error_indicator) {
12943 D(p->level--);
12944 return NULL;
12945 }
12946 D(fprintf(stderr, "%*c> await_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary"));
12947 expr_ty primary_var;
12948 if (
12949 (primary_var = primary_rule(p)) // primary
12950 )
12951 {
12952 D(fprintf(stderr, "%*c+ await_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary"));
12953 _res = primary_var;
12954 goto done;
12955 }
12956 p->mark = _mark;
12957 D(fprintf(stderr, "%*c%s await_primary[%d-%d]: %s failed!\n", p->level, ' ',
12958 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary"));
12959 }
12960 _res = NULL;
12961 done:
12962 _PyPegen_insert_memo(p, _mark, await_primary_type, _res);
12963 D(p->level--);
12964 return _res;
12965}
12966
12967// Left-recursive
12968// primary:
Lysandros Nikolaou15acc4e2020-10-27 20:54:20 +020012969// | invalid_primary
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012970// | primary '.' NAME
12971// | primary genexp
12972// | primary '(' arguments? ')'
12973// | primary '[' slices ']'
12974// | atom
12975static expr_ty primary_raw(Parser *);
12976static expr_ty
12977primary_rule(Parser *p)
12978{
12979 D(p->level++);
12980 expr_ty _res = NULL;
12981 if (_PyPegen_is_memoized(p, primary_type, &_res)) {
12982 D(p->level--);
12983 return _res;
12984 }
12985 int _mark = p->mark;
12986 int _resmark = p->mark;
12987 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080012988 int tmpvar_8 = _PyPegen_update_memo(p, _mark, primary_type, _res);
12989 if (tmpvar_8) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012990 D(p->level--);
12991 return _res;
12992 }
12993 p->mark = _mark;
12994 void *_raw = primary_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020012995 if (p->error_indicator)
12996 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012997 if (_raw == NULL || p->mark <= _resmark)
12998 break;
12999 _resmark = p->mark;
13000 _res = _raw;
13001 }
13002 p->mark = _resmark;
13003 D(p->level--);
13004 return _res;
13005}
13006static expr_ty
13007primary_raw(Parser *p)
13008{
13009 D(p->level++);
13010 if (p->error_indicator) {
13011 D(p->level--);
13012 return NULL;
13013 }
13014 expr_ty _res = NULL;
13015 int _mark = p->mark;
13016 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13017 p->error_indicator = 1;
13018 D(p->level--);
13019 return NULL;
13020 }
13021 int _start_lineno = p->tokens[_mark]->lineno;
13022 UNUSED(_start_lineno); // Only used by EXTRA macro
13023 int _start_col_offset = p->tokens[_mark]->col_offset;
13024 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou15acc4e2020-10-27 20:54:20 +020013025 if (p->call_invalid_rules) { // invalid_primary
13026 if (p->error_indicator) {
13027 D(p->level--);
13028 return NULL;
13029 }
13030 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_primary"));
13031 void *invalid_primary_var;
13032 if (
13033 (invalid_primary_var = invalid_primary_rule(p)) // invalid_primary
13034 )
13035 {
13036 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_primary"));
13037 _res = invalid_primary_var;
13038 goto done;
13039 }
13040 p->mark = _mark;
13041 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
13042 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_primary"));
13043 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013044 { // primary '.' NAME
13045 if (p->error_indicator) {
13046 D(p->level--);
13047 return NULL;
13048 }
13049 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '.' NAME"));
13050 Token * _literal;
13051 expr_ty a;
13052 expr_ty b;
13053 if (
13054 (a = primary_rule(p)) // primary
13055 &&
13056 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
13057 &&
13058 (b = _PyPegen_name_token(p)) // NAME
13059 )
13060 {
13061 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '.' NAME"));
13062 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13063 if (_token == NULL) {
13064 D(p->level--);
13065 return NULL;
13066 }
13067 int _end_lineno = _token->end_lineno;
13068 UNUSED(_end_lineno); // Only used by EXTRA macro
13069 int _end_col_offset = _token->end_col_offset;
13070 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013071 _res = _PyAST_Attribute ( a , b -> v . Name . id , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013072 if (_res == NULL && PyErr_Occurred()) {
13073 p->error_indicator = 1;
13074 D(p->level--);
13075 return NULL;
13076 }
13077 goto done;
13078 }
13079 p->mark = _mark;
13080 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
13081 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '.' NAME"));
13082 }
13083 { // primary genexp
13084 if (p->error_indicator) {
13085 D(p->level--);
13086 return NULL;
13087 }
13088 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary genexp"));
13089 expr_ty a;
13090 expr_ty b;
13091 if (
13092 (a = primary_rule(p)) // primary
13093 &&
13094 (b = genexp_rule(p)) // genexp
13095 )
13096 {
13097 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary genexp"));
13098 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13099 if (_token == NULL) {
13100 D(p->level--);
13101 return NULL;
13102 }
13103 int _end_lineno = _token->end_lineno;
13104 UNUSED(_end_lineno); // Only used by EXTRA macro
13105 int _end_col_offset = _token->end_col_offset;
13106 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013107 _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 +010013108 if (_res == NULL && PyErr_Occurred()) {
13109 p->error_indicator = 1;
13110 D(p->level--);
13111 return NULL;
13112 }
13113 goto done;
13114 }
13115 p->mark = _mark;
13116 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
13117 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary genexp"));
13118 }
13119 { // primary '(' arguments? ')'
13120 if (p->error_indicator) {
13121 D(p->level--);
13122 return NULL;
13123 }
13124 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '(' arguments? ')'"));
13125 Token * _literal;
13126 Token * _literal_1;
13127 expr_ty a;
13128 void *b;
13129 if (
13130 (a = primary_rule(p)) // primary
13131 &&
13132 (_literal = _PyPegen_expect_token(p, 7)) // token='('
13133 &&
13134 (b = arguments_rule(p), 1) // arguments?
13135 &&
13136 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
13137 )
13138 {
13139 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '(' arguments? ')'"));
13140 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13141 if (_token == NULL) {
13142 D(p->level--);
13143 return NULL;
13144 }
13145 int _end_lineno = _token->end_lineno;
13146 UNUSED(_end_lineno); // Only used by EXTRA macro
13147 int _end_col_offset = _token->end_col_offset;
13148 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013149 _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 +010013150 if (_res == NULL && PyErr_Occurred()) {
13151 p->error_indicator = 1;
13152 D(p->level--);
13153 return NULL;
13154 }
13155 goto done;
13156 }
13157 p->mark = _mark;
13158 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
13159 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '(' arguments? ')'"));
13160 }
13161 { // primary '[' slices ']'
13162 if (p->error_indicator) {
13163 D(p->level--);
13164 return NULL;
13165 }
13166 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '[' slices ']'"));
13167 Token * _literal;
13168 Token * _literal_1;
13169 expr_ty a;
13170 expr_ty b;
13171 if (
13172 (a = primary_rule(p)) // primary
13173 &&
13174 (_literal = _PyPegen_expect_token(p, 9)) // token='['
13175 &&
13176 (b = slices_rule(p)) // slices
13177 &&
13178 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
13179 )
13180 {
13181 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '[' slices ']'"));
13182 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13183 if (_token == NULL) {
13184 D(p->level--);
13185 return NULL;
13186 }
13187 int _end_lineno = _token->end_lineno;
13188 UNUSED(_end_lineno); // Only used by EXTRA macro
13189 int _end_col_offset = _token->end_col_offset;
13190 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013191 _res = _PyAST_Subscript ( a , b , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013192 if (_res == NULL && PyErr_Occurred()) {
13193 p->error_indicator = 1;
13194 D(p->level--);
13195 return NULL;
13196 }
13197 goto done;
13198 }
13199 p->mark = _mark;
13200 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
13201 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '[' slices ']'"));
13202 }
13203 { // atom
13204 if (p->error_indicator) {
13205 D(p->level--);
13206 return NULL;
13207 }
13208 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "atom"));
13209 expr_ty atom_var;
13210 if (
13211 (atom_var = atom_rule(p)) // atom
13212 )
13213 {
13214 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "atom"));
13215 _res = atom_var;
13216 goto done;
13217 }
13218 p->mark = _mark;
13219 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
13220 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "atom"));
13221 }
13222 _res = NULL;
13223 done:
13224 D(p->level--);
13225 return _res;
13226}
13227
13228// slices: slice !',' | ','.slice+ ','?
13229static expr_ty
13230slices_rule(Parser *p)
13231{
13232 D(p->level++);
13233 if (p->error_indicator) {
13234 D(p->level--);
13235 return NULL;
13236 }
13237 expr_ty _res = NULL;
13238 int _mark = p->mark;
13239 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13240 p->error_indicator = 1;
13241 D(p->level--);
13242 return NULL;
13243 }
13244 int _start_lineno = p->tokens[_mark]->lineno;
13245 UNUSED(_start_lineno); // Only used by EXTRA macro
13246 int _start_col_offset = p->tokens[_mark]->col_offset;
13247 UNUSED(_start_col_offset); // Only used by EXTRA macro
13248 { // slice !','
13249 if (p->error_indicator) {
13250 D(p->level--);
13251 return NULL;
13252 }
13253 D(fprintf(stderr, "%*c> slices[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slice !','"));
13254 expr_ty a;
13255 if (
13256 (a = slice_rule(p)) // slice
13257 &&
13258 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 12) // token=','
13259 )
13260 {
13261 D(fprintf(stderr, "%*c+ slices[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slice !','"));
13262 _res = a;
13263 if (_res == NULL && PyErr_Occurred()) {
13264 p->error_indicator = 1;
13265 D(p->level--);
13266 return NULL;
13267 }
13268 goto done;
13269 }
13270 p->mark = _mark;
13271 D(fprintf(stderr, "%*c%s slices[%d-%d]: %s failed!\n", p->level, ' ',
13272 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slice !','"));
13273 }
13274 { // ','.slice+ ','?
13275 if (p->error_indicator) {
13276 D(p->level--);
13277 return NULL;
13278 }
13279 D(fprintf(stderr, "%*c> slices[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.slice+ ','?"));
13280 void *_opt_var;
13281 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +010013282 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013283 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080013284 (a = (asdl_expr_seq*)_gather_108_rule(p)) // ','.slice+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013285 &&
13286 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
13287 )
13288 {
13289 D(fprintf(stderr, "%*c+ slices[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.slice+ ','?"));
13290 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13291 if (_token == NULL) {
13292 D(p->level--);
13293 return NULL;
13294 }
13295 int _end_lineno = _token->end_lineno;
13296 UNUSED(_end_lineno); // Only used by EXTRA macro
13297 int _end_col_offset = _token->end_col_offset;
13298 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013299 _res = _PyAST_Tuple ( a , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013300 if (_res == NULL && PyErr_Occurred()) {
13301 p->error_indicator = 1;
13302 D(p->level--);
13303 return NULL;
13304 }
13305 goto done;
13306 }
13307 p->mark = _mark;
13308 D(fprintf(stderr, "%*c%s slices[%d-%d]: %s failed!\n", p->level, ' ',
13309 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.slice+ ','?"));
13310 }
13311 _res = NULL;
13312 done:
13313 D(p->level--);
13314 return _res;
13315}
13316
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020013317// slice: expression? ':' expression? [':' expression?] | named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013318static expr_ty
13319slice_rule(Parser *p)
13320{
13321 D(p->level++);
13322 if (p->error_indicator) {
13323 D(p->level--);
13324 return NULL;
13325 }
13326 expr_ty _res = NULL;
13327 int _mark = p->mark;
13328 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13329 p->error_indicator = 1;
13330 D(p->level--);
13331 return NULL;
13332 }
13333 int _start_lineno = p->tokens[_mark]->lineno;
13334 UNUSED(_start_lineno); // Only used by EXTRA macro
13335 int _start_col_offset = p->tokens[_mark]->col_offset;
13336 UNUSED(_start_col_offset); // Only used by EXTRA macro
13337 { // expression? ':' expression? [':' expression?]
13338 if (p->error_indicator) {
13339 D(p->level--);
13340 return NULL;
13341 }
13342 D(fprintf(stderr, "%*c> slice[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression? ':' expression? [':' expression?]"));
13343 Token * _literal;
13344 void *a;
13345 void *b;
13346 void *c;
13347 if (
13348 (a = expression_rule(p), 1) // expression?
13349 &&
13350 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
13351 &&
13352 (b = expression_rule(p), 1) // expression?
13353 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080013354 (c = _tmp_110_rule(p), 1) // [':' expression?]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013355 )
13356 {
13357 D(fprintf(stderr, "%*c+ slice[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression? ':' expression? [':' expression?]"));
13358 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13359 if (_token == NULL) {
13360 D(p->level--);
13361 return NULL;
13362 }
13363 int _end_lineno = _token->end_lineno;
13364 UNUSED(_end_lineno); // Only used by EXTRA macro
13365 int _end_col_offset = _token->end_col_offset;
13366 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013367 _res = _PyAST_Slice ( a , b , c , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013368 if (_res == NULL && PyErr_Occurred()) {
13369 p->error_indicator = 1;
13370 D(p->level--);
13371 return NULL;
13372 }
13373 goto done;
13374 }
13375 p->mark = _mark;
13376 D(fprintf(stderr, "%*c%s slice[%d-%d]: %s failed!\n", p->level, ' ',
13377 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression? ':' expression? [':' expression?]"));
13378 }
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020013379 { // named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013380 if (p->error_indicator) {
13381 D(p->level--);
13382 return NULL;
13383 }
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020013384 D(fprintf(stderr, "%*c> slice[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013385 expr_ty a;
13386 if (
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020013387 (a = named_expression_rule(p)) // named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013388 )
13389 {
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020013390 D(fprintf(stderr, "%*c+ slice[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "named_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013391 _res = a;
13392 if (_res == NULL && PyErr_Occurred()) {
13393 p->error_indicator = 1;
13394 D(p->level--);
13395 return NULL;
13396 }
13397 goto done;
13398 }
13399 p->mark = _mark;
13400 D(fprintf(stderr, "%*c%s slice[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020013401 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013402 }
13403 _res = NULL;
13404 done:
13405 D(p->level--);
13406 return _res;
13407}
13408
13409// atom:
13410// | NAME
13411// | 'True'
13412// | 'False'
13413// | 'None'
13414// | &STRING strings
13415// | NUMBER
13416// | &'(' (tuple | group | genexp)
13417// | &'[' (list | listcomp)
13418// | &'{' (dict | set | dictcomp | setcomp)
13419// | '...'
13420static expr_ty
13421atom_rule(Parser *p)
13422{
13423 D(p->level++);
13424 if (p->error_indicator) {
13425 D(p->level--);
13426 return NULL;
13427 }
13428 expr_ty _res = NULL;
13429 int _mark = p->mark;
13430 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13431 p->error_indicator = 1;
13432 D(p->level--);
13433 return NULL;
13434 }
13435 int _start_lineno = p->tokens[_mark]->lineno;
13436 UNUSED(_start_lineno); // Only used by EXTRA macro
13437 int _start_col_offset = p->tokens[_mark]->col_offset;
13438 UNUSED(_start_col_offset); // Only used by EXTRA macro
13439 { // NAME
13440 if (p->error_indicator) {
13441 D(p->level--);
13442 return NULL;
13443 }
13444 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
13445 expr_ty name_var;
13446 if (
13447 (name_var = _PyPegen_name_token(p)) // NAME
13448 )
13449 {
13450 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
13451 _res = name_var;
13452 goto done;
13453 }
13454 p->mark = _mark;
13455 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
13456 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
13457 }
13458 { // 'True'
13459 if (p->error_indicator) {
13460 D(p->level--);
13461 return NULL;
13462 }
13463 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'"));
13464 Token * _keyword;
13465 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080013466 (_keyword = _PyPegen_expect_token(p, 524)) // token='True'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013467 )
13468 {
13469 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'"));
13470 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13471 if (_token == NULL) {
13472 D(p->level--);
13473 return NULL;
13474 }
13475 int _end_lineno = _token->end_lineno;
13476 UNUSED(_end_lineno); // Only used by EXTRA macro
13477 int _end_col_offset = _token->end_col_offset;
13478 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013479 _res = _PyAST_Constant ( Py_True , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013480 if (_res == NULL && PyErr_Occurred()) {
13481 p->error_indicator = 1;
13482 D(p->level--);
13483 return NULL;
13484 }
13485 goto done;
13486 }
13487 p->mark = _mark;
13488 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
13489 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'True'"));
13490 }
13491 { // 'False'
13492 if (p->error_indicator) {
13493 D(p->level--);
13494 return NULL;
13495 }
13496 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'"));
13497 Token * _keyword;
13498 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080013499 (_keyword = _PyPegen_expect_token(p, 525)) // token='False'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013500 )
13501 {
13502 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'"));
13503 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13504 if (_token == NULL) {
13505 D(p->level--);
13506 return NULL;
13507 }
13508 int _end_lineno = _token->end_lineno;
13509 UNUSED(_end_lineno); // Only used by EXTRA macro
13510 int _end_col_offset = _token->end_col_offset;
13511 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013512 _res = _PyAST_Constant ( Py_False , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013513 if (_res == NULL && PyErr_Occurred()) {
13514 p->error_indicator = 1;
13515 D(p->level--);
13516 return NULL;
13517 }
13518 goto done;
13519 }
13520 p->mark = _mark;
13521 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
13522 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'False'"));
13523 }
13524 { // 'None'
13525 if (p->error_indicator) {
13526 D(p->level--);
13527 return NULL;
13528 }
13529 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'"));
13530 Token * _keyword;
13531 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080013532 (_keyword = _PyPegen_expect_token(p, 523)) // token='None'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013533 )
13534 {
13535 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'"));
13536 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13537 if (_token == NULL) {
13538 D(p->level--);
13539 return NULL;
13540 }
13541 int _end_lineno = _token->end_lineno;
13542 UNUSED(_end_lineno); // Only used by EXTRA macro
13543 int _end_col_offset = _token->end_col_offset;
13544 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013545 _res = _PyAST_Constant ( Py_None , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013546 if (_res == NULL && PyErr_Occurred()) {
13547 p->error_indicator = 1;
13548 D(p->level--);
13549 return NULL;
13550 }
13551 goto done;
13552 }
13553 p->mark = _mark;
13554 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
13555 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'None'"));
13556 }
13557 { // &STRING strings
13558 if (p->error_indicator) {
13559 D(p->level--);
13560 return NULL;
13561 }
13562 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&STRING strings"));
13563 expr_ty strings_var;
13564 if (
13565 _PyPegen_lookahead(1, _PyPegen_string_token, p)
13566 &&
13567 (strings_var = strings_rule(p)) // strings
13568 )
13569 {
13570 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&STRING strings"));
13571 _res = strings_var;
13572 goto done;
13573 }
13574 p->mark = _mark;
13575 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
13576 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&STRING strings"));
13577 }
13578 { // NUMBER
13579 if (p->error_indicator) {
13580 D(p->level--);
13581 return NULL;
13582 }
13583 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NUMBER"));
13584 expr_ty number_var;
13585 if (
13586 (number_var = _PyPegen_number_token(p)) // NUMBER
13587 )
13588 {
13589 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NUMBER"));
13590 _res = number_var;
13591 goto done;
13592 }
13593 p->mark = _mark;
13594 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
13595 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NUMBER"));
13596 }
13597 { // &'(' (tuple | group | genexp)
13598 if (p->error_indicator) {
13599 D(p->level--);
13600 return NULL;
13601 }
13602 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'(' (tuple | group | genexp)"));
Brandt Bucher145bf262021-02-26 14:51:55 -080013603 void *_tmp_111_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013604 if (
13605 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 7) // token='('
13606 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080013607 (_tmp_111_var = _tmp_111_rule(p)) // tuple | group | genexp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013608 )
13609 {
13610 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 -080013611 _res = _tmp_111_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013612 goto done;
13613 }
13614 p->mark = _mark;
13615 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
13616 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'(' (tuple | group | genexp)"));
13617 }
13618 { // &'[' (list | listcomp)
13619 if (p->error_indicator) {
13620 D(p->level--);
13621 return NULL;
13622 }
13623 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'[' (list | listcomp)"));
Brandt Bucher145bf262021-02-26 14:51:55 -080013624 void *_tmp_112_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013625 if (
13626 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 9) // token='['
13627 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080013628 (_tmp_112_var = _tmp_112_rule(p)) // list | listcomp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013629 )
13630 {
13631 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'[' (list | listcomp)"));
Brandt Bucher145bf262021-02-26 14:51:55 -080013632 _res = _tmp_112_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013633 goto done;
13634 }
13635 p->mark = _mark;
13636 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
13637 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'[' (list | listcomp)"));
13638 }
13639 { // &'{' (dict | set | dictcomp | setcomp)
13640 if (p->error_indicator) {
13641 D(p->level--);
13642 return NULL;
13643 }
13644 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 -080013645 void *_tmp_113_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013646 if (
13647 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 25) // token='{'
13648 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080013649 (_tmp_113_var = _tmp_113_rule(p)) // dict | set | dictcomp | setcomp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013650 )
13651 {
13652 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 -080013653 _res = _tmp_113_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013654 goto done;
13655 }
13656 p->mark = _mark;
13657 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
13658 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'{' (dict | set | dictcomp | setcomp)"));
13659 }
13660 { // '...'
13661 if (p->error_indicator) {
13662 D(p->level--);
13663 return NULL;
13664 }
13665 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'"));
13666 Token * _literal;
13667 if (
13668 (_literal = _PyPegen_expect_token(p, 52)) // token='...'
13669 )
13670 {
13671 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'"));
13672 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13673 if (_token == NULL) {
13674 D(p->level--);
13675 return NULL;
13676 }
13677 int _end_lineno = _token->end_lineno;
13678 UNUSED(_end_lineno); // Only used by EXTRA macro
13679 int _end_col_offset = _token->end_col_offset;
13680 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013681 _res = _PyAST_Constant ( Py_Ellipsis , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013682 if (_res == NULL && PyErr_Occurred()) {
13683 p->error_indicator = 1;
13684 D(p->level--);
13685 return NULL;
13686 }
13687 goto done;
13688 }
13689 p->mark = _mark;
13690 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
13691 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'"));
13692 }
13693 _res = NULL;
13694 done:
13695 D(p->level--);
13696 return _res;
13697}
13698
13699// strings: STRING+
13700static expr_ty
13701strings_rule(Parser *p)
13702{
13703 D(p->level++);
13704 if (p->error_indicator) {
13705 D(p->level--);
13706 return NULL;
13707 }
13708 expr_ty _res = NULL;
13709 if (_PyPegen_is_memoized(p, strings_type, &_res)) {
13710 D(p->level--);
13711 return _res;
13712 }
13713 int _mark = p->mark;
13714 { // STRING+
13715 if (p->error_indicator) {
13716 D(p->level--);
13717 return NULL;
13718 }
13719 D(fprintf(stderr, "%*c> strings[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "STRING+"));
13720 asdl_seq * a;
13721 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080013722 (a = _loop1_114_rule(p)) // STRING+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013723 )
13724 {
13725 D(fprintf(stderr, "%*c+ strings[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "STRING+"));
13726 _res = _PyPegen_concatenate_strings ( p , a );
13727 if (_res == NULL && PyErr_Occurred()) {
13728 p->error_indicator = 1;
13729 D(p->level--);
13730 return NULL;
13731 }
13732 goto done;
13733 }
13734 p->mark = _mark;
13735 D(fprintf(stderr, "%*c%s strings[%d-%d]: %s failed!\n", p->level, ' ',
13736 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "STRING+"));
13737 }
13738 _res = NULL;
13739 done:
13740 _PyPegen_insert_memo(p, _mark, strings_type, _res);
13741 D(p->level--);
13742 return _res;
13743}
13744
13745// list: '[' star_named_expressions? ']'
13746static expr_ty
13747list_rule(Parser *p)
13748{
13749 D(p->level++);
13750 if (p->error_indicator) {
13751 D(p->level--);
13752 return NULL;
13753 }
13754 expr_ty _res = NULL;
13755 int _mark = p->mark;
13756 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13757 p->error_indicator = 1;
13758 D(p->level--);
13759 return NULL;
13760 }
13761 int _start_lineno = p->tokens[_mark]->lineno;
13762 UNUSED(_start_lineno); // Only used by EXTRA macro
13763 int _start_col_offset = p->tokens[_mark]->col_offset;
13764 UNUSED(_start_col_offset); // Only used by EXTRA macro
13765 { // '[' star_named_expressions? ']'
13766 if (p->error_indicator) {
13767 D(p->level--);
13768 return NULL;
13769 }
13770 D(fprintf(stderr, "%*c> list[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' star_named_expressions? ']'"));
13771 Token * _literal;
13772 Token * _literal_1;
13773 void *a;
13774 if (
13775 (_literal = _PyPegen_expect_token(p, 9)) // token='['
13776 &&
13777 (a = star_named_expressions_rule(p), 1) // star_named_expressions?
13778 &&
13779 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
13780 )
13781 {
13782 D(fprintf(stderr, "%*c+ list[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' star_named_expressions? ']'"));
13783 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13784 if (_token == NULL) {
13785 D(p->level--);
13786 return NULL;
13787 }
13788 int _end_lineno = _token->end_lineno;
13789 UNUSED(_end_lineno); // Only used by EXTRA macro
13790 int _end_col_offset = _token->end_col_offset;
13791 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013792 _res = _PyAST_List ( a , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013793 if (_res == NULL && PyErr_Occurred()) {
13794 p->error_indicator = 1;
13795 D(p->level--);
13796 return NULL;
13797 }
13798 goto done;
13799 }
13800 p->mark = _mark;
13801 D(fprintf(stderr, "%*c%s list[%d-%d]: %s failed!\n", p->level, ' ',
13802 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' star_named_expressions? ']'"));
13803 }
13804 _res = NULL;
13805 done:
13806 D(p->level--);
13807 return _res;
13808}
13809
Pablo Galindo835f14f2021-01-31 22:52:56 +000013810// listcomp: '[' named_expression for_if_clauses ']' | invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013811static expr_ty
13812listcomp_rule(Parser *p)
13813{
13814 D(p->level++);
13815 if (p->error_indicator) {
13816 D(p->level--);
13817 return NULL;
13818 }
13819 expr_ty _res = NULL;
13820 int _mark = p->mark;
13821 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13822 p->error_indicator = 1;
13823 D(p->level--);
13824 return NULL;
13825 }
13826 int _start_lineno = p->tokens[_mark]->lineno;
13827 UNUSED(_start_lineno); // Only used by EXTRA macro
13828 int _start_col_offset = p->tokens[_mark]->col_offset;
13829 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo835f14f2021-01-31 22:52:56 +000013830 { // '[' named_expression for_if_clauses ']'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013831 if (p->error_indicator) {
13832 D(p->level--);
13833 return NULL;
13834 }
Pablo Galindo835f14f2021-01-31 22:52:56 +000013835 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 +010013836 Token * _literal;
13837 Token * _literal_1;
13838 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010013839 asdl_comprehension_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013840 if (
13841 (_literal = _PyPegen_expect_token(p, 9)) // token='['
13842 &&
13843 (a = named_expression_rule(p)) // named_expression
13844 &&
13845 (b = for_if_clauses_rule(p)) // for_if_clauses
13846 &&
13847 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
13848 )
13849 {
Pablo Galindo835f14f2021-01-31 22:52:56 +000013850 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 +010013851 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13852 if (_token == NULL) {
13853 D(p->level--);
13854 return NULL;
13855 }
13856 int _end_lineno = _token->end_lineno;
13857 UNUSED(_end_lineno); // Only used by EXTRA macro
13858 int _end_col_offset = _token->end_col_offset;
13859 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013860 _res = _PyAST_ListComp ( a , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013861 if (_res == NULL && PyErr_Occurred()) {
13862 p->error_indicator = 1;
13863 D(p->level--);
13864 return NULL;
13865 }
13866 goto done;
13867 }
13868 p->mark = _mark;
13869 D(fprintf(stderr, "%*c%s listcomp[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo835f14f2021-01-31 22:52:56 +000013870 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' named_expression for_if_clauses ']'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013871 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020013872 if (p->call_invalid_rules) { // invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013873 if (p->error_indicator) {
13874 D(p->level--);
13875 return NULL;
13876 }
13877 D(fprintf(stderr, "%*c> listcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
13878 void *invalid_comprehension_var;
13879 if (
13880 (invalid_comprehension_var = invalid_comprehension_rule(p)) // invalid_comprehension
13881 )
13882 {
13883 D(fprintf(stderr, "%*c+ listcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
13884 _res = invalid_comprehension_var;
13885 goto done;
13886 }
13887 p->mark = _mark;
13888 D(fprintf(stderr, "%*c%s listcomp[%d-%d]: %s failed!\n", p->level, ' ',
13889 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_comprehension"));
13890 }
13891 _res = NULL;
13892 done:
13893 D(p->level--);
13894 return _res;
13895}
13896
13897// tuple: '(' [star_named_expression ',' star_named_expressions?] ')'
13898static expr_ty
13899tuple_rule(Parser *p)
13900{
13901 D(p->level++);
13902 if (p->error_indicator) {
13903 D(p->level--);
13904 return NULL;
13905 }
13906 expr_ty _res = NULL;
13907 int _mark = p->mark;
13908 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13909 p->error_indicator = 1;
13910 D(p->level--);
13911 return NULL;
13912 }
13913 int _start_lineno = p->tokens[_mark]->lineno;
13914 UNUSED(_start_lineno); // Only used by EXTRA macro
13915 int _start_col_offset = p->tokens[_mark]->col_offset;
13916 UNUSED(_start_col_offset); // Only used by EXTRA macro
13917 { // '(' [star_named_expression ',' star_named_expressions?] ')'
13918 if (p->error_indicator) {
13919 D(p->level--);
13920 return NULL;
13921 }
13922 D(fprintf(stderr, "%*c> tuple[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' [star_named_expression ',' star_named_expressions?] ')'"));
13923 Token * _literal;
13924 Token * _literal_1;
13925 void *a;
13926 if (
13927 (_literal = _PyPegen_expect_token(p, 7)) // token='('
13928 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080013929 (a = _tmp_115_rule(p), 1) // [star_named_expression ',' star_named_expressions?]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013930 &&
13931 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
13932 )
13933 {
13934 D(fprintf(stderr, "%*c+ tuple[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' [star_named_expression ',' star_named_expressions?] ')'"));
13935 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13936 if (_token == NULL) {
13937 D(p->level--);
13938 return NULL;
13939 }
13940 int _end_lineno = _token->end_lineno;
13941 UNUSED(_end_lineno); // Only used by EXTRA macro
13942 int _end_col_offset = _token->end_col_offset;
13943 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013944 _res = _PyAST_Tuple ( a , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013945 if (_res == NULL && PyErr_Occurred()) {
13946 p->error_indicator = 1;
13947 D(p->level--);
13948 return NULL;
13949 }
13950 goto done;
13951 }
13952 p->mark = _mark;
13953 D(fprintf(stderr, "%*c%s tuple[%d-%d]: %s failed!\n", p->level, ' ',
13954 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' [star_named_expression ',' star_named_expressions?] ')'"));
13955 }
13956 _res = NULL;
13957 done:
13958 D(p->level--);
13959 return _res;
13960}
13961
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030013962// group: '(' (yield_expr | named_expression) ')' | invalid_group
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013963static expr_ty
13964group_rule(Parser *p)
13965{
13966 D(p->level++);
13967 if (p->error_indicator) {
13968 D(p->level--);
13969 return NULL;
13970 }
13971 expr_ty _res = NULL;
13972 int _mark = p->mark;
13973 { // '(' (yield_expr | named_expression) ')'
13974 if (p->error_indicator) {
13975 D(p->level--);
13976 return NULL;
13977 }
13978 D(fprintf(stderr, "%*c> group[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' (yield_expr | named_expression) ')'"));
13979 Token * _literal;
13980 Token * _literal_1;
13981 void *a;
13982 if (
13983 (_literal = _PyPegen_expect_token(p, 7)) // token='('
13984 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080013985 (a = _tmp_116_rule(p)) // yield_expr | named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013986 &&
13987 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
13988 )
13989 {
13990 D(fprintf(stderr, "%*c+ group[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' (yield_expr | named_expression) ')'"));
13991 _res = a;
13992 if (_res == NULL && PyErr_Occurred()) {
13993 p->error_indicator = 1;
13994 D(p->level--);
13995 return NULL;
13996 }
13997 goto done;
13998 }
13999 p->mark = _mark;
14000 D(fprintf(stderr, "%*c%s group[%d-%d]: %s failed!\n", p->level, ' ',
14001 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' (yield_expr | named_expression) ')'"));
14002 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014003 if (p->call_invalid_rules) { // invalid_group
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030014004 if (p->error_indicator) {
14005 D(p->level--);
14006 return NULL;
14007 }
14008 D(fprintf(stderr, "%*c> group[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_group"));
14009 void *invalid_group_var;
14010 if (
14011 (invalid_group_var = invalid_group_rule(p)) // invalid_group
14012 )
14013 {
14014 D(fprintf(stderr, "%*c+ group[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_group"));
14015 _res = invalid_group_var;
14016 goto done;
14017 }
14018 p->mark = _mark;
14019 D(fprintf(stderr, "%*c%s group[%d-%d]: %s failed!\n", p->level, ' ',
14020 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_group"));
14021 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014022 _res = NULL;
14023 done:
14024 D(p->level--);
14025 return _res;
14026}
14027
Pablo Galindo30ed93b2021-04-13 17:51:21 +010014028// genexp: '(' direct_named_expression for_if_clauses ')' | invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014029static expr_ty
14030genexp_rule(Parser *p)
14031{
14032 D(p->level++);
14033 if (p->error_indicator) {
14034 D(p->level--);
14035 return NULL;
14036 }
14037 expr_ty _res = NULL;
14038 int _mark = p->mark;
14039 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14040 p->error_indicator = 1;
14041 D(p->level--);
14042 return NULL;
14043 }
14044 int _start_lineno = p->tokens[_mark]->lineno;
14045 UNUSED(_start_lineno); // Only used by EXTRA macro
14046 int _start_col_offset = p->tokens[_mark]->col_offset;
14047 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo30ed93b2021-04-13 17:51:21 +010014048 { // '(' direct_named_expression for_if_clauses ')'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014049 if (p->error_indicator) {
14050 D(p->level--);
14051 return NULL;
14052 }
Pablo Galindo30ed93b2021-04-13 17:51:21 +010014053 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 +010014054 Token * _literal;
14055 Token * _literal_1;
14056 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010014057 asdl_comprehension_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014058 if (
14059 (_literal = _PyPegen_expect_token(p, 7)) // token='('
14060 &&
Pablo Galindo30ed93b2021-04-13 17:51:21 +010014061 (a = direct_named_expression_rule(p)) // direct_named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014062 &&
14063 (b = for_if_clauses_rule(p)) // for_if_clauses
14064 &&
14065 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
14066 )
14067 {
Pablo Galindo30ed93b2021-04-13 17:51:21 +010014068 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 +010014069 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14070 if (_token == NULL) {
14071 D(p->level--);
14072 return NULL;
14073 }
14074 int _end_lineno = _token->end_lineno;
14075 UNUSED(_end_lineno); // Only used by EXTRA macro
14076 int _end_col_offset = _token->end_col_offset;
14077 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014078 _res = _PyAST_GeneratorExp ( a , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014079 if (_res == NULL && PyErr_Occurred()) {
14080 p->error_indicator = 1;
14081 D(p->level--);
14082 return NULL;
14083 }
14084 goto done;
14085 }
14086 p->mark = _mark;
14087 D(fprintf(stderr, "%*c%s genexp[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo30ed93b2021-04-13 17:51:21 +010014088 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' direct_named_expression for_if_clauses ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014089 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014090 if (p->call_invalid_rules) { // invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014091 if (p->error_indicator) {
14092 D(p->level--);
14093 return NULL;
14094 }
14095 D(fprintf(stderr, "%*c> genexp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
14096 void *invalid_comprehension_var;
14097 if (
14098 (invalid_comprehension_var = invalid_comprehension_rule(p)) // invalid_comprehension
14099 )
14100 {
14101 D(fprintf(stderr, "%*c+ genexp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
14102 _res = invalid_comprehension_var;
14103 goto done;
14104 }
14105 p->mark = _mark;
14106 D(fprintf(stderr, "%*c%s genexp[%d-%d]: %s failed!\n", p->level, ' ',
14107 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_comprehension"));
14108 }
14109 _res = NULL;
14110 done:
14111 D(p->level--);
14112 return _res;
14113}
14114
Pablo Galindob0aba1f2020-11-17 01:17:12 +000014115// set: '{' star_named_expressions '}'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014116static expr_ty
14117set_rule(Parser *p)
14118{
14119 D(p->level++);
14120 if (p->error_indicator) {
14121 D(p->level--);
14122 return NULL;
14123 }
14124 expr_ty _res = NULL;
14125 int _mark = p->mark;
14126 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14127 p->error_indicator = 1;
14128 D(p->level--);
14129 return NULL;
14130 }
14131 int _start_lineno = p->tokens[_mark]->lineno;
14132 UNUSED(_start_lineno); // Only used by EXTRA macro
14133 int _start_col_offset = p->tokens[_mark]->col_offset;
14134 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindob0aba1f2020-11-17 01:17:12 +000014135 { // '{' star_named_expressions '}'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014136 if (p->error_indicator) {
14137 D(p->level--);
14138 return NULL;
14139 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000014140 D(fprintf(stderr, "%*c> set[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' star_named_expressions '}'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014141 Token * _literal;
14142 Token * _literal_1;
Pablo Galindoa5634c42020-09-16 19:42:00 +010014143 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014144 if (
14145 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
14146 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000014147 (a = star_named_expressions_rule(p)) // star_named_expressions
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014148 &&
14149 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
14150 )
14151 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000014152 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 +010014153 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14154 if (_token == NULL) {
14155 D(p->level--);
14156 return NULL;
14157 }
14158 int _end_lineno = _token->end_lineno;
14159 UNUSED(_end_lineno); // Only used by EXTRA macro
14160 int _end_col_offset = _token->end_col_offset;
14161 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014162 _res = _PyAST_Set ( a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014163 if (_res == NULL && PyErr_Occurred()) {
14164 p->error_indicator = 1;
14165 D(p->level--);
14166 return NULL;
14167 }
14168 goto done;
14169 }
14170 p->mark = _mark;
14171 D(fprintf(stderr, "%*c%s set[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000014172 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' star_named_expressions '}'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014173 }
14174 _res = NULL;
14175 done:
14176 D(p->level--);
14177 return _res;
14178}
14179
Pablo Galindo835f14f2021-01-31 22:52:56 +000014180// setcomp: '{' named_expression for_if_clauses '}' | invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014181static expr_ty
14182setcomp_rule(Parser *p)
14183{
14184 D(p->level++);
14185 if (p->error_indicator) {
14186 D(p->level--);
14187 return NULL;
14188 }
14189 expr_ty _res = NULL;
14190 int _mark = p->mark;
14191 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14192 p->error_indicator = 1;
14193 D(p->level--);
14194 return NULL;
14195 }
14196 int _start_lineno = p->tokens[_mark]->lineno;
14197 UNUSED(_start_lineno); // Only used by EXTRA macro
14198 int _start_col_offset = p->tokens[_mark]->col_offset;
14199 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo835f14f2021-01-31 22:52:56 +000014200 { // '{' named_expression for_if_clauses '}'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014201 if (p->error_indicator) {
14202 D(p->level--);
14203 return NULL;
14204 }
Pablo Galindo835f14f2021-01-31 22:52:56 +000014205 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 +010014206 Token * _literal;
14207 Token * _literal_1;
14208 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010014209 asdl_comprehension_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014210 if (
14211 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
14212 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000014213 (a = named_expression_rule(p)) // named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014214 &&
14215 (b = for_if_clauses_rule(p)) // for_if_clauses
14216 &&
14217 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
14218 )
14219 {
Pablo Galindo835f14f2021-01-31 22:52:56 +000014220 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 +010014221 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14222 if (_token == NULL) {
14223 D(p->level--);
14224 return NULL;
14225 }
14226 int _end_lineno = _token->end_lineno;
14227 UNUSED(_end_lineno); // Only used by EXTRA macro
14228 int _end_col_offset = _token->end_col_offset;
14229 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014230 _res = _PyAST_SetComp ( a , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014231 if (_res == NULL && PyErr_Occurred()) {
14232 p->error_indicator = 1;
14233 D(p->level--);
14234 return NULL;
14235 }
14236 goto done;
14237 }
14238 p->mark = _mark;
14239 D(fprintf(stderr, "%*c%s setcomp[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo835f14f2021-01-31 22:52:56 +000014240 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' named_expression for_if_clauses '}'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014241 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014242 if (p->call_invalid_rules) { // invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014243 if (p->error_indicator) {
14244 D(p->level--);
14245 return NULL;
14246 }
14247 D(fprintf(stderr, "%*c> setcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
14248 void *invalid_comprehension_var;
14249 if (
14250 (invalid_comprehension_var = invalid_comprehension_rule(p)) // invalid_comprehension
14251 )
14252 {
14253 D(fprintf(stderr, "%*c+ setcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
14254 _res = invalid_comprehension_var;
14255 goto done;
14256 }
14257 p->mark = _mark;
14258 D(fprintf(stderr, "%*c%s setcomp[%d-%d]: %s failed!\n", p->level, ' ',
14259 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_comprehension"));
14260 }
14261 _res = NULL;
14262 done:
14263 D(p->level--);
14264 return _res;
14265}
14266
Pablo Galindoda743502021-04-15 14:06:39 +010014267// dict: '{' double_starred_kvpairs? '}' | '{' invalid_double_starred_kvpairs '}'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014268static expr_ty
14269dict_rule(Parser *p)
14270{
14271 D(p->level++);
14272 if (p->error_indicator) {
14273 D(p->level--);
14274 return NULL;
14275 }
14276 expr_ty _res = NULL;
14277 int _mark = p->mark;
14278 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14279 p->error_indicator = 1;
14280 D(p->level--);
14281 return NULL;
14282 }
14283 int _start_lineno = p->tokens[_mark]->lineno;
14284 UNUSED(_start_lineno); // Only used by EXTRA macro
14285 int _start_col_offset = p->tokens[_mark]->col_offset;
14286 UNUSED(_start_col_offset); // Only used by EXTRA macro
14287 { // '{' double_starred_kvpairs? '}'
14288 if (p->error_indicator) {
14289 D(p->level--);
14290 return NULL;
14291 }
14292 D(fprintf(stderr, "%*c> dict[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' double_starred_kvpairs? '}'"));
14293 Token * _literal;
14294 Token * _literal_1;
14295 void *a;
14296 if (
14297 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
14298 &&
14299 (a = double_starred_kvpairs_rule(p), 1) // double_starred_kvpairs?
14300 &&
14301 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
14302 )
14303 {
14304 D(fprintf(stderr, "%*c+ dict[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' double_starred_kvpairs? '}'"));
14305 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14306 if (_token == NULL) {
14307 D(p->level--);
14308 return NULL;
14309 }
14310 int _end_lineno = _token->end_lineno;
14311 UNUSED(_end_lineno); // Only used by EXTRA macro
14312 int _end_col_offset = _token->end_col_offset;
14313 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014314 _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 +010014315 if (_res == NULL && PyErr_Occurred()) {
14316 p->error_indicator = 1;
14317 D(p->level--);
14318 return NULL;
14319 }
14320 goto done;
14321 }
14322 p->mark = _mark;
14323 D(fprintf(stderr, "%*c%s dict[%d-%d]: %s failed!\n", p->level, ' ',
14324 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' double_starred_kvpairs? '}'"));
14325 }
Pablo Galindoda743502021-04-15 14:06:39 +010014326 { // '{' invalid_double_starred_kvpairs '}'
14327 if (p->error_indicator) {
14328 D(p->level--);
14329 return NULL;
14330 }
14331 D(fprintf(stderr, "%*c> dict[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' invalid_double_starred_kvpairs '}'"));
14332 Token * _literal;
14333 Token * _literal_1;
14334 void *invalid_double_starred_kvpairs_var;
14335 if (
14336 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
14337 &&
14338 (invalid_double_starred_kvpairs_var = invalid_double_starred_kvpairs_rule(p)) // invalid_double_starred_kvpairs
14339 &&
14340 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
14341 )
14342 {
14343 D(fprintf(stderr, "%*c+ dict[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' invalid_double_starred_kvpairs '}'"));
14344 _res = _PyPegen_dummy_name(p, _literal, invalid_double_starred_kvpairs_var, _literal_1);
14345 goto done;
14346 }
14347 p->mark = _mark;
14348 D(fprintf(stderr, "%*c%s dict[%d-%d]: %s failed!\n", p->level, ' ',
14349 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' invalid_double_starred_kvpairs '}'"));
14350 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014351 _res = NULL;
14352 done:
14353 D(p->level--);
14354 return _res;
14355}
14356
14357// dictcomp: '{' kvpair for_if_clauses '}' | invalid_dict_comprehension
14358static expr_ty
14359dictcomp_rule(Parser *p)
14360{
14361 D(p->level++);
14362 if (p->error_indicator) {
14363 D(p->level--);
14364 return NULL;
14365 }
14366 expr_ty _res = NULL;
14367 int _mark = p->mark;
14368 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14369 p->error_indicator = 1;
14370 D(p->level--);
14371 return NULL;
14372 }
14373 int _start_lineno = p->tokens[_mark]->lineno;
14374 UNUSED(_start_lineno); // Only used by EXTRA macro
14375 int _start_col_offset = p->tokens[_mark]->col_offset;
14376 UNUSED(_start_col_offset); // Only used by EXTRA macro
14377 { // '{' kvpair for_if_clauses '}'
14378 if (p->error_indicator) {
14379 D(p->level--);
14380 return NULL;
14381 }
14382 D(fprintf(stderr, "%*c> dictcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' kvpair for_if_clauses '}'"));
14383 Token * _literal;
14384 Token * _literal_1;
14385 KeyValuePair* a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010014386 asdl_comprehension_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014387 if (
14388 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
14389 &&
14390 (a = kvpair_rule(p)) // kvpair
14391 &&
14392 (b = for_if_clauses_rule(p)) // for_if_clauses
14393 &&
14394 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
14395 )
14396 {
14397 D(fprintf(stderr, "%*c+ dictcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' kvpair for_if_clauses '}'"));
14398 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14399 if (_token == NULL) {
14400 D(p->level--);
14401 return NULL;
14402 }
14403 int _end_lineno = _token->end_lineno;
14404 UNUSED(_end_lineno); // Only used by EXTRA macro
14405 int _end_col_offset = _token->end_col_offset;
14406 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014407 _res = _PyAST_DictComp ( a -> key , a -> value , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014408 if (_res == NULL && PyErr_Occurred()) {
14409 p->error_indicator = 1;
14410 D(p->level--);
14411 return NULL;
14412 }
14413 goto done;
14414 }
14415 p->mark = _mark;
14416 D(fprintf(stderr, "%*c%s dictcomp[%d-%d]: %s failed!\n", p->level, ' ',
14417 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' kvpair for_if_clauses '}'"));
14418 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014419 if (p->call_invalid_rules) { // invalid_dict_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014420 if (p->error_indicator) {
14421 D(p->level--);
14422 return NULL;
14423 }
14424 D(fprintf(stderr, "%*c> dictcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_dict_comprehension"));
14425 void *invalid_dict_comprehension_var;
14426 if (
14427 (invalid_dict_comprehension_var = invalid_dict_comprehension_rule(p)) // invalid_dict_comprehension
14428 )
14429 {
14430 D(fprintf(stderr, "%*c+ dictcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_dict_comprehension"));
14431 _res = invalid_dict_comprehension_var;
14432 goto done;
14433 }
14434 p->mark = _mark;
14435 D(fprintf(stderr, "%*c%s dictcomp[%d-%d]: %s failed!\n", p->level, ' ',
14436 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_dict_comprehension"));
14437 }
14438 _res = NULL;
14439 done:
14440 D(p->level--);
14441 return _res;
14442}
14443
14444// double_starred_kvpairs: ','.double_starred_kvpair+ ','?
14445static asdl_seq*
14446double_starred_kvpairs_rule(Parser *p)
14447{
14448 D(p->level++);
14449 if (p->error_indicator) {
14450 D(p->level--);
14451 return NULL;
14452 }
14453 asdl_seq* _res = NULL;
14454 int _mark = p->mark;
14455 { // ','.double_starred_kvpair+ ','?
14456 if (p->error_indicator) {
14457 D(p->level--);
14458 return NULL;
14459 }
14460 D(fprintf(stderr, "%*c> double_starred_kvpairs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.double_starred_kvpair+ ','?"));
14461 void *_opt_var;
14462 UNUSED(_opt_var); // Silence compiler warnings
14463 asdl_seq * a;
14464 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080014465 (a = _gather_117_rule(p)) // ','.double_starred_kvpair+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014466 &&
14467 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
14468 )
14469 {
14470 D(fprintf(stderr, "%*c+ double_starred_kvpairs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.double_starred_kvpair+ ','?"));
14471 _res = a;
14472 if (_res == NULL && PyErr_Occurred()) {
14473 p->error_indicator = 1;
14474 D(p->level--);
14475 return NULL;
14476 }
14477 goto done;
14478 }
14479 p->mark = _mark;
14480 D(fprintf(stderr, "%*c%s double_starred_kvpairs[%d-%d]: %s failed!\n", p->level, ' ',
14481 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.double_starred_kvpair+ ','?"));
14482 }
14483 _res = NULL;
14484 done:
14485 D(p->level--);
14486 return _res;
14487}
14488
14489// double_starred_kvpair: '**' bitwise_or | kvpair
14490static KeyValuePair*
14491double_starred_kvpair_rule(Parser *p)
14492{
14493 D(p->level++);
14494 if (p->error_indicator) {
14495 D(p->level--);
14496 return NULL;
14497 }
14498 KeyValuePair* _res = NULL;
14499 int _mark = p->mark;
14500 { // '**' bitwise_or
14501 if (p->error_indicator) {
14502 D(p->level--);
14503 return NULL;
14504 }
14505 D(fprintf(stderr, "%*c> double_starred_kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' bitwise_or"));
14506 Token * _literal;
14507 expr_ty a;
14508 if (
14509 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
14510 &&
14511 (a = bitwise_or_rule(p)) // bitwise_or
14512 )
14513 {
14514 D(fprintf(stderr, "%*c+ double_starred_kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' bitwise_or"));
14515 _res = _PyPegen_key_value_pair ( p , NULL , a );
14516 if (_res == NULL && PyErr_Occurred()) {
14517 p->error_indicator = 1;
14518 D(p->level--);
14519 return NULL;
14520 }
14521 goto done;
14522 }
14523 p->mark = _mark;
14524 D(fprintf(stderr, "%*c%s double_starred_kvpair[%d-%d]: %s failed!\n", p->level, ' ',
14525 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' bitwise_or"));
14526 }
14527 { // kvpair
14528 if (p->error_indicator) {
14529 D(p->level--);
14530 return NULL;
14531 }
14532 D(fprintf(stderr, "%*c> double_starred_kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kvpair"));
14533 KeyValuePair* kvpair_var;
14534 if (
14535 (kvpair_var = kvpair_rule(p)) // kvpair
14536 )
14537 {
14538 D(fprintf(stderr, "%*c+ double_starred_kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kvpair"));
14539 _res = kvpair_var;
14540 goto done;
14541 }
14542 p->mark = _mark;
14543 D(fprintf(stderr, "%*c%s double_starred_kvpair[%d-%d]: %s failed!\n", p->level, ' ',
14544 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kvpair"));
14545 }
14546 _res = NULL;
14547 done:
14548 D(p->level--);
14549 return _res;
14550}
14551
14552// kvpair: expression ':' expression
14553static KeyValuePair*
14554kvpair_rule(Parser *p)
14555{
14556 D(p->level++);
14557 if (p->error_indicator) {
14558 D(p->level--);
14559 return NULL;
14560 }
14561 KeyValuePair* _res = NULL;
14562 int _mark = p->mark;
14563 { // expression ':' expression
14564 if (p->error_indicator) {
14565 D(p->level--);
14566 return NULL;
14567 }
14568 D(fprintf(stderr, "%*c> kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' expression"));
14569 Token * _literal;
14570 expr_ty a;
14571 expr_ty b;
14572 if (
14573 (a = expression_rule(p)) // expression
14574 &&
14575 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
14576 &&
14577 (b = expression_rule(p)) // expression
14578 )
14579 {
14580 D(fprintf(stderr, "%*c+ kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':' expression"));
14581 _res = _PyPegen_key_value_pair ( p , a , b );
14582 if (_res == NULL && PyErr_Occurred()) {
14583 p->error_indicator = 1;
14584 D(p->level--);
14585 return NULL;
14586 }
14587 goto done;
14588 }
14589 p->mark = _mark;
14590 D(fprintf(stderr, "%*c%s kvpair[%d-%d]: %s failed!\n", p->level, ' ',
14591 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' expression"));
14592 }
14593 _res = NULL;
14594 done:
14595 D(p->level--);
14596 return _res;
14597}
14598
14599// for_if_clauses: for_if_clause+
Pablo Galindoa5634c42020-09-16 19:42:00 +010014600static asdl_comprehension_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014601for_if_clauses_rule(Parser *p)
14602{
14603 D(p->level++);
14604 if (p->error_indicator) {
14605 D(p->level--);
14606 return NULL;
14607 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010014608 asdl_comprehension_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014609 int _mark = p->mark;
14610 { // for_if_clause+
14611 if (p->error_indicator) {
14612 D(p->level--);
14613 return NULL;
14614 }
14615 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 +010014616 asdl_comprehension_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014617 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080014618 (a = (asdl_comprehension_seq*)_loop1_119_rule(p)) // for_if_clause+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014619 )
14620 {
14621 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 +010014622 _res = a;
14623 if (_res == NULL && PyErr_Occurred()) {
14624 p->error_indicator = 1;
14625 D(p->level--);
14626 return NULL;
14627 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014628 goto done;
14629 }
14630 p->mark = _mark;
14631 D(fprintf(stderr, "%*c%s for_if_clauses[%d-%d]: %s failed!\n", p->level, ' ',
14632 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "for_if_clause+"));
14633 }
14634 _res = NULL;
14635 done:
14636 D(p->level--);
14637 return _res;
14638}
14639
14640// for_if_clause:
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030014641// | ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
14642// | 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
14643// | invalid_for_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014644static comprehension_ty
14645for_if_clause_rule(Parser *p)
14646{
14647 D(p->level++);
14648 if (p->error_indicator) {
14649 D(p->level--);
14650 return NULL;
14651 }
14652 comprehension_ty _res = NULL;
14653 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030014654 { // ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014655 if (p->error_indicator) {
14656 D(p->level--);
14657 return NULL;
14658 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030014659 D(fprintf(stderr, "%*c> for_if_clause[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
14660 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014661 Token * _keyword;
14662 Token * _keyword_1;
14663 expr_ty a;
14664 Token * async_var;
14665 expr_ty b;
Pablo Galindoa5634c42020-09-16 19:42:00 +010014666 asdl_expr_seq* c;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014667 if (
14668 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
14669 &&
14670 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
14671 &&
14672 (a = star_targets_rule(p)) // star_targets
14673 &&
14674 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
14675 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030014676 (_cut_var = 1)
14677 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014678 (b = disjunction_rule(p)) // disjunction
14679 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080014680 (c = (asdl_expr_seq*)_loop0_120_rule(p)) // (('if' disjunction))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014681 )
14682 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030014683 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 +020014684 _res = CHECK_VERSION ( comprehension_ty , 6 , "Async comprehensions are" , _PyAST_comprehension ( a , b , c , 1 , p -> arena ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014685 if (_res == NULL && PyErr_Occurred()) {
14686 p->error_indicator = 1;
14687 D(p->level--);
14688 return NULL;
14689 }
14690 goto done;
14691 }
14692 p->mark = _mark;
14693 D(fprintf(stderr, "%*c%s for_if_clause[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030014694 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
14695 if (_cut_var) {
14696 D(p->level--);
14697 return NULL;
14698 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014699 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030014700 { // 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014701 if (p->error_indicator) {
14702 D(p->level--);
14703 return NULL;
14704 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030014705 D(fprintf(stderr, "%*c> for_if_clause[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
14706 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014707 Token * _keyword;
14708 Token * _keyword_1;
14709 expr_ty a;
14710 expr_ty b;
Pablo Galindoa5634c42020-09-16 19:42:00 +010014711 asdl_expr_seq* c;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014712 if (
14713 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
14714 &&
14715 (a = star_targets_rule(p)) // star_targets
14716 &&
14717 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
14718 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030014719 (_cut_var = 1)
14720 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014721 (b = disjunction_rule(p)) // disjunction
14722 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080014723 (c = (asdl_expr_seq*)_loop0_121_rule(p)) // (('if' disjunction))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014724 )
14725 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030014726 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 +020014727 _res = _PyAST_comprehension ( a , b , c , 0 , p -> arena );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014728 if (_res == NULL && PyErr_Occurred()) {
14729 p->error_indicator = 1;
14730 D(p->level--);
14731 return NULL;
14732 }
14733 goto done;
14734 }
14735 p->mark = _mark;
14736 D(fprintf(stderr, "%*c%s for_if_clause[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030014737 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
14738 if (_cut_var) {
14739 D(p->level--);
14740 return NULL;
14741 }
14742 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014743 if (p->call_invalid_rules) { // invalid_for_target
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030014744 if (p->error_indicator) {
14745 D(p->level--);
14746 return NULL;
14747 }
14748 D(fprintf(stderr, "%*c> for_if_clause[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
14749 void *invalid_for_target_var;
14750 if (
14751 (invalid_for_target_var = invalid_for_target_rule(p)) // invalid_for_target
14752 )
14753 {
14754 D(fprintf(stderr, "%*c+ for_if_clause[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
14755 _res = invalid_for_target_var;
14756 goto done;
14757 }
14758 p->mark = _mark;
14759 D(fprintf(stderr, "%*c%s for_if_clause[%d-%d]: %s failed!\n", p->level, ' ',
14760 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_for_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014761 }
14762 _res = NULL;
14763 done:
14764 D(p->level--);
14765 return _res;
14766}
14767
14768// yield_expr: 'yield' 'from' expression | 'yield' star_expressions?
14769static expr_ty
14770yield_expr_rule(Parser *p)
14771{
14772 D(p->level++);
14773 if (p->error_indicator) {
14774 D(p->level--);
14775 return NULL;
14776 }
14777 expr_ty _res = NULL;
14778 int _mark = p->mark;
14779 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14780 p->error_indicator = 1;
14781 D(p->level--);
14782 return NULL;
14783 }
14784 int _start_lineno = p->tokens[_mark]->lineno;
14785 UNUSED(_start_lineno); // Only used by EXTRA macro
14786 int _start_col_offset = p->tokens[_mark]->col_offset;
14787 UNUSED(_start_col_offset); // Only used by EXTRA macro
14788 { // 'yield' 'from' expression
14789 if (p->error_indicator) {
14790 D(p->level--);
14791 return NULL;
14792 }
14793 D(fprintf(stderr, "%*c> yield_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'yield' 'from' expression"));
14794 Token * _keyword;
14795 Token * _keyword_1;
14796 expr_ty a;
14797 if (
14798 (_keyword = _PyPegen_expect_token(p, 504)) // token='yield'
14799 &&
14800 (_keyword_1 = _PyPegen_expect_token(p, 514)) // token='from'
14801 &&
14802 (a = expression_rule(p)) // expression
14803 )
14804 {
14805 D(fprintf(stderr, "%*c+ yield_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'yield' 'from' expression"));
14806 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14807 if (_token == NULL) {
14808 D(p->level--);
14809 return NULL;
14810 }
14811 int _end_lineno = _token->end_lineno;
14812 UNUSED(_end_lineno); // Only used by EXTRA macro
14813 int _end_col_offset = _token->end_col_offset;
14814 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014815 _res = _PyAST_YieldFrom ( a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014816 if (_res == NULL && PyErr_Occurred()) {
14817 p->error_indicator = 1;
14818 D(p->level--);
14819 return NULL;
14820 }
14821 goto done;
14822 }
14823 p->mark = _mark;
14824 D(fprintf(stderr, "%*c%s yield_expr[%d-%d]: %s failed!\n", p->level, ' ',
14825 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'yield' 'from' expression"));
14826 }
14827 { // 'yield' star_expressions?
14828 if (p->error_indicator) {
14829 D(p->level--);
14830 return NULL;
14831 }
14832 D(fprintf(stderr, "%*c> yield_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'yield' star_expressions?"));
14833 Token * _keyword;
14834 void *a;
14835 if (
14836 (_keyword = _PyPegen_expect_token(p, 504)) // token='yield'
14837 &&
14838 (a = star_expressions_rule(p), 1) // star_expressions?
14839 )
14840 {
14841 D(fprintf(stderr, "%*c+ yield_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'yield' star_expressions?"));
14842 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14843 if (_token == NULL) {
14844 D(p->level--);
14845 return NULL;
14846 }
14847 int _end_lineno = _token->end_lineno;
14848 UNUSED(_end_lineno); // Only used by EXTRA macro
14849 int _end_col_offset = _token->end_col_offset;
14850 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014851 _res = _PyAST_Yield ( a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014852 if (_res == NULL && PyErr_Occurred()) {
14853 p->error_indicator = 1;
14854 D(p->level--);
14855 return NULL;
14856 }
14857 goto done;
14858 }
14859 p->mark = _mark;
14860 D(fprintf(stderr, "%*c%s yield_expr[%d-%d]: %s failed!\n", p->level, ' ',
14861 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'yield' star_expressions?"));
14862 }
14863 _res = NULL;
14864 done:
14865 D(p->level--);
14866 return _res;
14867}
14868
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014869// arguments: args ','? &')' | invalid_arguments
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014870static expr_ty
14871arguments_rule(Parser *p)
14872{
14873 D(p->level++);
14874 if (p->error_indicator) {
14875 D(p->level--);
14876 return NULL;
14877 }
14878 expr_ty _res = NULL;
14879 if (_PyPegen_is_memoized(p, arguments_type, &_res)) {
14880 D(p->level--);
14881 return _res;
14882 }
14883 int _mark = p->mark;
14884 { // args ','? &')'
14885 if (p->error_indicator) {
14886 D(p->level--);
14887 return NULL;
14888 }
14889 D(fprintf(stderr, "%*c> arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args ','? &')'"));
14890 void *_opt_var;
14891 UNUSED(_opt_var); // Silence compiler warnings
14892 expr_ty a;
14893 if (
14894 (a = args_rule(p)) // args
14895 &&
14896 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
14897 &&
14898 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
14899 )
14900 {
14901 D(fprintf(stderr, "%*c+ arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args ','? &')'"));
14902 _res = a;
14903 if (_res == NULL && PyErr_Occurred()) {
14904 p->error_indicator = 1;
14905 D(p->level--);
14906 return NULL;
14907 }
14908 goto done;
14909 }
14910 p->mark = _mark;
14911 D(fprintf(stderr, "%*c%s arguments[%d-%d]: %s failed!\n", p->level, ' ',
14912 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ','? &')'"));
14913 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014914 if (p->call_invalid_rules) { // invalid_arguments
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014915 if (p->error_indicator) {
14916 D(p->level--);
14917 return NULL;
14918 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014919 D(fprintf(stderr, "%*c> arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_arguments"));
14920 void *invalid_arguments_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014921 if (
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014922 (invalid_arguments_var = invalid_arguments_rule(p)) // invalid_arguments
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014923 )
14924 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014925 D(fprintf(stderr, "%*c+ arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_arguments"));
14926 _res = invalid_arguments_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014927 goto done;
14928 }
14929 p->mark = _mark;
14930 D(fprintf(stderr, "%*c%s arguments[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014931 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_arguments"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014932 }
14933 _res = NULL;
14934 done:
14935 _PyPegen_insert_memo(p, _mark, arguments_type, _res);
14936 D(p->level--);
14937 return _res;
14938}
14939
Pablo Galindod9151cb2021-04-13 02:32:33 +010014940// args: ','.(starred_expression | direct_named_expression !'=')+ [',' kwargs] | kwargs
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014941static expr_ty
14942args_rule(Parser *p)
14943{
14944 D(p->level++);
14945 if (p->error_indicator) {
14946 D(p->level--);
14947 return NULL;
14948 }
14949 expr_ty _res = NULL;
14950 int _mark = p->mark;
14951 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14952 p->error_indicator = 1;
14953 D(p->level--);
14954 return NULL;
14955 }
14956 int _start_lineno = p->tokens[_mark]->lineno;
14957 UNUSED(_start_lineno); // Only used by EXTRA macro
14958 int _start_col_offset = p->tokens[_mark]->col_offset;
14959 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindod9151cb2021-04-13 02:32:33 +010014960 { // ','.(starred_expression | direct_named_expression !'=')+ [',' kwargs]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014961 if (p->error_indicator) {
14962 D(p->level--);
14963 return NULL;
14964 }
Pablo Galindod9151cb2021-04-13 02:32:33 +010014965 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 +010014966 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014967 void *b;
14968 if (
Pablo Galindod9151cb2021-04-13 02:32:33 +010014969 (a = (asdl_expr_seq*)_gather_122_rule(p)) // ','.(starred_expression | direct_named_expression !'=')+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014970 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080014971 (b = _tmp_124_rule(p), 1) // [',' kwargs]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014972 )
14973 {
Pablo Galindod9151cb2021-04-13 02:32:33 +010014974 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 +010014975 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14976 if (_token == NULL) {
14977 D(p->level--);
14978 return NULL;
14979 }
14980 int _end_lineno = _token->end_lineno;
14981 UNUSED(_end_lineno); // Only used by EXTRA macro
14982 int _end_col_offset = _token->end_col_offset;
14983 UNUSED(_end_col_offset); // Only used by EXTRA macro
14984 _res = _PyPegen_collect_call_seqs ( p , a , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014985 if (_res == NULL && PyErr_Occurred()) {
14986 p->error_indicator = 1;
14987 D(p->level--);
14988 return NULL;
14989 }
14990 goto done;
14991 }
14992 p->mark = _mark;
14993 D(fprintf(stderr, "%*c%s args[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindod9151cb2021-04-13 02:32:33 +010014994 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.(starred_expression | direct_named_expression !'=')+ [',' kwargs]"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014995 }
14996 { // kwargs
14997 if (p->error_indicator) {
14998 D(p->level--);
14999 return NULL;
15000 }
15001 D(fprintf(stderr, "%*c> args[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwargs"));
15002 asdl_seq* a;
15003 if (
15004 (a = kwargs_rule(p)) // kwargs
15005 )
15006 {
15007 D(fprintf(stderr, "%*c+ args[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwargs"));
15008 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15009 if (_token == NULL) {
15010 D(p->level--);
15011 return NULL;
15012 }
15013 int _end_lineno = _token->end_lineno;
15014 UNUSED(_end_lineno); // Only used by EXTRA macro
15015 int _end_col_offset = _token->end_col_offset;
15016 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015017 _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 +010015018 if (_res == NULL && PyErr_Occurred()) {
15019 p->error_indicator = 1;
15020 D(p->level--);
15021 return NULL;
15022 }
15023 goto done;
15024 }
15025 p->mark = _mark;
15026 D(fprintf(stderr, "%*c%s args[%d-%d]: %s failed!\n", p->level, ' ',
15027 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwargs"));
15028 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015029 _res = NULL;
15030 done:
15031 D(p->level--);
15032 return _res;
15033}
15034
15035// kwargs:
15036// | ','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+
15037// | ','.kwarg_or_starred+
15038// | ','.kwarg_or_double_starred+
15039static asdl_seq*
15040kwargs_rule(Parser *p)
15041{
15042 D(p->level++);
15043 if (p->error_indicator) {
15044 D(p->level--);
15045 return NULL;
15046 }
15047 asdl_seq* _res = NULL;
15048 int _mark = p->mark;
15049 { // ','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+
15050 if (p->error_indicator) {
15051 D(p->level--);
15052 return NULL;
15053 }
15054 D(fprintf(stderr, "%*c> kwargs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+"));
15055 Token * _literal;
15056 asdl_seq * a;
15057 asdl_seq * b;
15058 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080015059 (a = _gather_125_rule(p)) // ','.kwarg_or_starred+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015060 &&
15061 (_literal = _PyPegen_expect_token(p, 12)) // token=','
15062 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080015063 (b = _gather_127_rule(p)) // ','.kwarg_or_double_starred+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015064 )
15065 {
15066 D(fprintf(stderr, "%*c+ kwargs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+"));
15067 _res = _PyPegen_join_sequences ( p , a , b );
15068 if (_res == NULL && PyErr_Occurred()) {
15069 p->error_indicator = 1;
15070 D(p->level--);
15071 return NULL;
15072 }
15073 goto done;
15074 }
15075 p->mark = _mark;
15076 D(fprintf(stderr, "%*c%s kwargs[%d-%d]: %s failed!\n", p->level, ' ',
15077 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+"));
15078 }
15079 { // ','.kwarg_or_starred+
15080 if (p->error_indicator) {
15081 D(p->level--);
15082 return NULL;
15083 }
15084 D(fprintf(stderr, "%*c> kwargs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_starred+"));
Brandt Bucher145bf262021-02-26 14:51:55 -080015085 asdl_seq * _gather_129_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015086 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080015087 (_gather_129_var = _gather_129_rule(p)) // ','.kwarg_or_starred+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015088 )
15089 {
15090 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 -080015091 _res = _gather_129_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015092 goto done;
15093 }
15094 p->mark = _mark;
15095 D(fprintf(stderr, "%*c%s kwargs[%d-%d]: %s failed!\n", p->level, ' ',
15096 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.kwarg_or_starred+"));
15097 }
15098 { // ','.kwarg_or_double_starred+
15099 if (p->error_indicator) {
15100 D(p->level--);
15101 return NULL;
15102 }
15103 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 -080015104 asdl_seq * _gather_131_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015105 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080015106 (_gather_131_var = _gather_131_rule(p)) // ','.kwarg_or_double_starred+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015107 )
15108 {
15109 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 -080015110 _res = _gather_131_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015111 goto done;
15112 }
15113 p->mark = _mark;
15114 D(fprintf(stderr, "%*c%s kwargs[%d-%d]: %s failed!\n", p->level, ' ',
15115 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.kwarg_or_double_starred+"));
15116 }
15117 _res = NULL;
15118 done:
15119 D(p->level--);
15120 return _res;
15121}
15122
15123// starred_expression: '*' expression
15124static expr_ty
15125starred_expression_rule(Parser *p)
15126{
15127 D(p->level++);
15128 if (p->error_indicator) {
15129 D(p->level--);
15130 return NULL;
15131 }
15132 expr_ty _res = NULL;
15133 int _mark = p->mark;
15134 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
15135 p->error_indicator = 1;
15136 D(p->level--);
15137 return NULL;
15138 }
15139 int _start_lineno = p->tokens[_mark]->lineno;
15140 UNUSED(_start_lineno); // Only used by EXTRA macro
15141 int _start_col_offset = p->tokens[_mark]->col_offset;
15142 UNUSED(_start_col_offset); // Only used by EXTRA macro
15143 { // '*' expression
15144 if (p->error_indicator) {
15145 D(p->level--);
15146 return NULL;
15147 }
15148 D(fprintf(stderr, "%*c> starred_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' expression"));
15149 Token * _literal;
15150 expr_ty a;
15151 if (
15152 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
15153 &&
15154 (a = expression_rule(p)) // expression
15155 )
15156 {
15157 D(fprintf(stderr, "%*c+ starred_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' expression"));
15158 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15159 if (_token == NULL) {
15160 D(p->level--);
15161 return NULL;
15162 }
15163 int _end_lineno = _token->end_lineno;
15164 UNUSED(_end_lineno); // Only used by EXTRA macro
15165 int _end_col_offset = _token->end_col_offset;
15166 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015167 _res = _PyAST_Starred ( a , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015168 if (_res == NULL && PyErr_Occurred()) {
15169 p->error_indicator = 1;
15170 D(p->level--);
15171 return NULL;
15172 }
15173 goto done;
15174 }
15175 p->mark = _mark;
15176 D(fprintf(stderr, "%*c%s starred_expression[%d-%d]: %s failed!\n", p->level, ' ',
15177 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' expression"));
15178 }
15179 _res = NULL;
15180 done:
15181 D(p->level--);
15182 return _res;
15183}
15184
15185// kwarg_or_starred: NAME '=' expression | starred_expression | invalid_kwarg
15186static KeywordOrStarred*
15187kwarg_or_starred_rule(Parser *p)
15188{
15189 D(p->level++);
15190 if (p->error_indicator) {
15191 D(p->level--);
15192 return NULL;
15193 }
15194 KeywordOrStarred* _res = NULL;
15195 int _mark = p->mark;
15196 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
15197 p->error_indicator = 1;
15198 D(p->level--);
15199 return NULL;
15200 }
15201 int _start_lineno = p->tokens[_mark]->lineno;
15202 UNUSED(_start_lineno); // Only used by EXTRA macro
15203 int _start_col_offset = p->tokens[_mark]->col_offset;
15204 UNUSED(_start_col_offset); // Only used by EXTRA macro
15205 { // NAME '=' expression
15206 if (p->error_indicator) {
15207 D(p->level--);
15208 return NULL;
15209 }
15210 D(fprintf(stderr, "%*c> kwarg_or_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '=' expression"));
15211 Token * _literal;
15212 expr_ty a;
15213 expr_ty b;
15214 if (
15215 (a = _PyPegen_name_token(p)) // NAME
15216 &&
15217 (_literal = _PyPegen_expect_token(p, 22)) // token='='
15218 &&
15219 (b = expression_rule(p)) // expression
15220 )
15221 {
15222 D(fprintf(stderr, "%*c+ kwarg_or_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '=' expression"));
15223 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15224 if (_token == NULL) {
15225 D(p->level--);
15226 return NULL;
15227 }
15228 int _end_lineno = _token->end_lineno;
15229 UNUSED(_end_lineno); // Only used by EXTRA macro
15230 int _end_col_offset = _token->end_col_offset;
15231 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015232 _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 +010015233 if (_res == NULL && PyErr_Occurred()) {
15234 p->error_indicator = 1;
15235 D(p->level--);
15236 return NULL;
15237 }
15238 goto done;
15239 }
15240 p->mark = _mark;
15241 D(fprintf(stderr, "%*c%s kwarg_or_starred[%d-%d]: %s failed!\n", p->level, ' ',
15242 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' expression"));
15243 }
15244 { // starred_expression
15245 if (p->error_indicator) {
15246 D(p->level--);
15247 return NULL;
15248 }
15249 D(fprintf(stderr, "%*c> kwarg_or_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "starred_expression"));
15250 expr_ty a;
15251 if (
15252 (a = starred_expression_rule(p)) // starred_expression
15253 )
15254 {
15255 D(fprintf(stderr, "%*c+ kwarg_or_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "starred_expression"));
15256 _res = _PyPegen_keyword_or_starred ( p , a , 0 );
15257 if (_res == NULL && PyErr_Occurred()) {
15258 p->error_indicator = 1;
15259 D(p->level--);
15260 return NULL;
15261 }
15262 goto done;
15263 }
15264 p->mark = _mark;
15265 D(fprintf(stderr, "%*c%s kwarg_or_starred[%d-%d]: %s failed!\n", p->level, ' ',
15266 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "starred_expression"));
15267 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020015268 if (p->call_invalid_rules) { // invalid_kwarg
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015269 if (p->error_indicator) {
15270 D(p->level--);
15271 return NULL;
15272 }
15273 D(fprintf(stderr, "%*c> kwarg_or_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_kwarg"));
15274 void *invalid_kwarg_var;
15275 if (
15276 (invalid_kwarg_var = invalid_kwarg_rule(p)) // invalid_kwarg
15277 )
15278 {
15279 D(fprintf(stderr, "%*c+ kwarg_or_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_kwarg"));
15280 _res = invalid_kwarg_var;
15281 goto done;
15282 }
15283 p->mark = _mark;
15284 D(fprintf(stderr, "%*c%s kwarg_or_starred[%d-%d]: %s failed!\n", p->level, ' ',
15285 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_kwarg"));
15286 }
15287 _res = NULL;
15288 done:
15289 D(p->level--);
15290 return _res;
15291}
15292
15293// kwarg_or_double_starred: NAME '=' expression | '**' expression | invalid_kwarg
15294static KeywordOrStarred*
15295kwarg_or_double_starred_rule(Parser *p)
15296{
15297 D(p->level++);
15298 if (p->error_indicator) {
15299 D(p->level--);
15300 return NULL;
15301 }
15302 KeywordOrStarred* _res = NULL;
15303 int _mark = p->mark;
15304 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
15305 p->error_indicator = 1;
15306 D(p->level--);
15307 return NULL;
15308 }
15309 int _start_lineno = p->tokens[_mark]->lineno;
15310 UNUSED(_start_lineno); // Only used by EXTRA macro
15311 int _start_col_offset = p->tokens[_mark]->col_offset;
15312 UNUSED(_start_col_offset); // Only used by EXTRA macro
15313 { // NAME '=' expression
15314 if (p->error_indicator) {
15315 D(p->level--);
15316 return NULL;
15317 }
15318 D(fprintf(stderr, "%*c> kwarg_or_double_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '=' expression"));
15319 Token * _literal;
15320 expr_ty a;
15321 expr_ty b;
15322 if (
15323 (a = _PyPegen_name_token(p)) // NAME
15324 &&
15325 (_literal = _PyPegen_expect_token(p, 22)) // token='='
15326 &&
15327 (b = expression_rule(p)) // expression
15328 )
15329 {
15330 D(fprintf(stderr, "%*c+ kwarg_or_double_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '=' expression"));
15331 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15332 if (_token == NULL) {
15333 D(p->level--);
15334 return NULL;
15335 }
15336 int _end_lineno = _token->end_lineno;
15337 UNUSED(_end_lineno); // Only used by EXTRA macro
15338 int _end_col_offset = _token->end_col_offset;
15339 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015340 _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 +010015341 if (_res == NULL && PyErr_Occurred()) {
15342 p->error_indicator = 1;
15343 D(p->level--);
15344 return NULL;
15345 }
15346 goto done;
15347 }
15348 p->mark = _mark;
15349 D(fprintf(stderr, "%*c%s kwarg_or_double_starred[%d-%d]: %s failed!\n", p->level, ' ',
15350 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' expression"));
15351 }
15352 { // '**' expression
15353 if (p->error_indicator) {
15354 D(p->level--);
15355 return NULL;
15356 }
15357 D(fprintf(stderr, "%*c> kwarg_or_double_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' expression"));
15358 Token * _literal;
15359 expr_ty a;
15360 if (
15361 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
15362 &&
15363 (a = expression_rule(p)) // expression
15364 )
15365 {
15366 D(fprintf(stderr, "%*c+ kwarg_or_double_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' expression"));
15367 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15368 if (_token == NULL) {
15369 D(p->level--);
15370 return NULL;
15371 }
15372 int _end_lineno = _token->end_lineno;
15373 UNUSED(_end_lineno); // Only used by EXTRA macro
15374 int _end_col_offset = _token->end_col_offset;
15375 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015376 _res = _PyPegen_keyword_or_starred ( p , CHECK ( keyword_ty , _PyAST_keyword ( NULL , a , EXTRA ) ) , 1 );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015377 if (_res == NULL && PyErr_Occurred()) {
15378 p->error_indicator = 1;
15379 D(p->level--);
15380 return NULL;
15381 }
15382 goto done;
15383 }
15384 p->mark = _mark;
15385 D(fprintf(stderr, "%*c%s kwarg_or_double_starred[%d-%d]: %s failed!\n", p->level, ' ',
15386 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' expression"));
15387 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020015388 if (p->call_invalid_rules) { // invalid_kwarg
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015389 if (p->error_indicator) {
15390 D(p->level--);
15391 return NULL;
15392 }
15393 D(fprintf(stderr, "%*c> kwarg_or_double_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_kwarg"));
15394 void *invalid_kwarg_var;
15395 if (
15396 (invalid_kwarg_var = invalid_kwarg_rule(p)) // invalid_kwarg
15397 )
15398 {
15399 D(fprintf(stderr, "%*c+ kwarg_or_double_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_kwarg"));
15400 _res = invalid_kwarg_var;
15401 goto done;
15402 }
15403 p->mark = _mark;
15404 D(fprintf(stderr, "%*c%s kwarg_or_double_starred[%d-%d]: %s failed!\n", p->level, ' ',
15405 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_kwarg"));
15406 }
15407 _res = NULL;
15408 done:
15409 D(p->level--);
15410 return _res;
15411}
15412
15413// star_targets: star_target !',' | star_target ((',' star_target))* ','?
15414static expr_ty
15415star_targets_rule(Parser *p)
15416{
15417 D(p->level++);
15418 if (p->error_indicator) {
15419 D(p->level--);
15420 return NULL;
15421 }
15422 expr_ty _res = NULL;
15423 int _mark = p->mark;
15424 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
15425 p->error_indicator = 1;
15426 D(p->level--);
15427 return NULL;
15428 }
15429 int _start_lineno = p->tokens[_mark]->lineno;
15430 UNUSED(_start_lineno); // Only used by EXTRA macro
15431 int _start_col_offset = p->tokens[_mark]->col_offset;
15432 UNUSED(_start_col_offset); // Only used by EXTRA macro
15433 { // star_target !','
15434 if (p->error_indicator) {
15435 D(p->level--);
15436 return NULL;
15437 }
15438 D(fprintf(stderr, "%*c> star_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target !','"));
15439 expr_ty a;
15440 if (
15441 (a = star_target_rule(p)) // star_target
15442 &&
15443 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 12) // token=','
15444 )
15445 {
15446 D(fprintf(stderr, "%*c+ star_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target !','"));
15447 _res = a;
15448 if (_res == NULL && PyErr_Occurred()) {
15449 p->error_indicator = 1;
15450 D(p->level--);
15451 return NULL;
15452 }
15453 goto done;
15454 }
15455 p->mark = _mark;
15456 D(fprintf(stderr, "%*c%s star_targets[%d-%d]: %s failed!\n", p->level, ' ',
15457 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target !','"));
15458 }
15459 { // star_target ((',' star_target))* ','?
15460 if (p->error_indicator) {
15461 D(p->level--);
15462 return NULL;
15463 }
15464 D(fprintf(stderr, "%*c> star_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target ((',' star_target))* ','?"));
15465 void *_opt_var;
15466 UNUSED(_opt_var); // Silence compiler warnings
15467 expr_ty a;
15468 asdl_seq * b;
15469 if (
15470 (a = star_target_rule(p)) // star_target
15471 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080015472 (b = _loop0_133_rule(p)) // ((',' star_target))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015473 &&
15474 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
15475 )
15476 {
15477 D(fprintf(stderr, "%*c+ star_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target ((',' star_target))* ','?"));
15478 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15479 if (_token == NULL) {
15480 D(p->level--);
15481 return NULL;
15482 }
15483 int _end_lineno = _token->end_lineno;
15484 UNUSED(_end_lineno); // Only used by EXTRA macro
15485 int _end_col_offset = _token->end_col_offset;
15486 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015487 _res = _PyAST_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , a , b ) ) , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015488 if (_res == NULL && PyErr_Occurred()) {
15489 p->error_indicator = 1;
15490 D(p->level--);
15491 return NULL;
15492 }
15493 goto done;
15494 }
15495 p->mark = _mark;
15496 D(fprintf(stderr, "%*c%s star_targets[%d-%d]: %s failed!\n", p->level, ' ',
15497 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target ((',' star_target))* ','?"));
15498 }
15499 _res = NULL;
15500 done:
15501 D(p->level--);
15502 return _res;
15503}
15504
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015505// star_targets_list_seq: ','.star_target+ ','?
Pablo Galindoa5634c42020-09-16 19:42:00 +010015506static asdl_expr_seq*
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015507star_targets_list_seq_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015508{
15509 D(p->level++);
15510 if (p->error_indicator) {
15511 D(p->level--);
15512 return NULL;
15513 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010015514 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015515 int _mark = p->mark;
15516 { // ','.star_target+ ','?
15517 if (p->error_indicator) {
15518 D(p->level--);
15519 return NULL;
15520 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015521 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 +010015522 void *_opt_var;
15523 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +010015524 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015525 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080015526 (a = (asdl_expr_seq*)_gather_134_rule(p)) // ','.star_target+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015527 &&
15528 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
15529 )
15530 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015531 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 +010015532 _res = a;
15533 if (_res == NULL && PyErr_Occurred()) {
15534 p->error_indicator = 1;
15535 D(p->level--);
15536 return NULL;
15537 }
15538 goto done;
15539 }
15540 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015541 D(fprintf(stderr, "%*c%s star_targets_list_seq[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015542 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.star_target+ ','?"));
15543 }
15544 _res = NULL;
15545 done:
15546 D(p->level--);
15547 return _res;
15548}
15549
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015550// star_targets_tuple_seq: star_target ((',' star_target))+ ','? | star_target ','
15551static asdl_expr_seq*
15552star_targets_tuple_seq_rule(Parser *p)
15553{
15554 D(p->level++);
15555 if (p->error_indicator) {
15556 D(p->level--);
15557 return NULL;
15558 }
15559 asdl_expr_seq* _res = NULL;
15560 int _mark = p->mark;
15561 { // star_target ((',' star_target))+ ','?
15562 if (p->error_indicator) {
15563 D(p->level--);
15564 return NULL;
15565 }
15566 D(fprintf(stderr, "%*c> star_targets_tuple_seq[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target ((',' star_target))+ ','?"));
15567 void *_opt_var;
15568 UNUSED(_opt_var); // Silence compiler warnings
15569 expr_ty a;
15570 asdl_seq * b;
15571 if (
15572 (a = star_target_rule(p)) // star_target
15573 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080015574 (b = _loop1_136_rule(p)) // ((',' star_target))+
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015575 &&
15576 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
15577 )
15578 {
15579 D(fprintf(stderr, "%*c+ star_targets_tuple_seq[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target ((',' star_target))+ ','?"));
15580 _res = ( asdl_expr_seq * ) _PyPegen_seq_insert_in_front ( p , a , b );
15581 if (_res == NULL && PyErr_Occurred()) {
15582 p->error_indicator = 1;
15583 D(p->level--);
15584 return NULL;
15585 }
15586 goto done;
15587 }
15588 p->mark = _mark;
15589 D(fprintf(stderr, "%*c%s star_targets_tuple_seq[%d-%d]: %s failed!\n", p->level, ' ',
15590 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target ((',' star_target))+ ','?"));
15591 }
15592 { // star_target ','
15593 if (p->error_indicator) {
15594 D(p->level--);
15595 return NULL;
15596 }
15597 D(fprintf(stderr, "%*c> star_targets_tuple_seq[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target ','"));
15598 Token * _literal;
15599 expr_ty a;
15600 if (
15601 (a = star_target_rule(p)) // star_target
15602 &&
15603 (_literal = _PyPegen_expect_token(p, 12)) // token=','
15604 )
15605 {
15606 D(fprintf(stderr, "%*c+ star_targets_tuple_seq[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target ','"));
15607 _res = ( asdl_expr_seq * ) _PyPegen_singleton_seq ( p , a );
15608 if (_res == NULL && PyErr_Occurred()) {
15609 p->error_indicator = 1;
15610 D(p->level--);
15611 return NULL;
15612 }
15613 goto done;
15614 }
15615 p->mark = _mark;
15616 D(fprintf(stderr, "%*c%s star_targets_tuple_seq[%d-%d]: %s failed!\n", p->level, ' ',
15617 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target ','"));
15618 }
15619 _res = NULL;
15620 done:
15621 D(p->level--);
15622 return _res;
15623}
15624
15625// star_target: '*' (!'*' star_target) | target_with_star_atom
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015626static expr_ty
15627star_target_rule(Parser *p)
15628{
15629 D(p->level++);
15630 if (p->error_indicator) {
15631 D(p->level--);
15632 return NULL;
15633 }
15634 expr_ty _res = NULL;
15635 if (_PyPegen_is_memoized(p, star_target_type, &_res)) {
15636 D(p->level--);
15637 return _res;
15638 }
15639 int _mark = p->mark;
15640 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
15641 p->error_indicator = 1;
15642 D(p->level--);
15643 return NULL;
15644 }
15645 int _start_lineno = p->tokens[_mark]->lineno;
15646 UNUSED(_start_lineno); // Only used by EXTRA macro
15647 int _start_col_offset = p->tokens[_mark]->col_offset;
15648 UNUSED(_start_col_offset); // Only used by EXTRA macro
15649 { // '*' (!'*' star_target)
15650 if (p->error_indicator) {
15651 D(p->level--);
15652 return NULL;
15653 }
15654 D(fprintf(stderr, "%*c> star_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (!'*' star_target)"));
15655 Token * _literal;
15656 void *a;
15657 if (
15658 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
15659 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080015660 (a = _tmp_137_rule(p)) // !'*' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015661 )
15662 {
15663 D(fprintf(stderr, "%*c+ star_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (!'*' star_target)"));
15664 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15665 if (_token == NULL) {
15666 D(p->level--);
15667 return NULL;
15668 }
15669 int _end_lineno = _token->end_lineno;
15670 UNUSED(_end_lineno); // Only used by EXTRA macro
15671 int _end_col_offset = _token->end_col_offset;
15672 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015673 _res = _PyAST_Starred ( CHECK ( expr_ty , _PyPegen_set_expr_context ( p , a , Store ) ) , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015674 if (_res == NULL && PyErr_Occurred()) {
15675 p->error_indicator = 1;
15676 D(p->level--);
15677 return NULL;
15678 }
15679 goto done;
15680 }
15681 p->mark = _mark;
15682 D(fprintf(stderr, "%*c%s star_target[%d-%d]: %s failed!\n", p->level, ' ',
15683 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' (!'*' star_target)"));
15684 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015685 { // target_with_star_atom
15686 if (p->error_indicator) {
15687 D(p->level--);
15688 return NULL;
15689 }
15690 D(fprintf(stderr, "%*c> star_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "target_with_star_atom"));
15691 expr_ty target_with_star_atom_var;
15692 if (
15693 (target_with_star_atom_var = target_with_star_atom_rule(p)) // target_with_star_atom
15694 )
15695 {
15696 D(fprintf(stderr, "%*c+ star_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "target_with_star_atom"));
15697 _res = target_with_star_atom_var;
15698 goto done;
15699 }
15700 p->mark = _mark;
15701 D(fprintf(stderr, "%*c%s star_target[%d-%d]: %s failed!\n", p->level, ' ',
15702 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "target_with_star_atom"));
15703 }
15704 _res = NULL;
15705 done:
15706 _PyPegen_insert_memo(p, _mark, star_target_type, _res);
15707 D(p->level--);
15708 return _res;
15709}
15710
15711// target_with_star_atom:
15712// | t_primary '.' NAME !t_lookahead
15713// | t_primary '[' slices ']' !t_lookahead
15714// | star_atom
15715static expr_ty
15716target_with_star_atom_rule(Parser *p)
15717{
15718 D(p->level++);
15719 if (p->error_indicator) {
15720 D(p->level--);
15721 return NULL;
15722 }
15723 expr_ty _res = NULL;
15724 if (_PyPegen_is_memoized(p, target_with_star_atom_type, &_res)) {
15725 D(p->level--);
15726 return _res;
15727 }
15728 int _mark = p->mark;
15729 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
15730 p->error_indicator = 1;
15731 D(p->level--);
15732 return NULL;
15733 }
15734 int _start_lineno = p->tokens[_mark]->lineno;
15735 UNUSED(_start_lineno); // Only used by EXTRA macro
15736 int _start_col_offset = p->tokens[_mark]->col_offset;
15737 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015738 { // t_primary '.' NAME !t_lookahead
15739 if (p->error_indicator) {
15740 D(p->level--);
15741 return NULL;
15742 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015743 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 +010015744 Token * _literal;
15745 expr_ty a;
15746 expr_ty b;
15747 if (
15748 (a = t_primary_rule(p)) // t_primary
15749 &&
15750 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
15751 &&
15752 (b = _PyPegen_name_token(p)) // NAME
15753 &&
15754 _PyPegen_lookahead(0, t_lookahead_rule, p)
15755 )
15756 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015757 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 +010015758 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15759 if (_token == NULL) {
15760 D(p->level--);
15761 return NULL;
15762 }
15763 int _end_lineno = _token->end_lineno;
15764 UNUSED(_end_lineno); // Only used by EXTRA macro
15765 int _end_col_offset = _token->end_col_offset;
15766 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015767 _res = _PyAST_Attribute ( a , b -> v . Name . id , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015768 if (_res == NULL && PyErr_Occurred()) {
15769 p->error_indicator = 1;
15770 D(p->level--);
15771 return NULL;
15772 }
15773 goto done;
15774 }
15775 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015776 D(fprintf(stderr, "%*c%s target_with_star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015777 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
15778 }
15779 { // t_primary '[' slices ']' !t_lookahead
15780 if (p->error_indicator) {
15781 D(p->level--);
15782 return NULL;
15783 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015784 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 +010015785 Token * _literal;
15786 Token * _literal_1;
15787 expr_ty a;
15788 expr_ty b;
15789 if (
15790 (a = t_primary_rule(p)) // t_primary
15791 &&
15792 (_literal = _PyPegen_expect_token(p, 9)) // token='['
15793 &&
15794 (b = slices_rule(p)) // slices
15795 &&
15796 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
15797 &&
15798 _PyPegen_lookahead(0, t_lookahead_rule, p)
15799 )
15800 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015801 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 +010015802 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15803 if (_token == NULL) {
15804 D(p->level--);
15805 return NULL;
15806 }
15807 int _end_lineno = _token->end_lineno;
15808 UNUSED(_end_lineno); // Only used by EXTRA macro
15809 int _end_col_offset = _token->end_col_offset;
15810 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015811 _res = _PyAST_Subscript ( a , b , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015812 if (_res == NULL && PyErr_Occurred()) {
15813 p->error_indicator = 1;
15814 D(p->level--);
15815 return NULL;
15816 }
15817 goto done;
15818 }
15819 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015820 D(fprintf(stderr, "%*c%s target_with_star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015821 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
15822 }
15823 { // star_atom
15824 if (p->error_indicator) {
15825 D(p->level--);
15826 return NULL;
15827 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015828 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 +010015829 expr_ty star_atom_var;
15830 if (
15831 (star_atom_var = star_atom_rule(p)) // star_atom
15832 )
15833 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015834 D(fprintf(stderr, "%*c+ target_with_star_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_atom"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015835 _res = star_atom_var;
15836 goto done;
15837 }
15838 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015839 D(fprintf(stderr, "%*c%s target_with_star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015840 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_atom"));
15841 }
15842 _res = NULL;
15843 done:
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015844 _PyPegen_insert_memo(p, _mark, target_with_star_atom_type, _res);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015845 D(p->level--);
15846 return _res;
15847}
15848
15849// star_atom:
15850// | NAME
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015851// | '(' target_with_star_atom ')'
15852// | '(' star_targets_tuple_seq? ')'
15853// | '[' star_targets_list_seq? ']'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015854static expr_ty
15855star_atom_rule(Parser *p)
15856{
15857 D(p->level++);
15858 if (p->error_indicator) {
15859 D(p->level--);
15860 return NULL;
15861 }
15862 expr_ty _res = NULL;
15863 int _mark = p->mark;
15864 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
15865 p->error_indicator = 1;
15866 D(p->level--);
15867 return NULL;
15868 }
15869 int _start_lineno = p->tokens[_mark]->lineno;
15870 UNUSED(_start_lineno); // Only used by EXTRA macro
15871 int _start_col_offset = p->tokens[_mark]->col_offset;
15872 UNUSED(_start_col_offset); // Only used by EXTRA macro
15873 { // NAME
15874 if (p->error_indicator) {
15875 D(p->level--);
15876 return NULL;
15877 }
15878 D(fprintf(stderr, "%*c> star_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
15879 expr_ty a;
15880 if (
15881 (a = _PyPegen_name_token(p)) // NAME
15882 )
15883 {
15884 D(fprintf(stderr, "%*c+ star_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
15885 _res = _PyPegen_set_expr_context ( p , a , Store );
15886 if (_res == NULL && PyErr_Occurred()) {
15887 p->error_indicator = 1;
15888 D(p->level--);
15889 return NULL;
15890 }
15891 goto done;
15892 }
15893 p->mark = _mark;
15894 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
15895 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
15896 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015897 { // '(' target_with_star_atom ')'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015898 if (p->error_indicator) {
15899 D(p->level--);
15900 return NULL;
15901 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015902 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 +010015903 Token * _literal;
15904 Token * _literal_1;
15905 expr_ty a;
15906 if (
15907 (_literal = _PyPegen_expect_token(p, 7)) // token='('
15908 &&
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015909 (a = target_with_star_atom_rule(p)) // target_with_star_atom
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015910 &&
15911 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
15912 )
15913 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015914 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 +010015915 _res = _PyPegen_set_expr_context ( p , a , Store );
15916 if (_res == NULL && PyErr_Occurred()) {
15917 p->error_indicator = 1;
15918 D(p->level--);
15919 return NULL;
15920 }
15921 goto done;
15922 }
15923 p->mark = _mark;
15924 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015925 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' target_with_star_atom ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015926 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015927 { // '(' star_targets_tuple_seq? ')'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015928 if (p->error_indicator) {
15929 D(p->level--);
15930 return NULL;
15931 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015932 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 +010015933 Token * _literal;
15934 Token * _literal_1;
15935 void *a;
15936 if (
15937 (_literal = _PyPegen_expect_token(p, 7)) // token='('
15938 &&
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015939 (a = star_targets_tuple_seq_rule(p), 1) // star_targets_tuple_seq?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015940 &&
15941 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
15942 )
15943 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015944 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 +010015945 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15946 if (_token == NULL) {
15947 D(p->level--);
15948 return NULL;
15949 }
15950 int _end_lineno = _token->end_lineno;
15951 UNUSED(_end_lineno); // Only used by EXTRA macro
15952 int _end_col_offset = _token->end_col_offset;
15953 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015954 _res = _PyAST_Tuple ( a , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015955 if (_res == NULL && PyErr_Occurred()) {
15956 p->error_indicator = 1;
15957 D(p->level--);
15958 return NULL;
15959 }
15960 goto done;
15961 }
15962 p->mark = _mark;
15963 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015964 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' star_targets_tuple_seq? ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015965 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015966 { // '[' star_targets_list_seq? ']'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015967 if (p->error_indicator) {
15968 D(p->level--);
15969 return NULL;
15970 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015971 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 +010015972 Token * _literal;
15973 Token * _literal_1;
15974 void *a;
15975 if (
15976 (_literal = _PyPegen_expect_token(p, 9)) // token='['
15977 &&
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015978 (a = star_targets_list_seq_rule(p), 1) // star_targets_list_seq?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015979 &&
15980 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
15981 )
15982 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015983 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 +010015984 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15985 if (_token == NULL) {
15986 D(p->level--);
15987 return NULL;
15988 }
15989 int _end_lineno = _token->end_lineno;
15990 UNUSED(_end_lineno); // Only used by EXTRA macro
15991 int _end_col_offset = _token->end_col_offset;
15992 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015993 _res = _PyAST_List ( a , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015994 if (_res == NULL && PyErr_Occurred()) {
15995 p->error_indicator = 1;
15996 D(p->level--);
15997 return NULL;
15998 }
15999 goto done;
16000 }
16001 p->mark = _mark;
16002 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016003 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' star_targets_list_seq? ']'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016004 }
16005 _res = NULL;
16006 done:
16007 D(p->level--);
16008 return _res;
16009}
16010
16011// single_target: single_subscript_attribute_target | NAME | '(' single_target ')'
16012static expr_ty
16013single_target_rule(Parser *p)
16014{
16015 D(p->level++);
16016 if (p->error_indicator) {
16017 D(p->level--);
16018 return NULL;
16019 }
16020 expr_ty _res = NULL;
16021 int _mark = p->mark;
16022 { // single_subscript_attribute_target
16023 if (p->error_indicator) {
16024 D(p->level--);
16025 return NULL;
16026 }
16027 D(fprintf(stderr, "%*c> single_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "single_subscript_attribute_target"));
16028 expr_ty single_subscript_attribute_target_var;
16029 if (
16030 (single_subscript_attribute_target_var = single_subscript_attribute_target_rule(p)) // single_subscript_attribute_target
16031 )
16032 {
16033 D(fprintf(stderr, "%*c+ single_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "single_subscript_attribute_target"));
16034 _res = single_subscript_attribute_target_var;
16035 goto done;
16036 }
16037 p->mark = _mark;
16038 D(fprintf(stderr, "%*c%s single_target[%d-%d]: %s failed!\n", p->level, ' ',
16039 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "single_subscript_attribute_target"));
16040 }
16041 { // NAME
16042 if (p->error_indicator) {
16043 D(p->level--);
16044 return NULL;
16045 }
16046 D(fprintf(stderr, "%*c> single_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
16047 expr_ty a;
16048 if (
16049 (a = _PyPegen_name_token(p)) // NAME
16050 )
16051 {
16052 D(fprintf(stderr, "%*c+ single_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
16053 _res = _PyPegen_set_expr_context ( p , a , Store );
16054 if (_res == NULL && PyErr_Occurred()) {
16055 p->error_indicator = 1;
16056 D(p->level--);
16057 return NULL;
16058 }
16059 goto done;
16060 }
16061 p->mark = _mark;
16062 D(fprintf(stderr, "%*c%s single_target[%d-%d]: %s failed!\n", p->level, ' ',
16063 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
16064 }
16065 { // '(' single_target ')'
16066 if (p->error_indicator) {
16067 D(p->level--);
16068 return NULL;
16069 }
16070 D(fprintf(stderr, "%*c> single_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
16071 Token * _literal;
16072 Token * _literal_1;
16073 expr_ty a;
16074 if (
16075 (_literal = _PyPegen_expect_token(p, 7)) // token='('
16076 &&
16077 (a = single_target_rule(p)) // single_target
16078 &&
16079 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
16080 )
16081 {
16082 D(fprintf(stderr, "%*c+ single_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
16083 _res = a;
16084 if (_res == NULL && PyErr_Occurred()) {
16085 p->error_indicator = 1;
16086 D(p->level--);
16087 return NULL;
16088 }
16089 goto done;
16090 }
16091 p->mark = _mark;
16092 D(fprintf(stderr, "%*c%s single_target[%d-%d]: %s failed!\n", p->level, ' ',
16093 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' single_target ')'"));
16094 }
16095 _res = NULL;
16096 done:
16097 D(p->level--);
16098 return _res;
16099}
16100
16101// single_subscript_attribute_target:
16102// | t_primary '.' NAME !t_lookahead
16103// | t_primary '[' slices ']' !t_lookahead
16104static expr_ty
16105single_subscript_attribute_target_rule(Parser *p)
16106{
16107 D(p->level++);
16108 if (p->error_indicator) {
16109 D(p->level--);
16110 return NULL;
16111 }
16112 expr_ty _res = NULL;
16113 int _mark = p->mark;
16114 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
16115 p->error_indicator = 1;
16116 D(p->level--);
16117 return NULL;
16118 }
16119 int _start_lineno = p->tokens[_mark]->lineno;
16120 UNUSED(_start_lineno); // Only used by EXTRA macro
16121 int _start_col_offset = p->tokens[_mark]->col_offset;
16122 UNUSED(_start_col_offset); // Only used by EXTRA macro
16123 { // t_primary '.' NAME !t_lookahead
16124 if (p->error_indicator) {
16125 D(p->level--);
16126 return NULL;
16127 }
16128 D(fprintf(stderr, "%*c> single_subscript_attribute_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
16129 Token * _literal;
16130 expr_ty a;
16131 expr_ty b;
16132 if (
16133 (a = t_primary_rule(p)) // t_primary
16134 &&
16135 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
16136 &&
16137 (b = _PyPegen_name_token(p)) // NAME
16138 &&
16139 _PyPegen_lookahead(0, t_lookahead_rule, p)
16140 )
16141 {
16142 D(fprintf(stderr, "%*c+ single_subscript_attribute_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
16143 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16144 if (_token == NULL) {
16145 D(p->level--);
16146 return NULL;
16147 }
16148 int _end_lineno = _token->end_lineno;
16149 UNUSED(_end_lineno); // Only used by EXTRA macro
16150 int _end_col_offset = _token->end_col_offset;
16151 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016152 _res = _PyAST_Attribute ( a , b -> v . Name . id , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016153 if (_res == NULL && PyErr_Occurred()) {
16154 p->error_indicator = 1;
16155 D(p->level--);
16156 return NULL;
16157 }
16158 goto done;
16159 }
16160 p->mark = _mark;
16161 D(fprintf(stderr, "%*c%s single_subscript_attribute_target[%d-%d]: %s failed!\n", p->level, ' ',
16162 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
16163 }
16164 { // t_primary '[' slices ']' !t_lookahead
16165 if (p->error_indicator) {
16166 D(p->level--);
16167 return NULL;
16168 }
16169 D(fprintf(stderr, "%*c> single_subscript_attribute_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
16170 Token * _literal;
16171 Token * _literal_1;
16172 expr_ty a;
16173 expr_ty b;
16174 if (
16175 (a = t_primary_rule(p)) // t_primary
16176 &&
16177 (_literal = _PyPegen_expect_token(p, 9)) // token='['
16178 &&
16179 (b = slices_rule(p)) // slices
16180 &&
16181 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
16182 &&
16183 _PyPegen_lookahead(0, t_lookahead_rule, p)
16184 )
16185 {
16186 D(fprintf(stderr, "%*c+ single_subscript_attribute_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
16187 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16188 if (_token == NULL) {
16189 D(p->level--);
16190 return NULL;
16191 }
16192 int _end_lineno = _token->end_lineno;
16193 UNUSED(_end_lineno); // Only used by EXTRA macro
16194 int _end_col_offset = _token->end_col_offset;
16195 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016196 _res = _PyAST_Subscript ( a , b , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016197 if (_res == NULL && PyErr_Occurred()) {
16198 p->error_indicator = 1;
16199 D(p->level--);
16200 return NULL;
16201 }
16202 goto done;
16203 }
16204 p->mark = _mark;
16205 D(fprintf(stderr, "%*c%s single_subscript_attribute_target[%d-%d]: %s failed!\n", p->level, ' ',
16206 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
16207 }
16208 _res = NULL;
16209 done:
16210 D(p->level--);
16211 return _res;
16212}
16213
16214// del_targets: ','.del_target+ ','?
Pablo Galindoa5634c42020-09-16 19:42:00 +010016215static asdl_expr_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016216del_targets_rule(Parser *p)
16217{
16218 D(p->level++);
16219 if (p->error_indicator) {
16220 D(p->level--);
16221 return NULL;
16222 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010016223 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016224 int _mark = p->mark;
16225 { // ','.del_target+ ','?
16226 if (p->error_indicator) {
16227 D(p->level--);
16228 return NULL;
16229 }
16230 D(fprintf(stderr, "%*c> del_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.del_target+ ','?"));
16231 void *_opt_var;
16232 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +010016233 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016234 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080016235 (a = (asdl_expr_seq*)_gather_138_rule(p)) // ','.del_target+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016236 &&
16237 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
16238 )
16239 {
16240 D(fprintf(stderr, "%*c+ del_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.del_target+ ','?"));
16241 _res = a;
16242 if (_res == NULL && PyErr_Occurred()) {
16243 p->error_indicator = 1;
16244 D(p->level--);
16245 return NULL;
16246 }
16247 goto done;
16248 }
16249 p->mark = _mark;
16250 D(fprintf(stderr, "%*c%s del_targets[%d-%d]: %s failed!\n", p->level, ' ',
16251 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.del_target+ ','?"));
16252 }
16253 _res = NULL;
16254 done:
16255 D(p->level--);
16256 return _res;
16257}
16258
16259// del_target:
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016260// | t_primary '.' NAME !t_lookahead
16261// | t_primary '[' slices ']' !t_lookahead
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016262// | del_t_atom
16263static expr_ty
16264del_target_rule(Parser *p)
16265{
16266 D(p->level++);
16267 if (p->error_indicator) {
16268 D(p->level--);
16269 return NULL;
16270 }
16271 expr_ty _res = NULL;
16272 if (_PyPegen_is_memoized(p, del_target_type, &_res)) {
16273 D(p->level--);
16274 return _res;
16275 }
16276 int _mark = p->mark;
16277 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
16278 p->error_indicator = 1;
16279 D(p->level--);
16280 return NULL;
16281 }
16282 int _start_lineno = p->tokens[_mark]->lineno;
16283 UNUSED(_start_lineno); // Only used by EXTRA macro
16284 int _start_col_offset = p->tokens[_mark]->col_offset;
16285 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016286 { // t_primary '.' NAME !t_lookahead
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016287 if (p->error_indicator) {
16288 D(p->level--);
16289 return NULL;
16290 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016291 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 +010016292 Token * _literal;
16293 expr_ty a;
16294 expr_ty b;
16295 if (
16296 (a = t_primary_rule(p)) // t_primary
16297 &&
16298 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
16299 &&
16300 (b = _PyPegen_name_token(p)) // NAME
16301 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016302 _PyPegen_lookahead(0, t_lookahead_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016303 )
16304 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016305 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 +010016306 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16307 if (_token == NULL) {
16308 D(p->level--);
16309 return NULL;
16310 }
16311 int _end_lineno = _token->end_lineno;
16312 UNUSED(_end_lineno); // Only used by EXTRA macro
16313 int _end_col_offset = _token->end_col_offset;
16314 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016315 _res = _PyAST_Attribute ( a , b -> v . Name . id , Del , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016316 if (_res == NULL && PyErr_Occurred()) {
16317 p->error_indicator = 1;
16318 D(p->level--);
16319 return NULL;
16320 }
16321 goto done;
16322 }
16323 p->mark = _mark;
16324 D(fprintf(stderr, "%*c%s del_target[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016325 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016326 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016327 { // t_primary '[' slices ']' !t_lookahead
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016328 if (p->error_indicator) {
16329 D(p->level--);
16330 return NULL;
16331 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016332 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 +010016333 Token * _literal;
16334 Token * _literal_1;
16335 expr_ty a;
16336 expr_ty b;
16337 if (
16338 (a = t_primary_rule(p)) // t_primary
16339 &&
16340 (_literal = _PyPegen_expect_token(p, 9)) // token='['
16341 &&
16342 (b = slices_rule(p)) // slices
16343 &&
16344 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
16345 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016346 _PyPegen_lookahead(0, t_lookahead_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016347 )
16348 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016349 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 +010016350 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16351 if (_token == NULL) {
16352 D(p->level--);
16353 return NULL;
16354 }
16355 int _end_lineno = _token->end_lineno;
16356 UNUSED(_end_lineno); // Only used by EXTRA macro
16357 int _end_col_offset = _token->end_col_offset;
16358 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016359 _res = _PyAST_Subscript ( a , b , Del , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016360 if (_res == NULL && PyErr_Occurred()) {
16361 p->error_indicator = 1;
16362 D(p->level--);
16363 return NULL;
16364 }
16365 goto done;
16366 }
16367 p->mark = _mark;
16368 D(fprintf(stderr, "%*c%s del_target[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016369 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016370 }
16371 { // del_t_atom
16372 if (p->error_indicator) {
16373 D(p->level--);
16374 return NULL;
16375 }
16376 D(fprintf(stderr, "%*c> del_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "del_t_atom"));
16377 expr_ty del_t_atom_var;
16378 if (
16379 (del_t_atom_var = del_t_atom_rule(p)) // del_t_atom
16380 )
16381 {
16382 D(fprintf(stderr, "%*c+ del_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "del_t_atom"));
16383 _res = del_t_atom_var;
16384 goto done;
16385 }
16386 p->mark = _mark;
16387 D(fprintf(stderr, "%*c%s del_target[%d-%d]: %s failed!\n", p->level, ' ',
16388 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "del_t_atom"));
16389 }
16390 _res = NULL;
16391 done:
16392 _PyPegen_insert_memo(p, _mark, del_target_type, _res);
16393 D(p->level--);
16394 return _res;
16395}
16396
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016397// del_t_atom: NAME | '(' del_target ')' | '(' del_targets? ')' | '[' del_targets? ']'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016398static expr_ty
16399del_t_atom_rule(Parser *p)
16400{
16401 D(p->level++);
16402 if (p->error_indicator) {
16403 D(p->level--);
16404 return NULL;
16405 }
16406 expr_ty _res = NULL;
16407 int _mark = p->mark;
16408 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
16409 p->error_indicator = 1;
16410 D(p->level--);
16411 return NULL;
16412 }
16413 int _start_lineno = p->tokens[_mark]->lineno;
16414 UNUSED(_start_lineno); // Only used by EXTRA macro
16415 int _start_col_offset = p->tokens[_mark]->col_offset;
16416 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016417 { // NAME
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016418 if (p->error_indicator) {
16419 D(p->level--);
16420 return NULL;
16421 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016422 D(fprintf(stderr, "%*c> del_t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016423 expr_ty a;
16424 if (
16425 (a = _PyPegen_name_token(p)) // NAME
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016426 )
16427 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016428 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 +010016429 _res = _PyPegen_set_expr_context ( p , a , Del );
16430 if (_res == NULL && PyErr_Occurred()) {
16431 p->error_indicator = 1;
16432 D(p->level--);
16433 return NULL;
16434 }
16435 goto done;
16436 }
16437 p->mark = _mark;
16438 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016439 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016440 }
16441 { // '(' del_target ')'
16442 if (p->error_indicator) {
16443 D(p->level--);
16444 return NULL;
16445 }
16446 D(fprintf(stderr, "%*c> del_t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' del_target ')'"));
16447 Token * _literal;
16448 Token * _literal_1;
16449 expr_ty a;
16450 if (
16451 (_literal = _PyPegen_expect_token(p, 7)) // token='('
16452 &&
16453 (a = del_target_rule(p)) // del_target
16454 &&
16455 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
16456 )
16457 {
16458 D(fprintf(stderr, "%*c+ del_t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' del_target ')'"));
16459 _res = _PyPegen_set_expr_context ( p , a , Del );
16460 if (_res == NULL && PyErr_Occurred()) {
16461 p->error_indicator = 1;
16462 D(p->level--);
16463 return NULL;
16464 }
16465 goto done;
16466 }
16467 p->mark = _mark;
16468 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
16469 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' del_target ')'"));
16470 }
16471 { // '(' del_targets? ')'
16472 if (p->error_indicator) {
16473 D(p->level--);
16474 return NULL;
16475 }
16476 D(fprintf(stderr, "%*c> del_t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' del_targets? ')'"));
16477 Token * _literal;
16478 Token * _literal_1;
16479 void *a;
16480 if (
16481 (_literal = _PyPegen_expect_token(p, 7)) // token='('
16482 &&
16483 (a = del_targets_rule(p), 1) // del_targets?
16484 &&
16485 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
16486 )
16487 {
16488 D(fprintf(stderr, "%*c+ del_t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' del_targets? ')'"));
16489 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16490 if (_token == NULL) {
16491 D(p->level--);
16492 return NULL;
16493 }
16494 int _end_lineno = _token->end_lineno;
16495 UNUSED(_end_lineno); // Only used by EXTRA macro
16496 int _end_col_offset = _token->end_col_offset;
16497 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016498 _res = _PyAST_Tuple ( a , Del , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016499 if (_res == NULL && PyErr_Occurred()) {
16500 p->error_indicator = 1;
16501 D(p->level--);
16502 return NULL;
16503 }
16504 goto done;
16505 }
16506 p->mark = _mark;
16507 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
16508 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' del_targets? ')'"));
16509 }
16510 { // '[' del_targets? ']'
16511 if (p->error_indicator) {
16512 D(p->level--);
16513 return NULL;
16514 }
16515 D(fprintf(stderr, "%*c> del_t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' del_targets? ']'"));
16516 Token * _literal;
16517 Token * _literal_1;
16518 void *a;
16519 if (
16520 (_literal = _PyPegen_expect_token(p, 9)) // token='['
16521 &&
16522 (a = del_targets_rule(p), 1) // del_targets?
16523 &&
16524 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
16525 )
16526 {
16527 D(fprintf(stderr, "%*c+ del_t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' del_targets? ']'"));
16528 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16529 if (_token == NULL) {
16530 D(p->level--);
16531 return NULL;
16532 }
16533 int _end_lineno = _token->end_lineno;
16534 UNUSED(_end_lineno); // Only used by EXTRA macro
16535 int _end_col_offset = _token->end_col_offset;
16536 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016537 _res = _PyAST_List ( a , Del , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016538 if (_res == NULL && PyErr_Occurred()) {
16539 p->error_indicator = 1;
16540 D(p->level--);
16541 return NULL;
16542 }
16543 goto done;
16544 }
16545 p->mark = _mark;
16546 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
16547 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' del_targets? ']'"));
16548 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016549 _res = NULL;
16550 done:
16551 D(p->level--);
16552 return _res;
16553}
16554
16555// targets: ','.target+ ','?
Pablo Galindoa5634c42020-09-16 19:42:00 +010016556static asdl_expr_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016557targets_rule(Parser *p)
16558{
16559 D(p->level++);
16560 if (p->error_indicator) {
16561 D(p->level--);
16562 return NULL;
16563 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010016564 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016565 int _mark = p->mark;
16566 { // ','.target+ ','?
16567 if (p->error_indicator) {
16568 D(p->level--);
16569 return NULL;
16570 }
16571 D(fprintf(stderr, "%*c> targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.target+ ','?"));
16572 void *_opt_var;
16573 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +010016574 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016575 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080016576 (a = (asdl_expr_seq*)_gather_140_rule(p)) // ','.target+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016577 &&
16578 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
16579 )
16580 {
16581 D(fprintf(stderr, "%*c+ targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.target+ ','?"));
16582 _res = a;
16583 if (_res == NULL && PyErr_Occurred()) {
16584 p->error_indicator = 1;
16585 D(p->level--);
16586 return NULL;
16587 }
16588 goto done;
16589 }
16590 p->mark = _mark;
16591 D(fprintf(stderr, "%*c%s targets[%d-%d]: %s failed!\n", p->level, ' ',
16592 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.target+ ','?"));
16593 }
16594 _res = NULL;
16595 done:
16596 D(p->level--);
16597 return _res;
16598}
16599
16600// target:
16601// | t_primary '.' NAME !t_lookahead
16602// | t_primary '[' slices ']' !t_lookahead
16603// | t_atom
16604static expr_ty
16605target_rule(Parser *p)
16606{
16607 D(p->level++);
16608 if (p->error_indicator) {
16609 D(p->level--);
16610 return NULL;
16611 }
16612 expr_ty _res = NULL;
16613 if (_PyPegen_is_memoized(p, target_type, &_res)) {
16614 D(p->level--);
16615 return _res;
16616 }
16617 int _mark = p->mark;
16618 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
16619 p->error_indicator = 1;
16620 D(p->level--);
16621 return NULL;
16622 }
16623 int _start_lineno = p->tokens[_mark]->lineno;
16624 UNUSED(_start_lineno); // Only used by EXTRA macro
16625 int _start_col_offset = p->tokens[_mark]->col_offset;
16626 UNUSED(_start_col_offset); // Only used by EXTRA macro
16627 { // t_primary '.' NAME !t_lookahead
16628 if (p->error_indicator) {
16629 D(p->level--);
16630 return NULL;
16631 }
16632 D(fprintf(stderr, "%*c> target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
16633 Token * _literal;
16634 expr_ty a;
16635 expr_ty b;
16636 if (
16637 (a = t_primary_rule(p)) // t_primary
16638 &&
16639 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
16640 &&
16641 (b = _PyPegen_name_token(p)) // NAME
16642 &&
16643 _PyPegen_lookahead(0, t_lookahead_rule, p)
16644 )
16645 {
16646 D(fprintf(stderr, "%*c+ target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
16647 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16648 if (_token == NULL) {
16649 D(p->level--);
16650 return NULL;
16651 }
16652 int _end_lineno = _token->end_lineno;
16653 UNUSED(_end_lineno); // Only used by EXTRA macro
16654 int _end_col_offset = _token->end_col_offset;
16655 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016656 _res = _PyAST_Attribute ( a , b -> v . Name . id , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016657 if (_res == NULL && PyErr_Occurred()) {
16658 p->error_indicator = 1;
16659 D(p->level--);
16660 return NULL;
16661 }
16662 goto done;
16663 }
16664 p->mark = _mark;
16665 D(fprintf(stderr, "%*c%s target[%d-%d]: %s failed!\n", p->level, ' ',
16666 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
16667 }
16668 { // t_primary '[' slices ']' !t_lookahead
16669 if (p->error_indicator) {
16670 D(p->level--);
16671 return NULL;
16672 }
16673 D(fprintf(stderr, "%*c> target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
16674 Token * _literal;
16675 Token * _literal_1;
16676 expr_ty a;
16677 expr_ty b;
16678 if (
16679 (a = t_primary_rule(p)) // t_primary
16680 &&
16681 (_literal = _PyPegen_expect_token(p, 9)) // token='['
16682 &&
16683 (b = slices_rule(p)) // slices
16684 &&
16685 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
16686 &&
16687 _PyPegen_lookahead(0, t_lookahead_rule, p)
16688 )
16689 {
16690 D(fprintf(stderr, "%*c+ target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
16691 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16692 if (_token == NULL) {
16693 D(p->level--);
16694 return NULL;
16695 }
16696 int _end_lineno = _token->end_lineno;
16697 UNUSED(_end_lineno); // Only used by EXTRA macro
16698 int _end_col_offset = _token->end_col_offset;
16699 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016700 _res = _PyAST_Subscript ( a , b , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016701 if (_res == NULL && PyErr_Occurred()) {
16702 p->error_indicator = 1;
16703 D(p->level--);
16704 return NULL;
16705 }
16706 goto done;
16707 }
16708 p->mark = _mark;
16709 D(fprintf(stderr, "%*c%s target[%d-%d]: %s failed!\n", p->level, ' ',
16710 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
16711 }
16712 { // t_atom
16713 if (p->error_indicator) {
16714 D(p->level--);
16715 return NULL;
16716 }
16717 D(fprintf(stderr, "%*c> target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_atom"));
16718 expr_ty t_atom_var;
16719 if (
16720 (t_atom_var = t_atom_rule(p)) // t_atom
16721 )
16722 {
16723 D(fprintf(stderr, "%*c+ target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_atom"));
16724 _res = t_atom_var;
16725 goto done;
16726 }
16727 p->mark = _mark;
16728 D(fprintf(stderr, "%*c%s target[%d-%d]: %s failed!\n", p->level, ' ',
16729 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_atom"));
16730 }
16731 _res = NULL;
16732 done:
16733 _PyPegen_insert_memo(p, _mark, target_type, _res);
16734 D(p->level--);
16735 return _res;
16736}
16737
16738// Left-recursive
16739// t_primary:
16740// | t_primary '.' NAME &t_lookahead
16741// | t_primary '[' slices ']' &t_lookahead
16742// | t_primary genexp &t_lookahead
16743// | t_primary '(' arguments? ')' &t_lookahead
16744// | atom &t_lookahead
16745static expr_ty t_primary_raw(Parser *);
16746static expr_ty
16747t_primary_rule(Parser *p)
16748{
16749 D(p->level++);
16750 expr_ty _res = NULL;
16751 if (_PyPegen_is_memoized(p, t_primary_type, &_res)) {
16752 D(p->level--);
16753 return _res;
16754 }
16755 int _mark = p->mark;
16756 int _resmark = p->mark;
16757 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080016758 int tmpvar_9 = _PyPegen_update_memo(p, _mark, t_primary_type, _res);
16759 if (tmpvar_9) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016760 D(p->level--);
16761 return _res;
16762 }
16763 p->mark = _mark;
16764 void *_raw = t_primary_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020016765 if (p->error_indicator)
16766 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016767 if (_raw == NULL || p->mark <= _resmark)
16768 break;
16769 _resmark = p->mark;
16770 _res = _raw;
16771 }
16772 p->mark = _resmark;
16773 D(p->level--);
16774 return _res;
16775}
16776static expr_ty
16777t_primary_raw(Parser *p)
16778{
16779 D(p->level++);
16780 if (p->error_indicator) {
16781 D(p->level--);
16782 return NULL;
16783 }
16784 expr_ty _res = NULL;
16785 int _mark = p->mark;
16786 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
16787 p->error_indicator = 1;
16788 D(p->level--);
16789 return NULL;
16790 }
16791 int _start_lineno = p->tokens[_mark]->lineno;
16792 UNUSED(_start_lineno); // Only used by EXTRA macro
16793 int _start_col_offset = p->tokens[_mark]->col_offset;
16794 UNUSED(_start_col_offset); // Only used by EXTRA macro
16795 { // t_primary '.' NAME &t_lookahead
16796 if (p->error_indicator) {
16797 D(p->level--);
16798 return NULL;
16799 }
16800 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME &t_lookahead"));
16801 Token * _literal;
16802 expr_ty a;
16803 expr_ty b;
16804 if (
16805 (a = t_primary_rule(p)) // t_primary
16806 &&
16807 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
16808 &&
16809 (b = _PyPegen_name_token(p)) // NAME
16810 &&
16811 _PyPegen_lookahead(1, t_lookahead_rule, p)
16812 )
16813 {
16814 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME &t_lookahead"));
16815 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16816 if (_token == NULL) {
16817 D(p->level--);
16818 return NULL;
16819 }
16820 int _end_lineno = _token->end_lineno;
16821 UNUSED(_end_lineno); // Only used by EXTRA macro
16822 int _end_col_offset = _token->end_col_offset;
16823 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016824 _res = _PyAST_Attribute ( a , b -> v . Name . id , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016825 if (_res == NULL && PyErr_Occurred()) {
16826 p->error_indicator = 1;
16827 D(p->level--);
16828 return NULL;
16829 }
16830 goto done;
16831 }
16832 p->mark = _mark;
16833 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
16834 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME &t_lookahead"));
16835 }
16836 { // t_primary '[' slices ']' &t_lookahead
16837 if (p->error_indicator) {
16838 D(p->level--);
16839 return NULL;
16840 }
16841 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' &t_lookahead"));
16842 Token * _literal;
16843 Token * _literal_1;
16844 expr_ty a;
16845 expr_ty b;
16846 if (
16847 (a = t_primary_rule(p)) // t_primary
16848 &&
16849 (_literal = _PyPegen_expect_token(p, 9)) // token='['
16850 &&
16851 (b = slices_rule(p)) // slices
16852 &&
16853 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
16854 &&
16855 _PyPegen_lookahead(1, t_lookahead_rule, p)
16856 )
16857 {
16858 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' &t_lookahead"));
16859 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16860 if (_token == NULL) {
16861 D(p->level--);
16862 return NULL;
16863 }
16864 int _end_lineno = _token->end_lineno;
16865 UNUSED(_end_lineno); // Only used by EXTRA macro
16866 int _end_col_offset = _token->end_col_offset;
16867 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016868 _res = _PyAST_Subscript ( a , b , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016869 if (_res == NULL && PyErr_Occurred()) {
16870 p->error_indicator = 1;
16871 D(p->level--);
16872 return NULL;
16873 }
16874 goto done;
16875 }
16876 p->mark = _mark;
16877 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
16878 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' &t_lookahead"));
16879 }
16880 { // t_primary genexp &t_lookahead
16881 if (p->error_indicator) {
16882 D(p->level--);
16883 return NULL;
16884 }
16885 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary genexp &t_lookahead"));
16886 expr_ty a;
16887 expr_ty b;
16888 if (
16889 (a = t_primary_rule(p)) // t_primary
16890 &&
16891 (b = genexp_rule(p)) // genexp
16892 &&
16893 _PyPegen_lookahead(1, t_lookahead_rule, p)
16894 )
16895 {
16896 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary genexp &t_lookahead"));
16897 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16898 if (_token == NULL) {
16899 D(p->level--);
16900 return NULL;
16901 }
16902 int _end_lineno = _token->end_lineno;
16903 UNUSED(_end_lineno); // Only used by EXTRA macro
16904 int _end_col_offset = _token->end_col_offset;
16905 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016906 _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 +010016907 if (_res == NULL && PyErr_Occurred()) {
16908 p->error_indicator = 1;
16909 D(p->level--);
16910 return NULL;
16911 }
16912 goto done;
16913 }
16914 p->mark = _mark;
16915 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
16916 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary genexp &t_lookahead"));
16917 }
16918 { // t_primary '(' arguments? ')' &t_lookahead
16919 if (p->error_indicator) {
16920 D(p->level--);
16921 return NULL;
16922 }
16923 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '(' arguments? ')' &t_lookahead"));
16924 Token * _literal;
16925 Token * _literal_1;
16926 expr_ty a;
16927 void *b;
16928 if (
16929 (a = t_primary_rule(p)) // t_primary
16930 &&
16931 (_literal = _PyPegen_expect_token(p, 7)) // token='('
16932 &&
16933 (b = arguments_rule(p), 1) // arguments?
16934 &&
16935 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
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, "t_primary '(' arguments? ')' &t_lookahead"));
16941 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16942 if (_token == NULL) {
16943 D(p->level--);
16944 return NULL;
16945 }
16946 int _end_lineno = _token->end_lineno;
16947 UNUSED(_end_lineno); // Only used by EXTRA macro
16948 int _end_col_offset = _token->end_col_offset;
16949 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016950 _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 +010016951 if (_res == NULL && PyErr_Occurred()) {
16952 p->error_indicator = 1;
16953 D(p->level--);
16954 return NULL;
16955 }
16956 goto done;
16957 }
16958 p->mark = _mark;
16959 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
16960 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '(' arguments? ')' &t_lookahead"));
16961 }
16962 { // atom &t_lookahead
16963 if (p->error_indicator) {
16964 D(p->level--);
16965 return NULL;
16966 }
16967 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "atom &t_lookahead"));
16968 expr_ty a;
16969 if (
16970 (a = atom_rule(p)) // atom
16971 &&
16972 _PyPegen_lookahead(1, t_lookahead_rule, p)
16973 )
16974 {
16975 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "atom &t_lookahead"));
16976 _res = a;
16977 if (_res == NULL && PyErr_Occurred()) {
16978 p->error_indicator = 1;
16979 D(p->level--);
16980 return NULL;
16981 }
16982 goto done;
16983 }
16984 p->mark = _mark;
16985 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
16986 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "atom &t_lookahead"));
16987 }
16988 _res = NULL;
16989 done:
16990 D(p->level--);
16991 return _res;
16992}
16993
16994// t_lookahead: '(' | '[' | '.'
16995static void *
16996t_lookahead_rule(Parser *p)
16997{
16998 D(p->level++);
16999 if (p->error_indicator) {
17000 D(p->level--);
17001 return NULL;
17002 }
17003 void * _res = NULL;
17004 int _mark = p->mark;
17005 { // '('
17006 if (p->error_indicator) {
17007 D(p->level--);
17008 return NULL;
17009 }
17010 D(fprintf(stderr, "%*c> t_lookahead[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('"));
17011 Token * _literal;
17012 if (
17013 (_literal = _PyPegen_expect_token(p, 7)) // token='('
17014 )
17015 {
17016 D(fprintf(stderr, "%*c+ t_lookahead[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('"));
17017 _res = _literal;
17018 goto done;
17019 }
17020 p->mark = _mark;
17021 D(fprintf(stderr, "%*c%s t_lookahead[%d-%d]: %s failed!\n", p->level, ' ',
17022 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('"));
17023 }
17024 { // '['
17025 if (p->error_indicator) {
17026 D(p->level--);
17027 return NULL;
17028 }
17029 D(fprintf(stderr, "%*c> t_lookahead[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['"));
17030 Token * _literal;
17031 if (
17032 (_literal = _PyPegen_expect_token(p, 9)) // token='['
17033 )
17034 {
17035 D(fprintf(stderr, "%*c+ t_lookahead[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['"));
17036 _res = _literal;
17037 goto done;
17038 }
17039 p->mark = _mark;
17040 D(fprintf(stderr, "%*c%s t_lookahead[%d-%d]: %s failed!\n", p->level, ' ',
17041 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['"));
17042 }
17043 { // '.'
17044 if (p->error_indicator) {
17045 D(p->level--);
17046 return NULL;
17047 }
17048 D(fprintf(stderr, "%*c> t_lookahead[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
17049 Token * _literal;
17050 if (
17051 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
17052 )
17053 {
17054 D(fprintf(stderr, "%*c+ t_lookahead[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
17055 _res = _literal;
17056 goto done;
17057 }
17058 p->mark = _mark;
17059 D(fprintf(stderr, "%*c%s t_lookahead[%d-%d]: %s failed!\n", p->level, ' ',
17060 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
17061 }
17062 _res = NULL;
17063 done:
17064 D(p->level--);
17065 return _res;
17066}
17067
17068// t_atom: NAME | '(' target ')' | '(' targets? ')' | '[' targets? ']'
17069static expr_ty
17070t_atom_rule(Parser *p)
17071{
17072 D(p->level++);
17073 if (p->error_indicator) {
17074 D(p->level--);
17075 return NULL;
17076 }
17077 expr_ty _res = NULL;
17078 int _mark = p->mark;
17079 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
17080 p->error_indicator = 1;
17081 D(p->level--);
17082 return NULL;
17083 }
17084 int _start_lineno = p->tokens[_mark]->lineno;
17085 UNUSED(_start_lineno); // Only used by EXTRA macro
17086 int _start_col_offset = p->tokens[_mark]->col_offset;
17087 UNUSED(_start_col_offset); // Only used by EXTRA macro
17088 { // NAME
17089 if (p->error_indicator) {
17090 D(p->level--);
17091 return NULL;
17092 }
17093 D(fprintf(stderr, "%*c> t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
17094 expr_ty a;
17095 if (
17096 (a = _PyPegen_name_token(p)) // NAME
17097 )
17098 {
17099 D(fprintf(stderr, "%*c+ t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
17100 _res = _PyPegen_set_expr_context ( p , a , Store );
17101 if (_res == NULL && PyErr_Occurred()) {
17102 p->error_indicator = 1;
17103 D(p->level--);
17104 return NULL;
17105 }
17106 goto done;
17107 }
17108 p->mark = _mark;
17109 D(fprintf(stderr, "%*c%s t_atom[%d-%d]: %s failed!\n", p->level, ' ',
17110 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
17111 }
17112 { // '(' target ')'
17113 if (p->error_indicator) {
17114 D(p->level--);
17115 return NULL;
17116 }
17117 D(fprintf(stderr, "%*c> t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' target ')'"));
17118 Token * _literal;
17119 Token * _literal_1;
17120 expr_ty a;
17121 if (
17122 (_literal = _PyPegen_expect_token(p, 7)) // token='('
17123 &&
17124 (a = target_rule(p)) // target
17125 &&
17126 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
17127 )
17128 {
17129 D(fprintf(stderr, "%*c+ t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' target ')'"));
17130 _res = _PyPegen_set_expr_context ( p , a , Store );
17131 if (_res == NULL && PyErr_Occurred()) {
17132 p->error_indicator = 1;
17133 D(p->level--);
17134 return NULL;
17135 }
17136 goto done;
17137 }
17138 p->mark = _mark;
17139 D(fprintf(stderr, "%*c%s t_atom[%d-%d]: %s failed!\n", p->level, ' ',
17140 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' target ')'"));
17141 }
17142 { // '(' targets? ')'
17143 if (p->error_indicator) {
17144 D(p->level--);
17145 return NULL;
17146 }
17147 D(fprintf(stderr, "%*c> t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' targets? ')'"));
17148 Token * _literal;
17149 Token * _literal_1;
17150 void *b;
17151 if (
17152 (_literal = _PyPegen_expect_token(p, 7)) // token='('
17153 &&
17154 (b = targets_rule(p), 1) // targets?
17155 &&
17156 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
17157 )
17158 {
17159 D(fprintf(stderr, "%*c+ t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' targets? ')'"));
17160 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17161 if (_token == NULL) {
17162 D(p->level--);
17163 return NULL;
17164 }
17165 int _end_lineno = _token->end_lineno;
17166 UNUSED(_end_lineno); // Only used by EXTRA macro
17167 int _end_col_offset = _token->end_col_offset;
17168 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017169 _res = _PyAST_Tuple ( b , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017170 if (_res == NULL && PyErr_Occurred()) {
17171 p->error_indicator = 1;
17172 D(p->level--);
17173 return NULL;
17174 }
17175 goto done;
17176 }
17177 p->mark = _mark;
17178 D(fprintf(stderr, "%*c%s t_atom[%d-%d]: %s failed!\n", p->level, ' ',
17179 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' targets? ')'"));
17180 }
17181 { // '[' targets? ']'
17182 if (p->error_indicator) {
17183 D(p->level--);
17184 return NULL;
17185 }
17186 D(fprintf(stderr, "%*c> t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' targets? ']'"));
17187 Token * _literal;
17188 Token * _literal_1;
17189 void *b;
17190 if (
17191 (_literal = _PyPegen_expect_token(p, 9)) // token='['
17192 &&
17193 (b = targets_rule(p), 1) // targets?
17194 &&
17195 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
17196 )
17197 {
17198 D(fprintf(stderr, "%*c+ t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' targets? ']'"));
17199 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17200 if (_token == NULL) {
17201 D(p->level--);
17202 return NULL;
17203 }
17204 int _end_lineno = _token->end_lineno;
17205 UNUSED(_end_lineno); // Only used by EXTRA macro
17206 int _end_col_offset = _token->end_col_offset;
17207 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017208 _res = _PyAST_List ( b , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017209 if (_res == NULL && PyErr_Occurred()) {
17210 p->error_indicator = 1;
17211 D(p->level--);
17212 return NULL;
17213 }
17214 goto done;
17215 }
17216 p->mark = _mark;
17217 D(fprintf(stderr, "%*c%s t_atom[%d-%d]: %s failed!\n", p->level, ' ',
17218 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' targets? ']'"));
17219 }
17220 _res = NULL;
17221 done:
17222 D(p->level--);
17223 return _res;
17224}
17225
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017226// invalid_arguments:
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017227// | args ',' '*'
17228// | expression for_if_clauses ',' [args | expression for_if_clauses]
17229// | args for_if_clauses
17230// | args ',' expression for_if_clauses
17231// | args ',' args
17232static void *
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017233invalid_arguments_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017234{
17235 D(p->level++);
17236 if (p->error_indicator) {
17237 D(p->level--);
17238 return NULL;
17239 }
17240 void * _res = NULL;
17241 int _mark = p->mark;
17242 { // args ',' '*'
17243 if (p->error_indicator) {
17244 D(p->level--);
17245 return NULL;
17246 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017247 D(fprintf(stderr, "%*c> invalid_arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args ',' '*'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017248 Token * _literal;
17249 Token * _literal_1;
17250 expr_ty args_var;
17251 if (
17252 (args_var = args_rule(p)) // args
17253 &&
17254 (_literal = _PyPegen_expect_token(p, 12)) // token=','
17255 &&
17256 (_literal_1 = _PyPegen_expect_token(p, 16)) // token='*'
17257 )
17258 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017259 D(fprintf(stderr, "%*c+ invalid_arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args ',' '*'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017260 _res = RAISE_SYNTAX_ERROR ( "iterable argument unpacking follows keyword argument unpacking" );
17261 if (_res == NULL && PyErr_Occurred()) {
17262 p->error_indicator = 1;
17263 D(p->level--);
17264 return NULL;
17265 }
17266 goto done;
17267 }
17268 p->mark = _mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017269 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017270 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ',' '*'"));
17271 }
17272 { // expression for_if_clauses ',' [args | expression for_if_clauses]
17273 if (p->error_indicator) {
17274 D(p->level--);
17275 return NULL;
17276 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017277 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 +010017278 Token * _literal;
17279 void *_opt_var;
17280 UNUSED(_opt_var); // Silence compiler warnings
17281 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010017282 asdl_comprehension_seq* for_if_clauses_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017283 if (
17284 (a = expression_rule(p)) // expression
17285 &&
17286 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
17287 &&
17288 (_literal = _PyPegen_expect_token(p, 12)) // token=','
17289 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080017290 (_opt_var = _tmp_142_rule(p), 1) // [args | expression for_if_clauses]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017291 )
17292 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017293 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 +010017294 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "Generator expression must be parenthesized" );
17295 if (_res == NULL && PyErr_Occurred()) {
17296 p->error_indicator = 1;
17297 D(p->level--);
17298 return NULL;
17299 }
17300 goto done;
17301 }
17302 p->mark = _mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017303 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017304 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression for_if_clauses ',' [args | expression for_if_clauses]"));
17305 }
17306 { // args for_if_clauses
17307 if (p->error_indicator) {
17308 D(p->level--);
17309 return NULL;
17310 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017311 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 +010017312 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010017313 asdl_comprehension_seq* for_if_clauses_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017314 if (
17315 (a = args_rule(p)) // args
17316 &&
17317 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
17318 )
17319 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017320 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 +010017321 _res = _PyPegen_nonparen_genexp_in_call ( p , a );
17322 if (_res == NULL && PyErr_Occurred()) {
17323 p->error_indicator = 1;
17324 D(p->level--);
17325 return NULL;
17326 }
17327 goto done;
17328 }
17329 p->mark = _mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017330 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017331 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args for_if_clauses"));
17332 }
17333 { // args ',' expression for_if_clauses
17334 if (p->error_indicator) {
17335 D(p->level--);
17336 return NULL;
17337 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017338 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 +010017339 Token * _literal;
17340 expr_ty a;
17341 expr_ty args_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +010017342 asdl_comprehension_seq* for_if_clauses_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017343 if (
17344 (args_var = args_rule(p)) // args
17345 &&
17346 (_literal = _PyPegen_expect_token(p, 12)) // token=','
17347 &&
17348 (a = expression_rule(p)) // expression
17349 &&
17350 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
17351 )
17352 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017353 D(fprintf(stderr, "%*c+ invalid_arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args ',' expression for_if_clauses"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017354 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "Generator expression must be parenthesized" );
17355 if (_res == NULL && PyErr_Occurred()) {
17356 p->error_indicator = 1;
17357 D(p->level--);
17358 return NULL;
17359 }
17360 goto done;
17361 }
17362 p->mark = _mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017363 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017364 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ',' expression for_if_clauses"));
17365 }
17366 { // args ',' args
17367 if (p->error_indicator) {
17368 D(p->level--);
17369 return NULL;
17370 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017371 D(fprintf(stderr, "%*c> invalid_arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args ',' args"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017372 Token * _literal;
17373 expr_ty a;
17374 expr_ty args_var;
17375 if (
17376 (a = args_rule(p)) // args
17377 &&
17378 (_literal = _PyPegen_expect_token(p, 12)) // token=','
17379 &&
17380 (args_var = args_rule(p)) // args
17381 )
17382 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017383 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 +010017384 _res = _PyPegen_arguments_parsing_error ( p , a );
17385 if (_res == NULL && PyErr_Occurred()) {
17386 p->error_indicator = 1;
17387 D(p->level--);
17388 return NULL;
17389 }
17390 goto done;
17391 }
17392 p->mark = _mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017393 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017394 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ',' args"));
17395 }
17396 _res = NULL;
17397 done:
17398 D(p->level--);
17399 return _res;
17400}
17401
17402// invalid_kwarg: expression '='
17403static void *
17404invalid_kwarg_rule(Parser *p)
17405{
17406 D(p->level++);
17407 if (p->error_indicator) {
17408 D(p->level--);
17409 return NULL;
17410 }
17411 void * _res = NULL;
17412 int _mark = p->mark;
17413 { // expression '='
17414 if (p->error_indicator) {
17415 D(p->level--);
17416 return NULL;
17417 }
17418 D(fprintf(stderr, "%*c> invalid_kwarg[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression '='"));
Pablo Galindo43c4fb62020-12-13 16:46:48 +000017419 Token * a;
17420 expr_ty expression_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017421 if (
Pablo Galindo43c4fb62020-12-13 16:46:48 +000017422 (expression_var = expression_rule(p)) // expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017423 &&
Pablo Galindo43c4fb62020-12-13 16:46:48 +000017424 (a = _PyPegen_expect_token(p, 22)) // token='='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017425 )
17426 {
17427 D(fprintf(stderr, "%*c+ invalid_kwarg[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression '='"));
17428 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "expression cannot contain assignment, perhaps you meant \"==\"?" );
17429 if (_res == NULL && PyErr_Occurred()) {
17430 p->error_indicator = 1;
17431 D(p->level--);
17432 return NULL;
17433 }
17434 goto done;
17435 }
17436 p->mark = _mark;
17437 D(fprintf(stderr, "%*c%s invalid_kwarg[%d-%d]: %s failed!\n", p->level, ' ',
17438 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression '='"));
17439 }
17440 _res = NULL;
17441 done:
17442 D(p->level--);
17443 return _res;
17444}
17445
Pablo Galindob86ed8e2021-04-12 16:59:30 +010017446// invalid_named_expression:
17447// | expression ':=' expression
17448// | NAME '=' bitwise_or !('=' | ':=' | ',')
17449// | !(list | tuple | genexp | 'True' | 'None' | 'False') bitwise_or '=' bitwise_or !('=' | ':=' | ',')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017450static void *
17451invalid_named_expression_rule(Parser *p)
17452{
17453 D(p->level++);
17454 if (p->error_indicator) {
17455 D(p->level--);
17456 return NULL;
17457 }
17458 void * _res = NULL;
17459 int _mark = p->mark;
17460 { // expression ':=' expression
17461 if (p->error_indicator) {
17462 D(p->level--);
17463 return NULL;
17464 }
17465 D(fprintf(stderr, "%*c> invalid_named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':=' expression"));
17466 Token * _literal;
17467 expr_ty a;
17468 expr_ty expression_var;
17469 if (
17470 (a = expression_rule(p)) // expression
17471 &&
17472 (_literal = _PyPegen_expect_token(p, 53)) // token=':='
17473 &&
17474 (expression_var = expression_rule(p)) // expression
17475 )
17476 {
17477 D(fprintf(stderr, "%*c+ invalid_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':=' expression"));
17478 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "cannot use assignment expressions with %s" , _PyPegen_get_expr_name ( a ) );
17479 if (_res == NULL && PyErr_Occurred()) {
17480 p->error_indicator = 1;
17481 D(p->level--);
17482 return NULL;
17483 }
17484 goto done;
17485 }
17486 p->mark = _mark;
17487 D(fprintf(stderr, "%*c%s invalid_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
17488 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':=' expression"));
17489 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010017490 { // NAME '=' bitwise_or !('=' | ':=' | ',')
17491 if (p->error_indicator) {
17492 D(p->level--);
17493 return NULL;
17494 }
17495 D(fprintf(stderr, "%*c> invalid_named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '=' bitwise_or !('=' | ':=' | ',')"));
17496 expr_ty a;
17497 Token * b;
17498 expr_ty bitwise_or_var;
17499 if (
17500 (a = _PyPegen_name_token(p)) // NAME
17501 &&
17502 (b = _PyPegen_expect_token(p, 22)) // token='='
17503 &&
17504 (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or
17505 &&
17506 _PyPegen_lookahead(0, _tmp_143_rule, p)
17507 )
17508 {
17509 D(fprintf(stderr, "%*c+ invalid_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '=' bitwise_or !('=' | ':=' | ',')"));
17510 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( b , "invalid syntax. Maybe you meant '==' or ':=' instead of '='?" );
17511 if (_res == NULL && PyErr_Occurred()) {
17512 p->error_indicator = 1;
17513 D(p->level--);
17514 return NULL;
17515 }
17516 goto done;
17517 }
17518 p->mark = _mark;
17519 D(fprintf(stderr, "%*c%s invalid_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
17520 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' bitwise_or !('=' | ':=' | ',')"));
17521 }
17522 { // !(list | tuple | genexp | 'True' | 'None' | 'False') bitwise_or '=' bitwise_or !('=' | ':=' | ',')
17523 if (p->error_indicator) {
17524 D(p->level--);
17525 return NULL;
17526 }
17527 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 !('=' | ':=' | ',')"));
17528 expr_ty a;
17529 Token * b;
17530 expr_ty bitwise_or_var;
17531 if (
17532 _PyPegen_lookahead(0, _tmp_144_rule, p)
17533 &&
17534 (a = bitwise_or_rule(p)) // bitwise_or
17535 &&
17536 (b = _PyPegen_expect_token(p, 22)) // token='='
17537 &&
17538 (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or
17539 &&
17540 _PyPegen_lookahead(0, _tmp_145_rule, p)
17541 )
17542 {
17543 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 !('=' | ':=' | ',')"));
17544 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( b , "cannot assign to %s here. Maybe you meant '==' instead of '='?" , _PyPegen_get_expr_name ( a ) );
17545 if (_res == NULL && PyErr_Occurred()) {
17546 p->error_indicator = 1;
17547 D(p->level--);
17548 return NULL;
17549 }
17550 goto done;
17551 }
17552 p->mark = _mark;
17553 D(fprintf(stderr, "%*c%s invalid_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
17554 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "!(list | tuple | genexp | 'True' | 'None' | 'False') bitwise_or '=' bitwise_or !('=' | ':=' | ',')"));
17555 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017556 _res = NULL;
17557 done:
17558 D(p->level--);
17559 return _res;
17560}
17561
17562// invalid_assignment:
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030017563// | invalid_ann_assign_target ':' expression
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030017564// | star_named_expression ',' star_named_expressions* ':' expression
17565// | expression ':' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017566// | ((star_targets '='))* star_expressions '='
17567// | ((star_targets '='))* yield_expr '='
17568// | star_expressions augassign (yield_expr | star_expressions)
17569static void *
17570invalid_assignment_rule(Parser *p)
17571{
17572 D(p->level++);
17573 if (p->error_indicator) {
17574 D(p->level--);
17575 return NULL;
17576 }
17577 void * _res = NULL;
17578 int _mark = p->mark;
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030017579 { // invalid_ann_assign_target ':' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017580 if (p->error_indicator) {
17581 D(p->level--);
17582 return NULL;
17583 }
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030017584 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 +010017585 Token * _literal;
17586 expr_ty a;
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030017587 expr_ty expression_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017588 if (
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030017589 (a = invalid_ann_assign_target_rule(p)) // invalid_ann_assign_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017590 &&
17591 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030017592 &&
17593 (expression_var = expression_rule(p)) // expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017594 )
17595 {
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030017596 D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_ann_assign_target ':' expression"));
17597 _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 +010017598 if (_res == NULL && PyErr_Occurred()) {
17599 p->error_indicator = 1;
17600 D(p->level--);
17601 return NULL;
17602 }
17603 goto done;
17604 }
17605 p->mark = _mark;
17606 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030017607 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_ann_assign_target ':' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017608 }
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030017609 { // star_named_expression ',' star_named_expressions* ':' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017610 if (p->error_indicator) {
17611 D(p->level--);
17612 return NULL;
17613 }
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030017614 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 +010017615 Token * _literal;
17616 Token * _literal_1;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010017617 asdl_seq * _loop0_146_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017618 expr_ty a;
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030017619 expr_ty expression_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017620 if (
17621 (a = star_named_expression_rule(p)) // star_named_expression
17622 &&
17623 (_literal = _PyPegen_expect_token(p, 12)) // token=','
17624 &&
Pablo Galindob86ed8e2021-04-12 16:59:30 +010017625 (_loop0_146_var = _loop0_146_rule(p)) // star_named_expressions*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017626 &&
17627 (_literal_1 = _PyPegen_expect_token(p, 11)) // token=':'
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030017628 &&
17629 (expression_var = expression_rule(p)) // expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017630 )
17631 {
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030017632 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 +010017633 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "only single target (not tuple) can be annotated" );
17634 if (_res == NULL && PyErr_Occurred()) {
17635 p->error_indicator = 1;
17636 D(p->level--);
17637 return NULL;
17638 }
17639 goto done;
17640 }
17641 p->mark = _mark;
17642 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030017643 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression ',' star_named_expressions* ':' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017644 }
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030017645 { // expression ':' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017646 if (p->error_indicator) {
17647 D(p->level--);
17648 return NULL;
17649 }
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030017650 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017651 Token * _literal;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017652 expr_ty a;
17653 expr_ty expression_var;
17654 if (
17655 (a = expression_rule(p)) // expression
17656 &&
17657 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
17658 &&
17659 (expression_var = expression_rule(p)) // expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017660 )
17661 {
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030017662 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 +010017663 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "illegal target for annotation" );
17664 if (_res == NULL && PyErr_Occurred()) {
17665 p->error_indicator = 1;
17666 D(p->level--);
17667 return NULL;
17668 }
17669 goto done;
17670 }
17671 p->mark = _mark;
17672 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030017673 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017674 }
17675 { // ((star_targets '='))* star_expressions '='
17676 if (p->error_indicator) {
17677 D(p->level--);
17678 return NULL;
17679 }
17680 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "((star_targets '='))* star_expressions '='"));
17681 Token * _literal;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010017682 asdl_seq * _loop0_147_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017683 expr_ty a;
17684 if (
Pablo Galindob86ed8e2021-04-12 16:59:30 +010017685 (_loop0_147_var = _loop0_147_rule(p)) // ((star_targets '='))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017686 &&
17687 (a = star_expressions_rule(p)) // star_expressions
17688 &&
17689 (_literal = _PyPegen_expect_token(p, 22)) // token='='
17690 )
17691 {
17692 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 +030017693 _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( STAR_TARGETS , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017694 if (_res == NULL && PyErr_Occurred()) {
17695 p->error_indicator = 1;
17696 D(p->level--);
17697 return NULL;
17698 }
17699 goto done;
17700 }
17701 p->mark = _mark;
17702 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
17703 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "((star_targets '='))* star_expressions '='"));
17704 }
17705 { // ((star_targets '='))* yield_expr '='
17706 if (p->error_indicator) {
17707 D(p->level--);
17708 return NULL;
17709 }
17710 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "((star_targets '='))* yield_expr '='"));
17711 Token * _literal;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010017712 asdl_seq * _loop0_148_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017713 expr_ty a;
17714 if (
Pablo Galindob86ed8e2021-04-12 16:59:30 +010017715 (_loop0_148_var = _loop0_148_rule(p)) // ((star_targets '='))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017716 &&
17717 (a = yield_expr_rule(p)) // yield_expr
17718 &&
17719 (_literal = _PyPegen_expect_token(p, 22)) // token='='
17720 )
17721 {
17722 D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "((star_targets '='))* yield_expr '='"));
17723 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "assignment to yield expression not possible" );
17724 if (_res == NULL && PyErr_Occurred()) {
17725 p->error_indicator = 1;
17726 D(p->level--);
17727 return NULL;
17728 }
17729 goto done;
17730 }
17731 p->mark = _mark;
17732 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
17733 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "((star_targets '='))* yield_expr '='"));
17734 }
17735 { // star_expressions augassign (yield_expr | star_expressions)
17736 if (p->error_indicator) {
17737 D(p->level--);
17738 return NULL;
17739 }
17740 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 +010017741 void *_tmp_149_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017742 expr_ty a;
17743 AugOperator* augassign_var;
17744 if (
17745 (a = star_expressions_rule(p)) // star_expressions
17746 &&
17747 (augassign_var = augassign_rule(p)) // augassign
17748 &&
Pablo Galindob86ed8e2021-04-12 16:59:30 +010017749 (_tmp_149_var = _tmp_149_rule(p)) // yield_expr | star_expressions
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017750 )
17751 {
17752 D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions augassign (yield_expr | star_expressions)"));
17753 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "'%s' is an illegal expression for augmented assignment" , _PyPegen_get_expr_name ( a ) );
17754 if (_res == NULL && PyErr_Occurred()) {
17755 p->error_indicator = 1;
17756 D(p->level--);
17757 return NULL;
17758 }
17759 goto done;
17760 }
17761 p->mark = _mark;
17762 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
17763 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions augassign (yield_expr | star_expressions)"));
17764 }
17765 _res = NULL;
17766 done:
17767 D(p->level--);
17768 return _res;
17769}
17770
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030017771// invalid_ann_assign_target: list | tuple | '(' invalid_ann_assign_target ')'
17772static expr_ty
17773invalid_ann_assign_target_rule(Parser *p)
17774{
17775 D(p->level++);
17776 if (p->error_indicator) {
17777 D(p->level--);
17778 return NULL;
17779 }
17780 expr_ty _res = NULL;
17781 int _mark = p->mark;
17782 { // list
17783 if (p->error_indicator) {
17784 D(p->level--);
17785 return NULL;
17786 }
17787 D(fprintf(stderr, "%*c> invalid_ann_assign_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "list"));
17788 expr_ty list_var;
17789 if (
17790 (list_var = list_rule(p)) // list
17791 )
17792 {
17793 D(fprintf(stderr, "%*c+ invalid_ann_assign_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "list"));
17794 _res = list_var;
17795 goto done;
17796 }
17797 p->mark = _mark;
17798 D(fprintf(stderr, "%*c%s invalid_ann_assign_target[%d-%d]: %s failed!\n", p->level, ' ',
17799 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "list"));
17800 }
17801 { // tuple
17802 if (p->error_indicator) {
17803 D(p->level--);
17804 return NULL;
17805 }
17806 D(fprintf(stderr, "%*c> invalid_ann_assign_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "tuple"));
17807 expr_ty tuple_var;
17808 if (
17809 (tuple_var = tuple_rule(p)) // tuple
17810 )
17811 {
17812 D(fprintf(stderr, "%*c+ invalid_ann_assign_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "tuple"));
17813 _res = tuple_var;
17814 goto done;
17815 }
17816 p->mark = _mark;
17817 D(fprintf(stderr, "%*c%s invalid_ann_assign_target[%d-%d]: %s failed!\n", p->level, ' ',
17818 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "tuple"));
17819 }
17820 { // '(' invalid_ann_assign_target ')'
17821 if (p->error_indicator) {
17822 D(p->level--);
17823 return NULL;
17824 }
17825 D(fprintf(stderr, "%*c> invalid_ann_assign_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' invalid_ann_assign_target ')'"));
17826 Token * _literal;
17827 Token * _literal_1;
17828 expr_ty a;
17829 if (
17830 (_literal = _PyPegen_expect_token(p, 7)) // token='('
17831 &&
17832 (a = invalid_ann_assign_target_rule(p)) // invalid_ann_assign_target
17833 &&
17834 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
17835 )
17836 {
17837 D(fprintf(stderr, "%*c+ invalid_ann_assign_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' invalid_ann_assign_target ')'"));
17838 _res = a;
17839 if (_res == NULL && PyErr_Occurred()) {
17840 p->error_indicator = 1;
17841 D(p->level--);
17842 return NULL;
17843 }
17844 goto done;
17845 }
17846 p->mark = _mark;
17847 D(fprintf(stderr, "%*c%s invalid_ann_assign_target[%d-%d]: %s failed!\n", p->level, ' ',
17848 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' invalid_ann_assign_target ')'"));
17849 }
17850 _res = NULL;
17851 done:
17852 D(p->level--);
17853 return _res;
17854}
17855
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017856// invalid_del_stmt: 'del' star_expressions
17857static void *
17858invalid_del_stmt_rule(Parser *p)
17859{
17860 D(p->level++);
17861 if (p->error_indicator) {
17862 D(p->level--);
17863 return NULL;
17864 }
17865 void * _res = NULL;
17866 int _mark = p->mark;
17867 { // 'del' star_expressions
17868 if (p->error_indicator) {
17869 D(p->level--);
17870 return NULL;
17871 }
17872 D(fprintf(stderr, "%*c> invalid_del_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'del' star_expressions"));
17873 Token * _keyword;
17874 expr_ty a;
17875 if (
17876 (_keyword = _PyPegen_expect_token(p, 503)) // token='del'
17877 &&
17878 (a = star_expressions_rule(p)) // star_expressions
17879 )
17880 {
17881 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 +030017882 _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( DEL_TARGETS , a );
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017883 if (_res == NULL && PyErr_Occurred()) {
17884 p->error_indicator = 1;
17885 D(p->level--);
17886 return NULL;
17887 }
17888 goto done;
17889 }
17890 p->mark = _mark;
17891 D(fprintf(stderr, "%*c%s invalid_del_stmt[%d-%d]: %s failed!\n", p->level, ' ',
17892 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'del' star_expressions"));
17893 }
17894 _res = NULL;
17895 done:
17896 D(p->level--);
17897 return _res;
17898}
17899
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017900// invalid_block: NEWLINE !INDENT
17901static void *
17902invalid_block_rule(Parser *p)
17903{
17904 D(p->level++);
17905 if (p->error_indicator) {
17906 D(p->level--);
17907 return NULL;
17908 }
17909 void * _res = NULL;
17910 int _mark = p->mark;
17911 { // NEWLINE !INDENT
17912 if (p->error_indicator) {
17913 D(p->level--);
17914 return NULL;
17915 }
17916 D(fprintf(stderr, "%*c> invalid_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE !INDENT"));
17917 Token * newline_var;
17918 if (
17919 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
17920 &&
17921 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
17922 )
17923 {
17924 D(fprintf(stderr, "%*c+ invalid_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE !INDENT"));
17925 _res = RAISE_INDENTATION_ERROR ( "expected an indented block" );
17926 if (_res == NULL && PyErr_Occurred()) {
17927 p->error_indicator = 1;
17928 D(p->level--);
17929 return NULL;
17930 }
17931 goto done;
17932 }
17933 p->mark = _mark;
17934 D(fprintf(stderr, "%*c%s invalid_block[%d-%d]: %s failed!\n", p->level, ' ',
17935 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE !INDENT"));
17936 }
17937 _res = NULL;
17938 done:
17939 D(p->level--);
17940 return _res;
17941}
17942
Lysandros Nikolaou15acc4e2020-10-27 20:54:20 +020017943// Left-recursive
17944// invalid_primary: primary '{'
17945static void *
17946invalid_primary_rule(Parser *p)
17947{
17948 D(p->level++);
17949 if (p->error_indicator) {
17950 D(p->level--);
17951 return NULL;
17952 }
17953 void * _res = NULL;
17954 int _mark = p->mark;
17955 { // primary '{'
17956 if (p->error_indicator) {
17957 D(p->level--);
17958 return NULL;
17959 }
17960 D(fprintf(stderr, "%*c> invalid_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '{'"));
17961 Token * a;
17962 expr_ty primary_var;
17963 if (
17964 (primary_var = primary_rule(p)) // primary
17965 &&
17966 (a = _PyPegen_expect_token(p, 25)) // token='{'
17967 )
17968 {
17969 D(fprintf(stderr, "%*c+ invalid_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '{'"));
17970 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "invalid syntax" );
17971 if (_res == NULL && PyErr_Occurred()) {
17972 p->error_indicator = 1;
17973 D(p->level--);
17974 return NULL;
17975 }
17976 goto done;
17977 }
17978 p->mark = _mark;
17979 D(fprintf(stderr, "%*c%s invalid_primary[%d-%d]: %s failed!\n", p->level, ' ',
17980 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '{'"));
17981 }
17982 _res = NULL;
17983 done:
17984 D(p->level--);
17985 return _res;
17986}
17987
Pablo Galindo835f14f2021-01-31 22:52:56 +000017988// invalid_comprehension:
17989// | ('[' | '(' | '{') starred_expression for_if_clauses
Pablo Galindod4e6ed72021-02-03 23:29:26 +000017990// | ('[' | '{') star_named_expression ',' star_named_expressions? for_if_clauses
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017991static void *
17992invalid_comprehension_rule(Parser *p)
17993{
17994 D(p->level++);
17995 if (p->error_indicator) {
17996 D(p->level--);
17997 return NULL;
17998 }
17999 void * _res = NULL;
18000 int _mark = p->mark;
18001 { // ('[' | '(' | '{') starred_expression for_if_clauses
18002 if (p->error_indicator) {
18003 D(p->level--);
18004 return NULL;
18005 }
18006 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 +010018007 void *_tmp_150_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018008 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010018009 asdl_comprehension_seq* for_if_clauses_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018010 if (
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018011 (_tmp_150_var = _tmp_150_rule(p)) // '[' | '(' | '{'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018012 &&
18013 (a = starred_expression_rule(p)) // starred_expression
18014 &&
18015 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
18016 )
18017 {
18018 D(fprintf(stderr, "%*c+ invalid_comprehension[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "('[' | '(' | '{') starred_expression for_if_clauses"));
18019 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "iterable unpacking cannot be used in comprehension" );
18020 if (_res == NULL && PyErr_Occurred()) {
18021 p->error_indicator = 1;
18022 D(p->level--);
18023 return NULL;
18024 }
18025 goto done;
18026 }
18027 p->mark = _mark;
18028 D(fprintf(stderr, "%*c%s invalid_comprehension[%d-%d]: %s failed!\n", p->level, ' ',
18029 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('[' | '(' | '{') starred_expression for_if_clauses"));
18030 }
Pablo Galindod4e6ed72021-02-03 23:29:26 +000018031 { // ('[' | '{') star_named_expression ',' star_named_expressions? for_if_clauses
Pablo Galindo835f14f2021-01-31 22:52:56 +000018032 if (p->error_indicator) {
18033 D(p->level--);
18034 return NULL;
18035 }
Pablo Galindod4e6ed72021-02-03 23:29:26 +000018036 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 +000018037 Token * _literal;
18038 void *_opt_var;
18039 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018040 void *_tmp_151_var;
Pablo Galindo835f14f2021-01-31 22:52:56 +000018041 expr_ty a;
Pablo Galindod4e6ed72021-02-03 23:29:26 +000018042 asdl_comprehension_seq* for_if_clauses_var;
Pablo Galindo835f14f2021-01-31 22:52:56 +000018043 if (
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018044 (_tmp_151_var = _tmp_151_rule(p)) // '[' | '{'
Pablo Galindo835f14f2021-01-31 22:52:56 +000018045 &&
18046 (a = star_named_expression_rule(p)) // star_named_expression
18047 &&
18048 (_literal = _PyPegen_expect_token(p, 12)) // token=','
18049 &&
18050 (_opt_var = star_named_expressions_rule(p), 1) // star_named_expressions?
Pablo Galindod4e6ed72021-02-03 23:29:26 +000018051 &&
18052 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
Pablo Galindo835f14f2021-01-31 22:52:56 +000018053 )
18054 {
Pablo Galindod4e6ed72021-02-03 23:29:26 +000018055 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 +000018056 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "did you forget parentheses around the comprehension target?" );
18057 if (_res == NULL && PyErr_Occurred()) {
18058 p->error_indicator = 1;
18059 D(p->level--);
18060 return NULL;
18061 }
18062 goto done;
18063 }
18064 p->mark = _mark;
18065 D(fprintf(stderr, "%*c%s invalid_comprehension[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindod4e6ed72021-02-03 23:29:26 +000018066 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('[' | '{') star_named_expression ',' star_named_expressions? for_if_clauses"));
Pablo Galindo835f14f2021-01-31 22:52:56 +000018067 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018068 _res = NULL;
18069 done:
18070 D(p->level--);
18071 return _res;
18072}
18073
18074// invalid_dict_comprehension: '{' '**' bitwise_or for_if_clauses '}'
18075static void *
18076invalid_dict_comprehension_rule(Parser *p)
18077{
18078 D(p->level++);
18079 if (p->error_indicator) {
18080 D(p->level--);
18081 return NULL;
18082 }
18083 void * _res = NULL;
18084 int _mark = p->mark;
18085 { // '{' '**' bitwise_or for_if_clauses '}'
18086 if (p->error_indicator) {
18087 D(p->level--);
18088 return NULL;
18089 }
18090 D(fprintf(stderr, "%*c> invalid_dict_comprehension[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' '**' bitwise_or for_if_clauses '}'"));
18091 Token * _literal;
18092 Token * _literal_1;
18093 Token * a;
18094 expr_ty bitwise_or_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +010018095 asdl_comprehension_seq* for_if_clauses_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018096 if (
18097 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
18098 &&
18099 (a = _PyPegen_expect_token(p, 35)) // token='**'
18100 &&
18101 (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or
18102 &&
18103 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
18104 &&
18105 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
18106 )
18107 {
18108 D(fprintf(stderr, "%*c+ invalid_dict_comprehension[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' '**' bitwise_or for_if_clauses '}'"));
18109 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "dict unpacking cannot be used in dict comprehension" );
18110 if (_res == NULL && PyErr_Occurred()) {
18111 p->error_indicator = 1;
18112 D(p->level--);
18113 return NULL;
18114 }
18115 goto done;
18116 }
18117 p->mark = _mark;
18118 D(fprintf(stderr, "%*c%s invalid_dict_comprehension[%d-%d]: %s failed!\n", p->level, ' ',
18119 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' '**' bitwise_or for_if_clauses '}'"));
18120 }
18121 _res = NULL;
18122 done:
18123 D(p->level--);
18124 return _res;
18125}
18126
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020018127// invalid_parameters: param_no_default* invalid_parameters_helper param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018128static void *
18129invalid_parameters_rule(Parser *p)
18130{
18131 D(p->level++);
18132 if (p->error_indicator) {
18133 D(p->level--);
18134 return NULL;
18135 }
18136 void * _res = NULL;
18137 int _mark = p->mark;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020018138 { // param_no_default* invalid_parameters_helper param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018139 if (p->error_indicator) {
18140 D(p->level--);
18141 return NULL;
18142 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020018143 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 +010018144 asdl_seq * _loop0_152_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020018145 void *invalid_parameters_helper_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018146 arg_ty param_no_default_var;
18147 if (
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018148 (_loop0_152_var = _loop0_152_rule(p)) // param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018149 &&
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020018150 (invalid_parameters_helper_var = invalid_parameters_helper_rule(p)) // invalid_parameters_helper
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018151 &&
18152 (param_no_default_var = param_no_default_rule(p)) // param_no_default
18153 )
18154 {
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020018155 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 +010018156 _res = RAISE_SYNTAX_ERROR ( "non-default argument follows default argument" );
18157 if (_res == NULL && PyErr_Occurred()) {
18158 p->error_indicator = 1;
18159 D(p->level--);
18160 return NULL;
18161 }
18162 goto done;
18163 }
18164 p->mark = _mark;
18165 D(fprintf(stderr, "%*c%s invalid_parameters[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020018166 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default* invalid_parameters_helper param_no_default"));
18167 }
18168 _res = NULL;
18169 done:
18170 D(p->level--);
18171 return _res;
18172}
18173
18174// invalid_parameters_helper: slash_with_default | param_with_default+
18175static void *
18176invalid_parameters_helper_rule(Parser *p)
18177{
18178 D(p->level++);
18179 if (p->error_indicator) {
18180 D(p->level--);
18181 return NULL;
18182 }
18183 void * _res = NULL;
18184 int _mark = p->mark;
18185 { // slash_with_default
18186 if (p->error_indicator) {
18187 D(p->level--);
18188 return NULL;
18189 }
18190 D(fprintf(stderr, "%*c> invalid_parameters_helper[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slash_with_default"));
18191 SlashWithDefault* a;
18192 if (
18193 (a = slash_with_default_rule(p)) // slash_with_default
18194 )
18195 {
18196 D(fprintf(stderr, "%*c+ invalid_parameters_helper[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slash_with_default"));
18197 _res = _PyPegen_singleton_seq ( p , a );
18198 if (_res == NULL && PyErr_Occurred()) {
18199 p->error_indicator = 1;
18200 D(p->level--);
18201 return NULL;
18202 }
18203 goto done;
18204 }
18205 p->mark = _mark;
18206 D(fprintf(stderr, "%*c%s invalid_parameters_helper[%d-%d]: %s failed!\n", p->level, ' ',
18207 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_with_default"));
18208 }
18209 { // param_with_default+
18210 if (p->error_indicator) {
18211 D(p->level--);
18212 return NULL;
18213 }
18214 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 +010018215 asdl_seq * _loop1_153_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020018216 if (
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018217 (_loop1_153_var = _loop1_153_rule(p)) // param_with_default+
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020018218 )
18219 {
18220 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 +010018221 _res = _loop1_153_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020018222 goto done;
18223 }
18224 p->mark = _mark;
18225 D(fprintf(stderr, "%*c%s invalid_parameters_helper[%d-%d]: %s failed!\n", p->level, ' ',
18226 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default+"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018227 }
18228 _res = NULL;
18229 done:
18230 D(p->level--);
18231 return _res;
18232}
18233
18234// invalid_lambda_parameters:
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020018235// | lambda_param_no_default* invalid_lambda_parameters_helper lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018236static void *
18237invalid_lambda_parameters_rule(Parser *p)
18238{
18239 D(p->level++);
18240 if (p->error_indicator) {
18241 D(p->level--);
18242 return NULL;
18243 }
18244 void * _res = NULL;
18245 int _mark = p->mark;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020018246 { // lambda_param_no_default* invalid_lambda_parameters_helper lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018247 if (p->error_indicator) {
18248 D(p->level--);
18249 return NULL;
18250 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020018251 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 +010018252 asdl_seq * _loop0_154_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020018253 void *invalid_lambda_parameters_helper_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018254 arg_ty lambda_param_no_default_var;
18255 if (
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018256 (_loop0_154_var = _loop0_154_rule(p)) // lambda_param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018257 &&
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020018258 (invalid_lambda_parameters_helper_var = invalid_lambda_parameters_helper_rule(p)) // invalid_lambda_parameters_helper
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018259 &&
18260 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
18261 )
18262 {
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020018263 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 +010018264 _res = RAISE_SYNTAX_ERROR ( "non-default argument follows default argument" );
18265 if (_res == NULL && PyErr_Occurred()) {
18266 p->error_indicator = 1;
18267 D(p->level--);
18268 return NULL;
18269 }
18270 goto done;
18271 }
18272 p->mark = _mark;
18273 D(fprintf(stderr, "%*c%s invalid_lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020018274 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default* invalid_lambda_parameters_helper lambda_param_no_default"));
18275 }
18276 _res = NULL;
18277 done:
18278 D(p->level--);
18279 return _res;
18280}
18281
18282// invalid_lambda_parameters_helper:
18283// | lambda_slash_with_default
18284// | lambda_param_with_default+
18285static void *
18286invalid_lambda_parameters_helper_rule(Parser *p)
18287{
18288 D(p->level++);
18289 if (p->error_indicator) {
18290 D(p->level--);
18291 return NULL;
18292 }
18293 void * _res = NULL;
18294 int _mark = p->mark;
18295 { // lambda_slash_with_default
18296 if (p->error_indicator) {
18297 D(p->level--);
18298 return NULL;
18299 }
18300 D(fprintf(stderr, "%*c> invalid_lambda_parameters_helper[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_slash_with_default"));
18301 SlashWithDefault* a;
18302 if (
18303 (a = lambda_slash_with_default_rule(p)) // lambda_slash_with_default
18304 )
18305 {
18306 D(fprintf(stderr, "%*c+ invalid_lambda_parameters_helper[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_slash_with_default"));
18307 _res = _PyPegen_singleton_seq ( p , a );
18308 if (_res == NULL && PyErr_Occurred()) {
18309 p->error_indicator = 1;
18310 D(p->level--);
18311 return NULL;
18312 }
18313 goto done;
18314 }
18315 p->mark = _mark;
18316 D(fprintf(stderr, "%*c%s invalid_lambda_parameters_helper[%d-%d]: %s failed!\n", p->level, ' ',
18317 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_slash_with_default"));
18318 }
18319 { // lambda_param_with_default+
18320 if (p->error_indicator) {
18321 D(p->level--);
18322 return NULL;
18323 }
18324 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 +010018325 asdl_seq * _loop1_155_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020018326 if (
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018327 (_loop1_155_var = _loop1_155_rule(p)) // lambda_param_with_default+
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020018328 )
18329 {
18330 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 +010018331 _res = _loop1_155_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020018332 goto done;
18333 }
18334 p->mark = _mark;
18335 D(fprintf(stderr, "%*c%s invalid_lambda_parameters_helper[%d-%d]: %s failed!\n", p->level, ' ',
18336 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default+"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018337 }
18338 _res = NULL;
18339 done:
18340 D(p->level--);
18341 return _res;
18342}
18343
18344// invalid_star_etc: '*' (')' | ',' (')' | '**')) | '*' ',' TYPE_COMMENT
18345static void *
18346invalid_star_etc_rule(Parser *p)
18347{
18348 D(p->level++);
18349 if (p->error_indicator) {
18350 D(p->level--);
18351 return NULL;
18352 }
18353 void * _res = NULL;
18354 int _mark = p->mark;
18355 { // '*' (')' | ',' (')' | '**'))
18356 if (p->error_indicator) {
18357 D(p->level--);
18358 return NULL;
18359 }
18360 D(fprintf(stderr, "%*c> invalid_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (')' | ',' (')' | '**'))"));
18361 Token * _literal;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018362 void *_tmp_156_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018363 if (
18364 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
18365 &&
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018366 (_tmp_156_var = _tmp_156_rule(p)) // ')' | ',' (')' | '**')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018367 )
18368 {
18369 D(fprintf(stderr, "%*c+ invalid_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (')' | ',' (')' | '**'))"));
18370 _res = RAISE_SYNTAX_ERROR ( "named arguments must follow bare *" );
18371 if (_res == NULL && PyErr_Occurred()) {
18372 p->error_indicator = 1;
18373 D(p->level--);
18374 return NULL;
18375 }
18376 goto done;
18377 }
18378 p->mark = _mark;
18379 D(fprintf(stderr, "%*c%s invalid_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
18380 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' (')' | ',' (')' | '**'))"));
18381 }
18382 { // '*' ',' TYPE_COMMENT
18383 if (p->error_indicator) {
18384 D(p->level--);
18385 return NULL;
18386 }
18387 D(fprintf(stderr, "%*c> invalid_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' ',' TYPE_COMMENT"));
18388 Token * _literal;
18389 Token * _literal_1;
18390 Token * type_comment_var;
18391 if (
18392 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
18393 &&
18394 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
18395 &&
18396 (type_comment_var = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
18397 )
18398 {
18399 D(fprintf(stderr, "%*c+ invalid_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' ',' TYPE_COMMENT"));
18400 _res = RAISE_SYNTAX_ERROR ( "bare * has associated type comment" );
18401 if (_res == NULL && PyErr_Occurred()) {
18402 p->error_indicator = 1;
18403 D(p->level--);
18404 return NULL;
18405 }
18406 goto done;
18407 }
18408 p->mark = _mark;
18409 D(fprintf(stderr, "%*c%s invalid_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
18410 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' ',' TYPE_COMMENT"));
18411 }
18412 _res = NULL;
18413 done:
18414 D(p->level--);
18415 return _res;
18416}
18417
18418// invalid_lambda_star_etc: '*' (':' | ',' (':' | '**'))
18419static void *
18420invalid_lambda_star_etc_rule(Parser *p)
18421{
18422 D(p->level++);
18423 if (p->error_indicator) {
18424 D(p->level--);
18425 return NULL;
18426 }
18427 void * _res = NULL;
18428 int _mark = p->mark;
18429 { // '*' (':' | ',' (':' | '**'))
18430 if (p->error_indicator) {
18431 D(p->level--);
18432 return NULL;
18433 }
18434 D(fprintf(stderr, "%*c> invalid_lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (':' | ',' (':' | '**'))"));
18435 Token * _literal;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018436 void *_tmp_157_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018437 if (
18438 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
18439 &&
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018440 (_tmp_157_var = _tmp_157_rule(p)) // ':' | ',' (':' | '**')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018441 )
18442 {
18443 D(fprintf(stderr, "%*c+ invalid_lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (':' | ',' (':' | '**'))"));
18444 _res = RAISE_SYNTAX_ERROR ( "named arguments must follow bare *" );
18445 if (_res == NULL && PyErr_Occurred()) {
18446 p->error_indicator = 1;
18447 D(p->level--);
18448 return NULL;
18449 }
18450 goto done;
18451 }
18452 p->mark = _mark;
18453 D(fprintf(stderr, "%*c%s invalid_lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
18454 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' (':' | ',' (':' | '**'))"));
18455 }
18456 _res = NULL;
18457 done:
18458 D(p->level--);
18459 return _res;
18460}
18461
18462// invalid_double_type_comments: TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT
18463static void *
18464invalid_double_type_comments_rule(Parser *p)
18465{
18466 D(p->level++);
18467 if (p->error_indicator) {
18468 D(p->level--);
18469 return NULL;
18470 }
18471 void * _res = NULL;
18472 int _mark = p->mark;
18473 { // TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT
18474 if (p->error_indicator) {
18475 D(p->level--);
18476 return NULL;
18477 }
18478 D(fprintf(stderr, "%*c> invalid_double_type_comments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT"));
18479 Token * indent_var;
18480 Token * newline_var;
18481 Token * newline_var_1;
18482 Token * type_comment_var;
18483 Token * type_comment_var_1;
18484 if (
18485 (type_comment_var = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
18486 &&
18487 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
18488 &&
18489 (type_comment_var_1 = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
18490 &&
18491 (newline_var_1 = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
18492 &&
18493 (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
18494 )
18495 {
18496 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"));
18497 _res = RAISE_SYNTAX_ERROR ( "Cannot have two type comments on def" );
18498 if (_res == NULL && PyErr_Occurred()) {
18499 p->error_indicator = 1;
18500 D(p->level--);
18501 return NULL;
18502 }
18503 goto done;
18504 }
18505 p->mark = _mark;
18506 D(fprintf(stderr, "%*c%s invalid_double_type_comments[%d-%d]: %s failed!\n", p->level, ' ',
18507 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT"));
18508 }
18509 _res = NULL;
18510 done:
18511 D(p->level--);
18512 return _res;
18513}
18514
Pablo Galindo58fb1562021-02-02 19:54:22 +000018515// invalid_with_item: expression 'as' expression &(',' | ')' | ':')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018516static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018517invalid_with_item_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018518{
18519 D(p->level++);
18520 if (p->error_indicator) {
18521 D(p->level--);
18522 return NULL;
18523 }
18524 void * _res = NULL;
18525 int _mark = p->mark;
Pablo Galindo58fb1562021-02-02 19:54:22 +000018526 { // expression 'as' expression &(',' | ')' | ':')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018527 if (p->error_indicator) {
18528 D(p->level--);
18529 return NULL;
18530 }
Pablo Galindo58fb1562021-02-02 19:54:22 +000018531 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 +030018532 Token * _keyword;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018533 expr_ty a;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018534 expr_ty expression_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018535 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018536 (expression_var = expression_rule(p)) // expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018537 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018538 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
18539 &&
18540 (a = expression_rule(p)) // expression
Pablo Galindo58fb1562021-02-02 19:54:22 +000018541 &&
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018542 _PyPegen_lookahead(1, _tmp_158_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018543 )
18544 {
Pablo Galindo58fb1562021-02-02 19:54:22 +000018545 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 +030018546 _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( STAR_TARGETS , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018547 if (_res == NULL && PyErr_Occurred()) {
18548 p->error_indicator = 1;
18549 D(p->level--);
18550 return NULL;
18551 }
18552 goto done;
18553 }
18554 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018555 D(fprintf(stderr, "%*c%s invalid_with_item[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +000018556 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression 'as' expression &(',' | ')' | ':')"));
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018557 }
18558 _res = NULL;
18559 done:
18560 D(p->level--);
18561 return _res;
18562}
18563
18564// invalid_for_target: ASYNC? 'for' star_expressions
18565static void *
18566invalid_for_target_rule(Parser *p)
18567{
18568 D(p->level++);
18569 if (p->error_indicator) {
18570 D(p->level--);
18571 return NULL;
18572 }
18573 void * _res = NULL;
18574 int _mark = p->mark;
18575 { // ASYNC? 'for' star_expressions
18576 if (p->error_indicator) {
18577 D(p->level--);
18578 return NULL;
18579 }
18580 D(fprintf(stderr, "%*c> invalid_for_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'for' star_expressions"));
18581 Token * _keyword;
18582 void *_opt_var;
18583 UNUSED(_opt_var); // Silence compiler warnings
18584 expr_ty a;
18585 if (
18586 (_opt_var = _PyPegen_expect_token(p, ASYNC), 1) // ASYNC?
18587 &&
18588 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
18589 &&
18590 (a = star_expressions_rule(p)) // star_expressions
18591 )
18592 {
18593 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 +030018594 _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( FOR_TARGETS , a );
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018595 if (_res == NULL && PyErr_Occurred()) {
18596 p->error_indicator = 1;
18597 D(p->level--);
18598 return NULL;
18599 }
18600 goto done;
18601 }
18602 p->mark = _mark;
18603 D(fprintf(stderr, "%*c%s invalid_for_target[%d-%d]: %s failed!\n", p->level, ' ',
18604 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'for' star_expressions"));
18605 }
18606 _res = NULL;
18607 done:
18608 D(p->level--);
18609 return _res;
18610}
18611
Pablo Galindo8efad612021-03-24 19:34:17 +000018612// invalid_group: '(' starred_expression ')' | '(' '**' expression ')'
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018613static void *
18614invalid_group_rule(Parser *p)
18615{
18616 D(p->level++);
18617 if (p->error_indicator) {
18618 D(p->level--);
18619 return NULL;
18620 }
18621 void * _res = NULL;
18622 int _mark = p->mark;
18623 { // '(' starred_expression ')'
18624 if (p->error_indicator) {
18625 D(p->level--);
18626 return NULL;
18627 }
18628 D(fprintf(stderr, "%*c> invalid_group[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' starred_expression ')'"));
18629 Token * _literal;
18630 Token * _literal_1;
18631 expr_ty a;
18632 if (
18633 (_literal = _PyPegen_expect_token(p, 7)) // token='('
18634 &&
18635 (a = starred_expression_rule(p)) // starred_expression
18636 &&
18637 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
18638 )
18639 {
18640 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 +010018641 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "cannot use starred expression here" );
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018642 if (_res == NULL && PyErr_Occurred()) {
18643 p->error_indicator = 1;
18644 D(p->level--);
18645 return NULL;
18646 }
18647 goto done;
18648 }
18649 p->mark = _mark;
18650 D(fprintf(stderr, "%*c%s invalid_group[%d-%d]: %s failed!\n", p->level, ' ',
18651 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' starred_expression ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018652 }
Pablo Galindo8efad612021-03-24 19:34:17 +000018653 { // '(' '**' expression ')'
18654 if (p->error_indicator) {
18655 D(p->level--);
18656 return NULL;
18657 }
18658 D(fprintf(stderr, "%*c> invalid_group[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' '**' expression ')'"));
18659 Token * _literal;
18660 Token * _literal_1;
18661 Token * a;
18662 expr_ty expression_var;
18663 if (
18664 (_literal = _PyPegen_expect_token(p, 7)) // token='('
18665 &&
18666 (a = _PyPegen_expect_token(p, 35)) // token='**'
18667 &&
18668 (expression_var = expression_rule(p)) // expression
18669 &&
18670 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
18671 )
18672 {
18673 D(fprintf(stderr, "%*c+ invalid_group[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' '**' expression ')'"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018674 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "cannot use double starred expression here" );
Pablo Galindo8efad612021-03-24 19:34:17 +000018675 if (_res == NULL && PyErr_Occurred()) {
18676 p->error_indicator = 1;
18677 D(p->level--);
18678 return NULL;
18679 }
18680 goto done;
18681 }
18682 p->mark = _mark;
18683 D(fprintf(stderr, "%*c%s invalid_group[%d-%d]: %s failed!\n", p->level, ' ',
18684 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' '**' expression ')'"));
18685 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018686 _res = NULL;
18687 done:
18688 D(p->level--);
18689 return _res;
18690}
18691
18692// invalid_import_from_targets: import_from_as_names ','
18693static void *
18694invalid_import_from_targets_rule(Parser *p)
18695{
18696 D(p->level++);
18697 if (p->error_indicator) {
18698 D(p->level--);
18699 return NULL;
18700 }
18701 void * _res = NULL;
18702 int _mark = p->mark;
18703 { // import_from_as_names ','
18704 if (p->error_indicator) {
18705 D(p->level--);
18706 return NULL;
18707 }
18708 D(fprintf(stderr, "%*c> invalid_import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "import_from_as_names ','"));
18709 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +010018710 asdl_alias_seq* import_from_as_names_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018711 if (
18712 (import_from_as_names_var = import_from_as_names_rule(p)) // import_from_as_names
18713 &&
18714 (_literal = _PyPegen_expect_token(p, 12)) // token=','
18715 )
18716 {
18717 D(fprintf(stderr, "%*c+ invalid_import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_from_as_names ','"));
18718 _res = RAISE_SYNTAX_ERROR ( "trailing comma not allowed without surrounding parentheses" );
18719 if (_res == NULL && PyErr_Occurred()) {
18720 p->error_indicator = 1;
18721 D(p->level--);
18722 return NULL;
18723 }
18724 goto done;
18725 }
18726 p->mark = _mark;
18727 D(fprintf(stderr, "%*c%s invalid_import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
18728 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from_as_names ','"));
18729 }
18730 _res = NULL;
18731 done:
18732 D(p->level--);
18733 return _res;
18734}
18735
Pablo Galindo58fb1562021-02-02 19:54:22 +000018736// invalid_with_stmt:
18737// | ASYNC? 'with' ','.(expression ['as' star_target])+ &&':'
18738// | ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' &&':'
18739static void *
18740invalid_with_stmt_rule(Parser *p)
18741{
18742 D(p->level++);
18743 if (p->error_indicator) {
18744 D(p->level--);
18745 return NULL;
18746 }
18747 void * _res = NULL;
18748 int _mark = p->mark;
18749 { // ASYNC? 'with' ','.(expression ['as' star_target])+ &&':'
18750 if (p->error_indicator) {
18751 D(p->level--);
18752 return NULL;
18753 }
18754 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 +010018755 asdl_seq * _gather_159_var;
Pablo Galindo58fb1562021-02-02 19:54:22 +000018756 Token * _keyword;
18757 Token * _literal;
18758 void *_opt_var;
18759 UNUSED(_opt_var); // Silence compiler warnings
18760 if (
18761 (_opt_var = _PyPegen_expect_token(p, ASYNC), 1) // ASYNC?
18762 &&
18763 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
18764 &&
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018765 (_gather_159_var = _gather_159_rule(p)) // ','.(expression ['as' star_target])+
Pablo Galindo58fb1562021-02-02 19:54:22 +000018766 &&
18767 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
18768 )
18769 {
18770 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 +010018771 _res = _PyPegen_dummy_name(p, _opt_var, _keyword, _gather_159_var, _literal);
Pablo Galindo58fb1562021-02-02 19:54:22 +000018772 goto done;
18773 }
18774 p->mark = _mark;
18775 D(fprintf(stderr, "%*c%s invalid_with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
18776 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'with' ','.(expression ['as' star_target])+ &&':'"));
18777 }
18778 { // ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' &&':'
18779 if (p->error_indicator) {
18780 D(p->level--);
18781 return NULL;
18782 }
18783 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 +010018784 asdl_seq * _gather_161_var;
Pablo Galindo58fb1562021-02-02 19:54:22 +000018785 Token * _keyword;
18786 Token * _literal;
18787 Token * _literal_1;
18788 Token * _literal_2;
18789 void *_opt_var;
18790 UNUSED(_opt_var); // Silence compiler warnings
18791 void *_opt_var_1;
18792 UNUSED(_opt_var_1); // Silence compiler warnings
18793 if (
18794 (_opt_var = _PyPegen_expect_token(p, ASYNC), 1) // ASYNC?
18795 &&
18796 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
18797 &&
18798 (_literal = _PyPegen_expect_token(p, 7)) // token='('
18799 &&
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018800 (_gather_161_var = _gather_161_rule(p)) // ','.(expressions ['as' star_target])+
Pablo Galindo58fb1562021-02-02 19:54:22 +000018801 &&
18802 (_opt_var_1 = _PyPegen_expect_token(p, 12), 1) // ','?
18803 &&
18804 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
18805 &&
18806 (_literal_2 = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
18807 )
18808 {
18809 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 +010018810 _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 +000018811 goto done;
18812 }
18813 p->mark = _mark;
18814 D(fprintf(stderr, "%*c%s invalid_with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
18815 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' &&':'"));
18816 }
18817 _res = NULL;
18818 done:
18819 D(p->level--);
18820 return _res;
18821}
18822
Pablo Galindo206cbda2021-02-07 18:42:21 +000018823// invalid_except_block:
18824// | 'except' expression ',' expressions ['as' NAME] ':'
18825// | 'except' expression ['as' NAME] &&':'
18826// | 'except' &&':'
18827static void *
18828invalid_except_block_rule(Parser *p)
18829{
18830 D(p->level++);
18831 if (p->error_indicator) {
18832 D(p->level--);
18833 return NULL;
18834 }
18835 void * _res = NULL;
18836 int _mark = p->mark;
18837 { // 'except' expression ',' expressions ['as' NAME] ':'
18838 if (p->error_indicator) {
18839 D(p->level--);
18840 return NULL;
18841 }
18842 D(fprintf(stderr, "%*c> invalid_except_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' expression ',' expressions ['as' NAME] ':'"));
18843 Token * _keyword;
18844 Token * _literal;
18845 Token * _literal_1;
18846 void *_opt_var;
18847 UNUSED(_opt_var); // Silence compiler warnings
18848 expr_ty a;
18849 expr_ty expressions_var;
18850 if (
18851 (_keyword = _PyPegen_expect_token(p, 521)) // token='except'
18852 &&
18853 (a = expression_rule(p)) // expression
18854 &&
18855 (_literal = _PyPegen_expect_token(p, 12)) // token=','
18856 &&
18857 (expressions_var = expressions_rule(p)) // expressions
18858 &&
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018859 (_opt_var = _tmp_163_rule(p), 1) // ['as' NAME]
Pablo Galindo206cbda2021-02-07 18:42:21 +000018860 &&
18861 (_literal_1 = _PyPegen_expect_token(p, 11)) // token=':'
18862 )
18863 {
18864 D(fprintf(stderr, "%*c+ invalid_except_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' expression ',' expressions ['as' NAME] ':'"));
18865 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "exception group must be parenthesized" );
18866 if (_res == NULL && PyErr_Occurred()) {
18867 p->error_indicator = 1;
18868 D(p->level--);
18869 return NULL;
18870 }
18871 goto done;
18872 }
18873 p->mark = _mark;
18874 D(fprintf(stderr, "%*c%s invalid_except_block[%d-%d]: %s failed!\n", p->level, ' ',
18875 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' expression ',' expressions ['as' NAME] ':'"));
18876 }
18877 { // 'except' expression ['as' NAME] &&':'
18878 if (p->error_indicator) {
18879 D(p->level--);
18880 return NULL;
18881 }
18882 D(fprintf(stderr, "%*c> invalid_except_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' expression ['as' NAME] &&':'"));
18883 Token * _keyword;
18884 Token * _literal;
18885 void *_opt_var;
18886 UNUSED(_opt_var); // Silence compiler warnings
18887 expr_ty expression_var;
18888 if (
18889 (_keyword = _PyPegen_expect_token(p, 521)) // token='except'
18890 &&
18891 (expression_var = expression_rule(p)) // expression
18892 &&
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018893 (_opt_var = _tmp_164_rule(p), 1) // ['as' NAME]
Pablo Galindo206cbda2021-02-07 18:42:21 +000018894 &&
18895 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
18896 )
18897 {
18898 D(fprintf(stderr, "%*c+ invalid_except_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' expression ['as' NAME] &&':'"));
18899 _res = _PyPegen_dummy_name(p, _keyword, expression_var, _opt_var, _literal);
18900 goto done;
18901 }
18902 p->mark = _mark;
18903 D(fprintf(stderr, "%*c%s invalid_except_block[%d-%d]: %s failed!\n", p->level, ' ',
18904 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' expression ['as' NAME] &&':'"));
18905 }
18906 { // 'except' &&':'
18907 if (p->error_indicator) {
18908 D(p->level--);
18909 return NULL;
18910 }
18911 D(fprintf(stderr, "%*c> invalid_except_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' &&':'"));
18912 Token * _keyword;
18913 Token * _literal;
18914 if (
18915 (_keyword = _PyPegen_expect_token(p, 521)) // token='except'
18916 &&
18917 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
18918 )
18919 {
18920 D(fprintf(stderr, "%*c+ invalid_except_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' &&':'"));
18921 _res = _PyPegen_dummy_name(p, _keyword, _literal);
18922 goto done;
18923 }
18924 p->mark = _mark;
18925 D(fprintf(stderr, "%*c%s invalid_except_block[%d-%d]: %s failed!\n", p->level, ' ',
18926 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' &&':'"));
18927 }
18928 _res = NULL;
18929 done:
18930 D(p->level--);
18931 return _res;
18932}
18933
Pablo Galindo08fb8ac2021-03-18 01:03:11 +000018934// invalid_match_stmt: "match" subject_expr !':'
18935static void *
18936invalid_match_stmt_rule(Parser *p)
18937{
18938 D(p->level++);
18939 if (p->error_indicator) {
18940 D(p->level--);
18941 return NULL;
18942 }
18943 void * _res = NULL;
18944 int _mark = p->mark;
18945 { // "match" subject_expr !':'
18946 if (p->error_indicator) {
18947 D(p->level--);
18948 return NULL;
18949 }
18950 D(fprintf(stderr, "%*c> invalid_match_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"match\" subject_expr !':'"));
18951 expr_ty _keyword;
18952 expr_ty subject_expr_var;
18953 if (
18954 (_keyword = _PyPegen_expect_soft_keyword(p, "match")) // soft_keyword='"match"'
18955 &&
18956 (subject_expr_var = subject_expr_rule(p)) // subject_expr
18957 &&
18958 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 11) // token=':'
18959 )
18960 {
18961 D(fprintf(stderr, "%*c+ invalid_match_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"match\" subject_expr !':'"));
18962 _res = CHECK_VERSION ( void * , 10 , "Pattern matching is" , RAISE_SYNTAX_ERROR ( "expected ':'" ) );
18963 if (_res == NULL && PyErr_Occurred()) {
18964 p->error_indicator = 1;
18965 D(p->level--);
18966 return NULL;
18967 }
18968 goto done;
18969 }
18970 p->mark = _mark;
18971 D(fprintf(stderr, "%*c%s invalid_match_stmt[%d-%d]: %s failed!\n", p->level, ' ',
18972 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"match\" subject_expr !':'"));
18973 }
18974 _res = NULL;
18975 done:
18976 D(p->level--);
18977 return _res;
18978}
18979
18980// invalid_case_block: "case" patterns guard? !':'
18981static void *
18982invalid_case_block_rule(Parser *p)
18983{
18984 D(p->level++);
18985 if (p->error_indicator) {
18986 D(p->level--);
18987 return NULL;
18988 }
18989 void * _res = NULL;
18990 int _mark = p->mark;
18991 { // "case" patterns guard? !':'
18992 if (p->error_indicator) {
18993 D(p->level--);
18994 return NULL;
18995 }
18996 D(fprintf(stderr, "%*c> invalid_case_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"case\" patterns guard? !':'"));
18997 expr_ty _keyword;
18998 void *_opt_var;
18999 UNUSED(_opt_var); // Silence compiler warnings
19000 expr_ty patterns_var;
19001 if (
19002 (_keyword = _PyPegen_expect_soft_keyword(p, "case")) // soft_keyword='"case"'
19003 &&
19004 (patterns_var = patterns_rule(p)) // patterns
19005 &&
19006 (_opt_var = guard_rule(p), 1) // guard?
19007 &&
19008 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 11) // token=':'
19009 )
19010 {
19011 D(fprintf(stderr, "%*c+ invalid_case_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"case\" patterns guard? !':'"));
19012 _res = RAISE_SYNTAX_ERROR ( "expected ':'" );
19013 if (_res == NULL && PyErr_Occurred()) {
19014 p->error_indicator = 1;
19015 D(p->level--);
19016 return NULL;
19017 }
19018 goto done;
19019 }
19020 p->mark = _mark;
19021 D(fprintf(stderr, "%*c%s invalid_case_block[%d-%d]: %s failed!\n", p->level, ' ',
19022 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"case\" patterns guard? !':'"));
19023 }
19024 _res = NULL;
19025 done:
19026 D(p->level--);
19027 return _res;
19028}
19029
Pablo Galindob86ed8e2021-04-12 16:59:30 +010019030// invalid_if_stmt: 'if' named_expression NEWLINE
19031static void *
19032invalid_if_stmt_rule(Parser *p)
19033{
19034 D(p->level++);
19035 if (p->error_indicator) {
19036 D(p->level--);
19037 return NULL;
19038 }
19039 void * _res = NULL;
19040 int _mark = p->mark;
19041 { // 'if' named_expression NEWLINE
19042 if (p->error_indicator) {
19043 D(p->level--);
19044 return NULL;
19045 }
19046 D(fprintf(stderr, "%*c> invalid_if_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' named_expression NEWLINE"));
19047 Token * _keyword;
19048 expr_ty named_expression_var;
19049 Token * newline_var;
19050 if (
19051 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
19052 &&
19053 (named_expression_var = named_expression_rule(p)) // named_expression
19054 &&
19055 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
19056 )
19057 {
19058 D(fprintf(stderr, "%*c+ invalid_if_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' named_expression NEWLINE"));
19059 _res = RAISE_SYNTAX_ERROR ( "expected ':'" );
19060 if (_res == NULL && PyErr_Occurred()) {
19061 p->error_indicator = 1;
19062 D(p->level--);
19063 return NULL;
19064 }
19065 goto done;
19066 }
19067 p->mark = _mark;
19068 D(fprintf(stderr, "%*c%s invalid_if_stmt[%d-%d]: %s failed!\n", p->level, ' ',
19069 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression NEWLINE"));
19070 }
19071 _res = NULL;
19072 done:
19073 D(p->level--);
19074 return _res;
19075}
19076
19077// invalid_elif_stmt: 'elif' named_expression NEWLINE
19078static void *
19079invalid_elif_stmt_rule(Parser *p)
19080{
19081 D(p->level++);
19082 if (p->error_indicator) {
19083 D(p->level--);
19084 return NULL;
19085 }
19086 void * _res = NULL;
19087 int _mark = p->mark;
19088 { // 'elif' named_expression NEWLINE
19089 if (p->error_indicator) {
19090 D(p->level--);
19091 return NULL;
19092 }
19093 D(fprintf(stderr, "%*c> invalid_elif_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'elif' named_expression NEWLINE"));
19094 Token * _keyword;
19095 expr_ty named_expression_var;
19096 Token * newline_var;
19097 if (
19098 (_keyword = _PyPegen_expect_token(p, 515)) // token='elif'
19099 &&
19100 (named_expression_var = named_expression_rule(p)) // named_expression
19101 &&
19102 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
19103 )
19104 {
19105 D(fprintf(stderr, "%*c+ invalid_elif_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'elif' named_expression NEWLINE"));
19106 _res = RAISE_SYNTAX_ERROR ( "expected ':'" );
19107 if (_res == NULL && PyErr_Occurred()) {
19108 p->error_indicator = 1;
19109 D(p->level--);
19110 return NULL;
19111 }
19112 goto done;
19113 }
19114 p->mark = _mark;
19115 D(fprintf(stderr, "%*c%s invalid_elif_stmt[%d-%d]: %s failed!\n", p->level, ' ',
19116 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'elif' named_expression NEWLINE"));
19117 }
19118 _res = NULL;
19119 done:
19120 D(p->level--);
19121 return _res;
19122}
19123
19124// invalid_while_stmt: 'while' named_expression NEWLINE
19125static void *
19126invalid_while_stmt_rule(Parser *p)
19127{
19128 D(p->level++);
19129 if (p->error_indicator) {
19130 D(p->level--);
19131 return NULL;
19132 }
19133 void * _res = NULL;
19134 int _mark = p->mark;
19135 { // 'while' named_expression NEWLINE
19136 if (p->error_indicator) {
19137 D(p->level--);
19138 return NULL;
19139 }
19140 D(fprintf(stderr, "%*c> invalid_while_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'while' named_expression NEWLINE"));
19141 Token * _keyword;
19142 expr_ty named_expression_var;
19143 Token * newline_var;
19144 if (
19145 (_keyword = _PyPegen_expect_token(p, 512)) // token='while'
19146 &&
19147 (named_expression_var = named_expression_rule(p)) // named_expression
19148 &&
19149 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
19150 )
19151 {
19152 D(fprintf(stderr, "%*c+ invalid_while_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'while' named_expression NEWLINE"));
19153 _res = RAISE_SYNTAX_ERROR ( "expected ':'" );
19154 if (_res == NULL && PyErr_Occurred()) {
19155 p->error_indicator = 1;
19156 D(p->level--);
19157 return NULL;
19158 }
19159 goto done;
19160 }
19161 p->mark = _mark;
19162 D(fprintf(stderr, "%*c%s invalid_while_stmt[%d-%d]: %s failed!\n", p->level, ' ',
19163 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'while' named_expression NEWLINE"));
19164 }
19165 _res = NULL;
19166 done:
19167 D(p->level--);
19168 return _res;
19169}
19170
Pablo Galindoda743502021-04-15 14:06:39 +010019171// invalid_double_starred_kvpairs:
19172// | ','.double_starred_kvpair+ ',' invalid_kvpair
19173// | expression ':' '*' bitwise_or
19174// | expression ':' &('}' | ',')
19175static void *
19176invalid_double_starred_kvpairs_rule(Parser *p)
19177{
19178 D(p->level++);
19179 if (p->error_indicator) {
19180 D(p->level--);
19181 return NULL;
19182 }
19183 void * _res = NULL;
19184 int _mark = p->mark;
19185 { // ','.double_starred_kvpair+ ',' invalid_kvpair
19186 if (p->error_indicator) {
19187 D(p->level--);
19188 return NULL;
19189 }
19190 D(fprintf(stderr, "%*c> invalid_double_starred_kvpairs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.double_starred_kvpair+ ',' invalid_kvpair"));
19191 asdl_seq * _gather_165_var;
19192 Token * _literal;
19193 void *invalid_kvpair_var;
19194 if (
19195 (_gather_165_var = _gather_165_rule(p)) // ','.double_starred_kvpair+
19196 &&
19197 (_literal = _PyPegen_expect_token(p, 12)) // token=','
19198 &&
19199 (invalid_kvpair_var = invalid_kvpair_rule(p)) // invalid_kvpair
19200 )
19201 {
19202 D(fprintf(stderr, "%*c+ invalid_double_starred_kvpairs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.double_starred_kvpair+ ',' invalid_kvpair"));
19203 _res = _PyPegen_dummy_name(p, _gather_165_var, _literal, invalid_kvpair_var);
19204 goto done;
19205 }
19206 p->mark = _mark;
19207 D(fprintf(stderr, "%*c%s invalid_double_starred_kvpairs[%d-%d]: %s failed!\n", p->level, ' ',
19208 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.double_starred_kvpair+ ',' invalid_kvpair"));
19209 }
19210 { // expression ':' '*' bitwise_or
19211 if (p->error_indicator) {
19212 D(p->level--);
19213 return NULL;
19214 }
19215 D(fprintf(stderr, "%*c> invalid_double_starred_kvpairs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' '*' bitwise_or"));
19216 Token * _literal;
19217 Token * a;
19218 expr_ty bitwise_or_var;
19219 expr_ty expression_var;
19220 if (
19221 (expression_var = expression_rule(p)) // expression
19222 &&
19223 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
19224 &&
19225 (a = _PyPegen_expect_token(p, 16)) // token='*'
19226 &&
19227 (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or
19228 )
19229 {
19230 D(fprintf(stderr, "%*c+ invalid_double_starred_kvpairs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':' '*' bitwise_or"));
19231 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "cannot use a starred expression in a dictionary value" );
19232 if (_res == NULL && PyErr_Occurred()) {
19233 p->error_indicator = 1;
19234 D(p->level--);
19235 return NULL;
19236 }
19237 goto done;
19238 }
19239 p->mark = _mark;
19240 D(fprintf(stderr, "%*c%s invalid_double_starred_kvpairs[%d-%d]: %s failed!\n", p->level, ' ',
19241 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' '*' bitwise_or"));
19242 }
19243 { // expression ':' &('}' | ',')
19244 if (p->error_indicator) {
19245 D(p->level--);
19246 return NULL;
19247 }
19248 D(fprintf(stderr, "%*c> invalid_double_starred_kvpairs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' &('}' | ',')"));
19249 Token * a;
19250 expr_ty expression_var;
19251 if (
19252 (expression_var = expression_rule(p)) // expression
19253 &&
19254 (a = _PyPegen_expect_token(p, 11)) // token=':'
19255 &&
19256 _PyPegen_lookahead(1, _tmp_167_rule, p)
19257 )
19258 {
19259 D(fprintf(stderr, "%*c+ invalid_double_starred_kvpairs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':' &('}' | ',')"));
19260 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "expression expected after dictionary key and ':'" );
19261 if (_res == NULL && PyErr_Occurred()) {
19262 p->error_indicator = 1;
19263 D(p->level--);
19264 return NULL;
19265 }
19266 goto done;
19267 }
19268 p->mark = _mark;
19269 D(fprintf(stderr, "%*c%s invalid_double_starred_kvpairs[%d-%d]: %s failed!\n", p->level, ' ',
19270 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' &('}' | ',')"));
19271 }
19272 _res = NULL;
19273 done:
19274 D(p->level--);
19275 return _res;
19276}
19277
19278// invalid_kvpair: expression !(':') | expression ':' '*' bitwise_or | expression ':'
19279static void *
19280invalid_kvpair_rule(Parser *p)
19281{
19282 D(p->level++);
19283 if (p->error_indicator) {
19284 D(p->level--);
19285 return NULL;
19286 }
19287 void * _res = NULL;
19288 int _mark = p->mark;
19289 { // expression !(':')
19290 if (p->error_indicator) {
19291 D(p->level--);
19292 return NULL;
19293 }
19294 D(fprintf(stderr, "%*c> invalid_kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression !(':')"));
19295 expr_ty a;
19296 if (
19297 (a = expression_rule(p)) // expression
19298 &&
19299 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 11) // token=(':')
19300 )
19301 {
19302 D(fprintf(stderr, "%*c+ invalid_kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression !(':')"));
19303 _res = RAISE_SYNTAX_ERROR ( "':' expected after dictionary key" );
19304 if (_res == NULL && PyErr_Occurred()) {
19305 p->error_indicator = 1;
19306 D(p->level--);
19307 return NULL;
19308 }
19309 goto done;
19310 }
19311 p->mark = _mark;
19312 D(fprintf(stderr, "%*c%s invalid_kvpair[%d-%d]: %s failed!\n", p->level, ' ',
19313 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression !(':')"));
19314 }
19315 { // expression ':' '*' bitwise_or
19316 if (p->error_indicator) {
19317 D(p->level--);
19318 return NULL;
19319 }
19320 D(fprintf(stderr, "%*c> invalid_kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' '*' bitwise_or"));
19321 Token * _literal;
19322 Token * a;
19323 expr_ty bitwise_or_var;
19324 expr_ty expression_var;
19325 if (
19326 (expression_var = expression_rule(p)) // expression
19327 &&
19328 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
19329 &&
19330 (a = _PyPegen_expect_token(p, 16)) // token='*'
19331 &&
19332 (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or
19333 )
19334 {
19335 D(fprintf(stderr, "%*c+ invalid_kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':' '*' bitwise_or"));
19336 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "cannot use a starred expression in a dictionary value" );
19337 if (_res == NULL && PyErr_Occurred()) {
19338 p->error_indicator = 1;
19339 D(p->level--);
19340 return NULL;
19341 }
19342 goto done;
19343 }
19344 p->mark = _mark;
19345 D(fprintf(stderr, "%*c%s invalid_kvpair[%d-%d]: %s failed!\n", p->level, ' ',
19346 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' '*' bitwise_or"));
19347 }
19348 { // expression ':'
19349 if (p->error_indicator) {
19350 D(p->level--);
19351 return NULL;
19352 }
19353 D(fprintf(stderr, "%*c> invalid_kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':'"));
19354 Token * a;
19355 expr_ty expression_var;
19356 if (
19357 (expression_var = expression_rule(p)) // expression
19358 &&
19359 (a = _PyPegen_expect_token(p, 11)) // token=':'
19360 )
19361 {
19362 D(fprintf(stderr, "%*c+ invalid_kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':'"));
19363 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "expression expected after dictionary key and ':'" );
19364 if (_res == NULL && PyErr_Occurred()) {
19365 p->error_indicator = 1;
19366 D(p->level--);
19367 return NULL;
19368 }
19369 goto done;
19370 }
19371 p->mark = _mark;
19372 D(fprintf(stderr, "%*c%s invalid_kvpair[%d-%d]: %s failed!\n", p->level, ' ',
19373 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':'"));
19374 }
19375 _res = NULL;
19376 done:
19377 D(p->level--);
19378 return _res;
19379}
19380
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019381// _loop0_1: NEWLINE
19382static asdl_seq *
19383_loop0_1_rule(Parser *p)
19384{
19385 D(p->level++);
19386 if (p->error_indicator) {
19387 D(p->level--);
19388 return NULL;
19389 }
19390 void *_res = NULL;
19391 int _mark = p->mark;
19392 int _start_mark = p->mark;
19393 void **_children = PyMem_Malloc(sizeof(void *));
19394 if (!_children) {
19395 p->error_indicator = 1;
19396 PyErr_NoMemory();
19397 D(p->level--);
19398 return NULL;
19399 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010019400 Py_ssize_t _children_capacity = 1;
19401 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019402 { // NEWLINE
19403 if (p->error_indicator) {
19404 D(p->level--);
19405 return NULL;
19406 }
19407 D(fprintf(stderr, "%*c> _loop0_1[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
19408 Token * newline_var;
19409 while (
19410 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
19411 )
19412 {
19413 _res = newline_var;
19414 if (_n == _children_capacity) {
19415 _children_capacity *= 2;
19416 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19417 if (!_new_children) {
19418 p->error_indicator = 1;
19419 PyErr_NoMemory();
19420 D(p->level--);
19421 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000019422 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019423 _children = _new_children;
19424 }
19425 _children[_n++] = _res;
19426 _mark = p->mark;
19427 }
19428 p->mark = _mark;
19429 D(fprintf(stderr, "%*c%s _loop0_1[%d-%d]: %s failed!\n", p->level, ' ',
19430 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
19431 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019432 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019433 if (!_seq) {
19434 PyMem_Free(_children);
19435 p->error_indicator = 1;
19436 PyErr_NoMemory();
19437 D(p->level--);
19438 return NULL;
19439 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019440 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019441 PyMem_Free(_children);
19442 _PyPegen_insert_memo(p, _start_mark, _loop0_1_type, _seq);
19443 D(p->level--);
19444 return _seq;
19445}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000019446
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019447// _loop0_2: NEWLINE
19448static asdl_seq *
19449_loop0_2_rule(Parser *p)
19450{
19451 D(p->level++);
19452 if (p->error_indicator) {
19453 D(p->level--);
19454 return NULL;
19455 }
19456 void *_res = NULL;
19457 int _mark = p->mark;
19458 int _start_mark = p->mark;
19459 void **_children = PyMem_Malloc(sizeof(void *));
19460 if (!_children) {
19461 p->error_indicator = 1;
19462 PyErr_NoMemory();
19463 D(p->level--);
19464 return NULL;
19465 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010019466 Py_ssize_t _children_capacity = 1;
19467 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019468 { // NEWLINE
19469 if (p->error_indicator) {
19470 D(p->level--);
19471 return NULL;
19472 }
19473 D(fprintf(stderr, "%*c> _loop0_2[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
19474 Token * newline_var;
19475 while (
19476 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
19477 )
19478 {
19479 _res = newline_var;
19480 if (_n == _children_capacity) {
19481 _children_capacity *= 2;
19482 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19483 if (!_new_children) {
19484 p->error_indicator = 1;
19485 PyErr_NoMemory();
19486 D(p->level--);
19487 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000019488 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019489 _children = _new_children;
19490 }
19491 _children[_n++] = _res;
19492 _mark = p->mark;
19493 }
19494 p->mark = _mark;
19495 D(fprintf(stderr, "%*c%s _loop0_2[%d-%d]: %s failed!\n", p->level, ' ',
19496 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
19497 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019498 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019499 if (!_seq) {
19500 PyMem_Free(_children);
19501 p->error_indicator = 1;
19502 PyErr_NoMemory();
19503 D(p->level--);
19504 return NULL;
19505 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019506 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019507 PyMem_Free(_children);
19508 _PyPegen_insert_memo(p, _start_mark, _loop0_2_type, _seq);
19509 D(p->level--);
19510 return _seq;
19511}
19512
19513// _loop0_4: ',' expression
19514static asdl_seq *
19515_loop0_4_rule(Parser *p)
19516{
19517 D(p->level++);
19518 if (p->error_indicator) {
19519 D(p->level--);
19520 return NULL;
19521 }
19522 void *_res = NULL;
19523 int _mark = p->mark;
19524 int _start_mark = p->mark;
19525 void **_children = PyMem_Malloc(sizeof(void *));
19526 if (!_children) {
19527 p->error_indicator = 1;
19528 PyErr_NoMemory();
19529 D(p->level--);
19530 return NULL;
19531 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010019532 Py_ssize_t _children_capacity = 1;
19533 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019534 { // ',' expression
19535 if (p->error_indicator) {
19536 D(p->level--);
19537 return NULL;
19538 }
19539 D(fprintf(stderr, "%*c> _loop0_4[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
19540 Token * _literal;
19541 expr_ty elem;
19542 while (
19543 (_literal = _PyPegen_expect_token(p, 12)) // token=','
19544 &&
19545 (elem = expression_rule(p)) // expression
19546 )
19547 {
19548 _res = elem;
19549 if (_res == NULL && PyErr_Occurred()) {
19550 p->error_indicator = 1;
19551 PyMem_Free(_children);
19552 D(p->level--);
19553 return NULL;
19554 }
19555 if (_n == _children_capacity) {
19556 _children_capacity *= 2;
19557 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19558 if (!_new_children) {
19559 p->error_indicator = 1;
19560 PyErr_NoMemory();
19561 D(p->level--);
19562 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000019563 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019564 _children = _new_children;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000019565 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019566 _children[_n++] = _res;
19567 _mark = p->mark;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000019568 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019569 p->mark = _mark;
19570 D(fprintf(stderr, "%*c%s _loop0_4[%d-%d]: %s failed!\n", p->level, ' ',
19571 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000019572 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019573 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019574 if (!_seq) {
19575 PyMem_Free(_children);
19576 p->error_indicator = 1;
19577 PyErr_NoMemory();
19578 D(p->level--);
19579 return NULL;
19580 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019581 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019582 PyMem_Free(_children);
19583 _PyPegen_insert_memo(p, _start_mark, _loop0_4_type, _seq);
19584 D(p->level--);
19585 return _seq;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000019586}
19587
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019588// _gather_3: expression _loop0_4
19589static asdl_seq *
19590_gather_3_rule(Parser *p)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000019591{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019592 D(p->level++);
19593 if (p->error_indicator) {
19594 D(p->level--);
19595 return NULL;
19596 }
19597 asdl_seq * _res = NULL;
19598 int _mark = p->mark;
19599 { // expression _loop0_4
19600 if (p->error_indicator) {
19601 D(p->level--);
19602 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000019603 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019604 D(fprintf(stderr, "%*c> _gather_3[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_4"));
19605 expr_ty elem;
19606 asdl_seq * seq;
19607 if (
19608 (elem = expression_rule(p)) // expression
19609 &&
19610 (seq = _loop0_4_rule(p)) // _loop0_4
19611 )
19612 {
19613 D(fprintf(stderr, "%*c+ _gather_3[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_4"));
19614 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
19615 goto done;
19616 }
19617 p->mark = _mark;
19618 D(fprintf(stderr, "%*c%s _gather_3[%d-%d]: %s failed!\n", p->level, ' ',
19619 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_4"));
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000019620 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019621 _res = NULL;
19622 done:
19623 D(p->level--);
19624 return _res;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000019625}
19626
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019627// _loop0_6: ',' expression
19628static asdl_seq *
19629_loop0_6_rule(Parser *p)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000019630{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019631 D(p->level++);
19632 if (p->error_indicator) {
19633 D(p->level--);
19634 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000019635 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019636 void *_res = NULL;
19637 int _mark = p->mark;
19638 int _start_mark = p->mark;
19639 void **_children = PyMem_Malloc(sizeof(void *));
19640 if (!_children) {
19641 p->error_indicator = 1;
19642 PyErr_NoMemory();
19643 D(p->level--);
19644 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000019645 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010019646 Py_ssize_t _children_capacity = 1;
19647 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019648 { // ',' expression
19649 if (p->error_indicator) {
19650 D(p->level--);
19651 return NULL;
19652 }
19653 D(fprintf(stderr, "%*c> _loop0_6[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
19654 Token * _literal;
19655 expr_ty elem;
19656 while (
19657 (_literal = _PyPegen_expect_token(p, 12)) // token=','
19658 &&
19659 (elem = expression_rule(p)) // expression
19660 )
19661 {
19662 _res = elem;
19663 if (_res == NULL && PyErr_Occurred()) {
19664 p->error_indicator = 1;
19665 PyMem_Free(_children);
19666 D(p->level--);
19667 return NULL;
19668 }
19669 if (_n == _children_capacity) {
19670 _children_capacity *= 2;
19671 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19672 if (!_new_children) {
19673 p->error_indicator = 1;
19674 PyErr_NoMemory();
19675 D(p->level--);
19676 return NULL;
19677 }
19678 _children = _new_children;
19679 }
19680 _children[_n++] = _res;
19681 _mark = p->mark;
19682 }
19683 p->mark = _mark;
19684 D(fprintf(stderr, "%*c%s _loop0_6[%d-%d]: %s failed!\n", p->level, ' ',
19685 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
19686 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019687 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019688 if (!_seq) {
19689 PyMem_Free(_children);
19690 p->error_indicator = 1;
19691 PyErr_NoMemory();
19692 D(p->level--);
19693 return NULL;
19694 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019695 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019696 PyMem_Free(_children);
19697 _PyPegen_insert_memo(p, _start_mark, _loop0_6_type, _seq);
19698 D(p->level--);
19699 return _seq;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000019700}
19701
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019702// _gather_5: expression _loop0_6
19703static asdl_seq *
19704_gather_5_rule(Parser *p)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000019705{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019706 D(p->level++);
19707 if (p->error_indicator) {
19708 D(p->level--);
19709 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000019710 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019711 asdl_seq * _res = NULL;
19712 int _mark = p->mark;
19713 { // expression _loop0_6
19714 if (p->error_indicator) {
19715 D(p->level--);
19716 return NULL;
19717 }
19718 D(fprintf(stderr, "%*c> _gather_5[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_6"));
19719 expr_ty elem;
19720 asdl_seq * seq;
19721 if (
19722 (elem = expression_rule(p)) // expression
19723 &&
19724 (seq = _loop0_6_rule(p)) // _loop0_6
19725 )
19726 {
19727 D(fprintf(stderr, "%*c+ _gather_5[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_6"));
19728 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
19729 goto done;
19730 }
19731 p->mark = _mark;
19732 D(fprintf(stderr, "%*c%s _gather_5[%d-%d]: %s failed!\n", p->level, ' ',
19733 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_6"));
19734 }
19735 _res = NULL;
19736 done:
19737 D(p->level--);
19738 return _res;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000019739}
19740
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019741// _loop0_8: ',' expression
19742static asdl_seq *
19743_loop0_8_rule(Parser *p)
19744{
19745 D(p->level++);
19746 if (p->error_indicator) {
19747 D(p->level--);
19748 return NULL;
19749 }
19750 void *_res = NULL;
19751 int _mark = p->mark;
19752 int _start_mark = p->mark;
19753 void **_children = PyMem_Malloc(sizeof(void *));
19754 if (!_children) {
19755 p->error_indicator = 1;
19756 PyErr_NoMemory();
19757 D(p->level--);
19758 return NULL;
19759 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010019760 Py_ssize_t _children_capacity = 1;
19761 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019762 { // ',' expression
19763 if (p->error_indicator) {
19764 D(p->level--);
19765 return NULL;
19766 }
19767 D(fprintf(stderr, "%*c> _loop0_8[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
19768 Token * _literal;
19769 expr_ty elem;
19770 while (
19771 (_literal = _PyPegen_expect_token(p, 12)) // token=','
19772 &&
19773 (elem = expression_rule(p)) // expression
19774 )
19775 {
19776 _res = elem;
19777 if (_res == NULL && PyErr_Occurred()) {
19778 p->error_indicator = 1;
19779 PyMem_Free(_children);
19780 D(p->level--);
19781 return NULL;
19782 }
19783 if (_n == _children_capacity) {
19784 _children_capacity *= 2;
19785 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19786 if (!_new_children) {
19787 p->error_indicator = 1;
19788 PyErr_NoMemory();
19789 D(p->level--);
19790 return NULL;
19791 }
19792 _children = _new_children;
19793 }
19794 _children[_n++] = _res;
19795 _mark = p->mark;
19796 }
19797 p->mark = _mark;
19798 D(fprintf(stderr, "%*c%s _loop0_8[%d-%d]: %s failed!\n", p->level, ' ',
19799 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
19800 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019801 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019802 if (!_seq) {
19803 PyMem_Free(_children);
19804 p->error_indicator = 1;
19805 PyErr_NoMemory();
19806 D(p->level--);
19807 return NULL;
19808 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019809 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019810 PyMem_Free(_children);
19811 _PyPegen_insert_memo(p, _start_mark, _loop0_8_type, _seq);
19812 D(p->level--);
19813 return _seq;
19814}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000019815
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019816// _gather_7: expression _loop0_8
19817static asdl_seq *
19818_gather_7_rule(Parser *p)
19819{
19820 D(p->level++);
19821 if (p->error_indicator) {
19822 D(p->level--);
19823 return NULL;
19824 }
19825 asdl_seq * _res = NULL;
19826 int _mark = p->mark;
19827 { // expression _loop0_8
19828 if (p->error_indicator) {
19829 D(p->level--);
19830 return NULL;
19831 }
19832 D(fprintf(stderr, "%*c> _gather_7[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_8"));
19833 expr_ty elem;
19834 asdl_seq * seq;
19835 if (
19836 (elem = expression_rule(p)) // expression
19837 &&
19838 (seq = _loop0_8_rule(p)) // _loop0_8
19839 )
19840 {
19841 D(fprintf(stderr, "%*c+ _gather_7[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_8"));
19842 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
19843 goto done;
19844 }
19845 p->mark = _mark;
19846 D(fprintf(stderr, "%*c%s _gather_7[%d-%d]: %s failed!\n", p->level, ' ',
19847 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_8"));
19848 }
19849 _res = NULL;
19850 done:
19851 D(p->level--);
19852 return _res;
19853}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000019854
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019855// _loop0_10: ',' expression
19856static asdl_seq *
19857_loop0_10_rule(Parser *p)
19858{
19859 D(p->level++);
19860 if (p->error_indicator) {
19861 D(p->level--);
19862 return NULL;
19863 }
19864 void *_res = NULL;
19865 int _mark = p->mark;
19866 int _start_mark = p->mark;
19867 void **_children = PyMem_Malloc(sizeof(void *));
19868 if (!_children) {
19869 p->error_indicator = 1;
19870 PyErr_NoMemory();
19871 D(p->level--);
19872 return NULL;
19873 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010019874 Py_ssize_t _children_capacity = 1;
19875 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019876 { // ',' expression
19877 if (p->error_indicator) {
19878 D(p->level--);
19879 return NULL;
19880 }
19881 D(fprintf(stderr, "%*c> _loop0_10[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
19882 Token * _literal;
19883 expr_ty elem;
19884 while (
19885 (_literal = _PyPegen_expect_token(p, 12)) // token=','
19886 &&
19887 (elem = expression_rule(p)) // expression
19888 )
19889 {
19890 _res = elem;
19891 if (_res == NULL && PyErr_Occurred()) {
19892 p->error_indicator = 1;
19893 PyMem_Free(_children);
19894 D(p->level--);
19895 return NULL;
19896 }
19897 if (_n == _children_capacity) {
19898 _children_capacity *= 2;
19899 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19900 if (!_new_children) {
19901 p->error_indicator = 1;
19902 PyErr_NoMemory();
19903 D(p->level--);
19904 return NULL;
19905 }
19906 _children = _new_children;
19907 }
19908 _children[_n++] = _res;
19909 _mark = p->mark;
19910 }
19911 p->mark = _mark;
19912 D(fprintf(stderr, "%*c%s _loop0_10[%d-%d]: %s failed!\n", p->level, ' ',
19913 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
19914 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019915 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019916 if (!_seq) {
19917 PyMem_Free(_children);
19918 p->error_indicator = 1;
19919 PyErr_NoMemory();
19920 D(p->level--);
19921 return NULL;
19922 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019923 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019924 PyMem_Free(_children);
19925 _PyPegen_insert_memo(p, _start_mark, _loop0_10_type, _seq);
19926 D(p->level--);
19927 return _seq;
19928}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000019929
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019930// _gather_9: expression _loop0_10
19931static asdl_seq *
19932_gather_9_rule(Parser *p)
19933{
19934 D(p->level++);
19935 if (p->error_indicator) {
19936 D(p->level--);
19937 return NULL;
19938 }
19939 asdl_seq * _res = NULL;
19940 int _mark = p->mark;
19941 { // expression _loop0_10
19942 if (p->error_indicator) {
19943 D(p->level--);
19944 return NULL;
19945 }
19946 D(fprintf(stderr, "%*c> _gather_9[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_10"));
19947 expr_ty elem;
19948 asdl_seq * seq;
19949 if (
19950 (elem = expression_rule(p)) // expression
19951 &&
19952 (seq = _loop0_10_rule(p)) // _loop0_10
19953 )
19954 {
19955 D(fprintf(stderr, "%*c+ _gather_9[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_10"));
19956 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
19957 goto done;
19958 }
19959 p->mark = _mark;
19960 D(fprintf(stderr, "%*c%s _gather_9[%d-%d]: %s failed!\n", p->level, ' ',
19961 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_10"));
19962 }
19963 _res = NULL;
19964 done:
19965 D(p->level--);
19966 return _res;
19967}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000019968
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019969// _loop1_11: statement
19970static asdl_seq *
19971_loop1_11_rule(Parser *p)
19972{
19973 D(p->level++);
19974 if (p->error_indicator) {
19975 D(p->level--);
19976 return NULL;
19977 }
19978 void *_res = NULL;
19979 int _mark = p->mark;
19980 int _start_mark = p->mark;
19981 void **_children = PyMem_Malloc(sizeof(void *));
19982 if (!_children) {
19983 p->error_indicator = 1;
19984 PyErr_NoMemory();
19985 D(p->level--);
19986 return NULL;
19987 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010019988 Py_ssize_t _children_capacity = 1;
19989 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019990 { // statement
19991 if (p->error_indicator) {
19992 D(p->level--);
19993 return NULL;
19994 }
19995 D(fprintf(stderr, "%*c> _loop1_11[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statement"));
Pablo Galindoa5634c42020-09-16 19:42:00 +010019996 asdl_stmt_seq* statement_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019997 while (
19998 (statement_var = statement_rule(p)) // statement
19999 )
20000 {
20001 _res = statement_var;
20002 if (_n == _children_capacity) {
20003 _children_capacity *= 2;
20004 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20005 if (!_new_children) {
20006 p->error_indicator = 1;
20007 PyErr_NoMemory();
20008 D(p->level--);
20009 return NULL;
20010 }
20011 _children = _new_children;
20012 }
20013 _children[_n++] = _res;
20014 _mark = p->mark;
20015 }
20016 p->mark = _mark;
20017 D(fprintf(stderr, "%*c%s _loop1_11[%d-%d]: %s failed!\n", p->level, ' ',
20018 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statement"));
20019 }
20020 if (_n == 0 || p->error_indicator) {
20021 PyMem_Free(_children);
20022 D(p->level--);
20023 return NULL;
20024 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020025 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020026 if (!_seq) {
20027 PyMem_Free(_children);
20028 p->error_indicator = 1;
20029 PyErr_NoMemory();
20030 D(p->level--);
20031 return NULL;
20032 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020033 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020034 PyMem_Free(_children);
20035 _PyPegen_insert_memo(p, _start_mark, _loop1_11_type, _seq);
20036 D(p->level--);
20037 return _seq;
20038}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000020039
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000020040// _loop0_13: ';' simple_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020041static asdl_seq *
20042_loop0_13_rule(Parser *p)
20043{
20044 D(p->level++);
20045 if (p->error_indicator) {
20046 D(p->level--);
20047 return NULL;
20048 }
20049 void *_res = NULL;
20050 int _mark = p->mark;
20051 int _start_mark = p->mark;
20052 void **_children = PyMem_Malloc(sizeof(void *));
20053 if (!_children) {
20054 p->error_indicator = 1;
20055 PyErr_NoMemory();
20056 D(p->level--);
20057 return NULL;
20058 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010020059 Py_ssize_t _children_capacity = 1;
20060 Py_ssize_t _n = 0;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000020061 { // ';' simple_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020062 if (p->error_indicator) {
20063 D(p->level--);
20064 return NULL;
20065 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000020066 D(fprintf(stderr, "%*c> _loop0_13[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "';' simple_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020067 Token * _literal;
20068 stmt_ty elem;
20069 while (
20070 (_literal = _PyPegen_expect_token(p, 13)) // token=';'
20071 &&
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000020072 (elem = simple_stmt_rule(p)) // simple_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020073 )
20074 {
20075 _res = elem;
20076 if (_res == NULL && PyErr_Occurred()) {
20077 p->error_indicator = 1;
20078 PyMem_Free(_children);
20079 D(p->level--);
20080 return NULL;
20081 }
20082 if (_n == _children_capacity) {
20083 _children_capacity *= 2;
20084 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20085 if (!_new_children) {
20086 p->error_indicator = 1;
20087 PyErr_NoMemory();
20088 D(p->level--);
20089 return NULL;
20090 }
20091 _children = _new_children;
20092 }
20093 _children[_n++] = _res;
20094 _mark = p->mark;
20095 }
20096 p->mark = _mark;
20097 D(fprintf(stderr, "%*c%s _loop0_13[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000020098 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "';' simple_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020099 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020100 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020101 if (!_seq) {
20102 PyMem_Free(_children);
20103 p->error_indicator = 1;
20104 PyErr_NoMemory();
20105 D(p->level--);
20106 return NULL;
20107 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020108 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020109 PyMem_Free(_children);
20110 _PyPegen_insert_memo(p, _start_mark, _loop0_13_type, _seq);
20111 D(p->level--);
20112 return _seq;
20113}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000020114
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000020115// _gather_12: simple_stmt _loop0_13
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020116static asdl_seq *
20117_gather_12_rule(Parser *p)
20118{
20119 D(p->level++);
20120 if (p->error_indicator) {
20121 D(p->level--);
20122 return NULL;
20123 }
20124 asdl_seq * _res = NULL;
20125 int _mark = p->mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000020126 { // simple_stmt _loop0_13
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020127 if (p->error_indicator) {
20128 D(p->level--);
20129 return NULL;
20130 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000020131 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 +010020132 stmt_ty elem;
20133 asdl_seq * seq;
20134 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000020135 (elem = simple_stmt_rule(p)) // simple_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020136 &&
20137 (seq = _loop0_13_rule(p)) // _loop0_13
20138 )
20139 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000020140 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 +010020141 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
20142 goto done;
20143 }
20144 p->mark = _mark;
20145 D(fprintf(stderr, "%*c%s _gather_12[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000020146 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmt _loop0_13"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020147 }
20148 _res = NULL;
20149 done:
20150 D(p->level--);
20151 return _res;
20152}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000020153
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020154// _tmp_14: 'import' | 'from'
20155static void *
20156_tmp_14_rule(Parser *p)
20157{
20158 D(p->level++);
20159 if (p->error_indicator) {
20160 D(p->level--);
20161 return NULL;
20162 }
20163 void * _res = NULL;
20164 int _mark = p->mark;
20165 { // 'import'
20166 if (p->error_indicator) {
20167 D(p->level--);
20168 return NULL;
20169 }
20170 D(fprintf(stderr, "%*c> _tmp_14[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'import'"));
20171 Token * _keyword;
20172 if (
20173 (_keyword = _PyPegen_expect_token(p, 513)) // token='import'
20174 )
20175 {
20176 D(fprintf(stderr, "%*c+ _tmp_14[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'import'"));
20177 _res = _keyword;
20178 goto done;
20179 }
20180 p->mark = _mark;
20181 D(fprintf(stderr, "%*c%s _tmp_14[%d-%d]: %s failed!\n", p->level, ' ',
20182 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'import'"));
20183 }
20184 { // 'from'
20185 if (p->error_indicator) {
20186 D(p->level--);
20187 return NULL;
20188 }
20189 D(fprintf(stderr, "%*c> _tmp_14[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from'"));
20190 Token * _keyword;
20191 if (
20192 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
20193 )
20194 {
20195 D(fprintf(stderr, "%*c+ _tmp_14[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'from'"));
20196 _res = _keyword;
20197 goto done;
20198 }
20199 p->mark = _mark;
20200 D(fprintf(stderr, "%*c%s _tmp_14[%d-%d]: %s failed!\n", p->level, ' ',
20201 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from'"));
20202 }
20203 _res = NULL;
20204 done:
20205 D(p->level--);
20206 return _res;
20207}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000020208
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020209// _tmp_15: 'def' | '@' | ASYNC
20210static void *
20211_tmp_15_rule(Parser *p)
20212{
20213 D(p->level++);
20214 if (p->error_indicator) {
20215 D(p->level--);
20216 return NULL;
20217 }
20218 void * _res = NULL;
20219 int _mark = p->mark;
20220 { // 'def'
20221 if (p->error_indicator) {
20222 D(p->level--);
20223 return NULL;
20224 }
20225 D(fprintf(stderr, "%*c> _tmp_15[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'def'"));
20226 Token * _keyword;
20227 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080020228 (_keyword = _PyPegen_expect_token(p, 526)) // token='def'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020229 )
20230 {
20231 D(fprintf(stderr, "%*c+ _tmp_15[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'def'"));
20232 _res = _keyword;
20233 goto done;
20234 }
20235 p->mark = _mark;
20236 D(fprintf(stderr, "%*c%s _tmp_15[%d-%d]: %s failed!\n", p->level, ' ',
20237 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'def'"));
20238 }
20239 { // '@'
20240 if (p->error_indicator) {
20241 D(p->level--);
20242 return NULL;
20243 }
20244 D(fprintf(stderr, "%*c> _tmp_15[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@'"));
20245 Token * _literal;
20246 if (
20247 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
20248 )
20249 {
20250 D(fprintf(stderr, "%*c+ _tmp_15[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@'"));
20251 _res = _literal;
20252 goto done;
20253 }
20254 p->mark = _mark;
20255 D(fprintf(stderr, "%*c%s _tmp_15[%d-%d]: %s failed!\n", p->level, ' ',
20256 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@'"));
20257 }
20258 { // ASYNC
20259 if (p->error_indicator) {
20260 D(p->level--);
20261 return NULL;
20262 }
20263 D(fprintf(stderr, "%*c> _tmp_15[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC"));
20264 Token * async_var;
20265 if (
20266 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
20267 )
20268 {
20269 D(fprintf(stderr, "%*c+ _tmp_15[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC"));
20270 _res = async_var;
20271 goto done;
20272 }
20273 p->mark = _mark;
20274 D(fprintf(stderr, "%*c%s _tmp_15[%d-%d]: %s failed!\n", p->level, ' ',
20275 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC"));
20276 }
20277 _res = NULL;
20278 done:
20279 D(p->level--);
20280 return _res;
20281}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000020282
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020283// _tmp_16: 'class' | '@'
20284static void *
20285_tmp_16_rule(Parser *p)
20286{
20287 D(p->level++);
20288 if (p->error_indicator) {
20289 D(p->level--);
20290 return NULL;
20291 }
20292 void * _res = NULL;
20293 int _mark = p->mark;
20294 { // 'class'
20295 if (p->error_indicator) {
20296 D(p->level--);
20297 return NULL;
20298 }
20299 D(fprintf(stderr, "%*c> _tmp_16[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'class'"));
20300 Token * _keyword;
20301 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080020302 (_keyword = _PyPegen_expect_token(p, 527)) // token='class'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020303 )
20304 {
20305 D(fprintf(stderr, "%*c+ _tmp_16[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'class'"));
20306 _res = _keyword;
20307 goto done;
20308 }
20309 p->mark = _mark;
20310 D(fprintf(stderr, "%*c%s _tmp_16[%d-%d]: %s failed!\n", p->level, ' ',
20311 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'class'"));
20312 }
20313 { // '@'
20314 if (p->error_indicator) {
20315 D(p->level--);
20316 return NULL;
20317 }
20318 D(fprintf(stderr, "%*c> _tmp_16[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@'"));
20319 Token * _literal;
20320 if (
20321 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
20322 )
20323 {
20324 D(fprintf(stderr, "%*c+ _tmp_16[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@'"));
20325 _res = _literal;
20326 goto done;
20327 }
20328 p->mark = _mark;
20329 D(fprintf(stderr, "%*c%s _tmp_16[%d-%d]: %s failed!\n", p->level, ' ',
20330 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@'"));
20331 }
20332 _res = NULL;
20333 done:
20334 D(p->level--);
20335 return _res;
20336}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000020337
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020338// _tmp_17: 'with' | ASYNC
20339static void *
20340_tmp_17_rule(Parser *p)
20341{
20342 D(p->level++);
20343 if (p->error_indicator) {
20344 D(p->level--);
20345 return NULL;
20346 }
20347 void * _res = NULL;
20348 int _mark = p->mark;
20349 { // 'with'
20350 if (p->error_indicator) {
20351 D(p->level--);
20352 return NULL;
20353 }
20354 D(fprintf(stderr, "%*c> _tmp_17[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'with'"));
20355 Token * _keyword;
20356 if (
20357 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
20358 )
20359 {
20360 D(fprintf(stderr, "%*c+ _tmp_17[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'with'"));
20361 _res = _keyword;
20362 goto done;
20363 }
20364 p->mark = _mark;
20365 D(fprintf(stderr, "%*c%s _tmp_17[%d-%d]: %s failed!\n", p->level, ' ',
20366 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'with'"));
20367 }
20368 { // ASYNC
20369 if (p->error_indicator) {
20370 D(p->level--);
20371 return NULL;
20372 }
20373 D(fprintf(stderr, "%*c> _tmp_17[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC"));
20374 Token * async_var;
20375 if (
20376 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
20377 )
20378 {
20379 D(fprintf(stderr, "%*c+ _tmp_17[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC"));
20380 _res = async_var;
20381 goto done;
20382 }
20383 p->mark = _mark;
20384 D(fprintf(stderr, "%*c%s _tmp_17[%d-%d]: %s failed!\n", p->level, ' ',
20385 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC"));
20386 }
20387 _res = NULL;
20388 done:
20389 D(p->level--);
20390 return _res;
20391}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000020392
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020393// _tmp_18: 'for' | ASYNC
20394static void *
20395_tmp_18_rule(Parser *p)
20396{
20397 D(p->level++);
20398 if (p->error_indicator) {
20399 D(p->level--);
20400 return NULL;
20401 }
20402 void * _res = NULL;
20403 int _mark = p->mark;
20404 { // 'for'
20405 if (p->error_indicator) {
20406 D(p->level--);
20407 return NULL;
20408 }
20409 D(fprintf(stderr, "%*c> _tmp_18[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'for'"));
20410 Token * _keyword;
20411 if (
20412 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
20413 )
20414 {
20415 D(fprintf(stderr, "%*c+ _tmp_18[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'for'"));
20416 _res = _keyword;
20417 goto done;
20418 }
20419 p->mark = _mark;
20420 D(fprintf(stderr, "%*c%s _tmp_18[%d-%d]: %s failed!\n", p->level, ' ',
20421 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'for'"));
20422 }
20423 { // ASYNC
20424 if (p->error_indicator) {
20425 D(p->level--);
20426 return NULL;
20427 }
20428 D(fprintf(stderr, "%*c> _tmp_18[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC"));
20429 Token * async_var;
20430 if (
20431 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
20432 )
20433 {
20434 D(fprintf(stderr, "%*c+ _tmp_18[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC"));
20435 _res = async_var;
20436 goto done;
20437 }
20438 p->mark = _mark;
20439 D(fprintf(stderr, "%*c%s _tmp_18[%d-%d]: %s failed!\n", p->level, ' ',
20440 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC"));
20441 }
20442 _res = NULL;
20443 done:
20444 D(p->level--);
20445 return _res;
20446}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000020447
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020448// _tmp_19: '=' annotated_rhs
20449static void *
20450_tmp_19_rule(Parser *p)
20451{
20452 D(p->level++);
20453 if (p->error_indicator) {
20454 D(p->level--);
20455 return NULL;
20456 }
20457 void * _res = NULL;
20458 int _mark = p->mark;
20459 { // '=' annotated_rhs
20460 if (p->error_indicator) {
20461 D(p->level--);
20462 return NULL;
20463 }
20464 D(fprintf(stderr, "%*c> _tmp_19[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
20465 Token * _literal;
20466 expr_ty d;
20467 if (
20468 (_literal = _PyPegen_expect_token(p, 22)) // token='='
20469 &&
20470 (d = annotated_rhs_rule(p)) // annotated_rhs
20471 )
20472 {
20473 D(fprintf(stderr, "%*c+ _tmp_19[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
20474 _res = d;
20475 if (_res == NULL && PyErr_Occurred()) {
20476 p->error_indicator = 1;
20477 D(p->level--);
20478 return NULL;
20479 }
20480 goto done;
20481 }
20482 p->mark = _mark;
20483 D(fprintf(stderr, "%*c%s _tmp_19[%d-%d]: %s failed!\n", p->level, ' ',
20484 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'=' annotated_rhs"));
20485 }
20486 _res = NULL;
20487 done:
20488 D(p->level--);
20489 return _res;
20490}
20491
20492// _tmp_20: '(' single_target ')' | single_subscript_attribute_target
20493static void *
20494_tmp_20_rule(Parser *p)
20495{
20496 D(p->level++);
20497 if (p->error_indicator) {
20498 D(p->level--);
20499 return NULL;
20500 }
20501 void * _res = NULL;
20502 int _mark = p->mark;
20503 { // '(' single_target ')'
20504 if (p->error_indicator) {
20505 D(p->level--);
20506 return NULL;
20507 }
20508 D(fprintf(stderr, "%*c> _tmp_20[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
20509 Token * _literal;
20510 Token * _literal_1;
20511 expr_ty b;
20512 if (
20513 (_literal = _PyPegen_expect_token(p, 7)) // token='('
20514 &&
20515 (b = single_target_rule(p)) // single_target
20516 &&
20517 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
20518 )
20519 {
20520 D(fprintf(stderr, "%*c+ _tmp_20[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
20521 _res = b;
20522 if (_res == NULL && PyErr_Occurred()) {
20523 p->error_indicator = 1;
20524 D(p->level--);
20525 return NULL;
20526 }
20527 goto done;
20528 }
20529 p->mark = _mark;
20530 D(fprintf(stderr, "%*c%s _tmp_20[%d-%d]: %s failed!\n", p->level, ' ',
20531 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' single_target ')'"));
20532 }
20533 { // single_subscript_attribute_target
20534 if (p->error_indicator) {
20535 D(p->level--);
20536 return NULL;
20537 }
20538 D(fprintf(stderr, "%*c> _tmp_20[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "single_subscript_attribute_target"));
20539 expr_ty single_subscript_attribute_target_var;
20540 if (
20541 (single_subscript_attribute_target_var = single_subscript_attribute_target_rule(p)) // single_subscript_attribute_target
20542 )
20543 {
20544 D(fprintf(stderr, "%*c+ _tmp_20[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "single_subscript_attribute_target"));
20545 _res = single_subscript_attribute_target_var;
20546 goto done;
20547 }
20548 p->mark = _mark;
20549 D(fprintf(stderr, "%*c%s _tmp_20[%d-%d]: %s failed!\n", p->level, ' ',
20550 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "single_subscript_attribute_target"));
20551 }
20552 _res = NULL;
20553 done:
20554 D(p->level--);
20555 return _res;
20556}
20557
20558// _tmp_21: '=' annotated_rhs
20559static void *
20560_tmp_21_rule(Parser *p)
20561{
20562 D(p->level++);
20563 if (p->error_indicator) {
20564 D(p->level--);
20565 return NULL;
20566 }
20567 void * _res = NULL;
20568 int _mark = p->mark;
20569 { // '=' annotated_rhs
20570 if (p->error_indicator) {
20571 D(p->level--);
20572 return NULL;
20573 }
20574 D(fprintf(stderr, "%*c> _tmp_21[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
20575 Token * _literal;
20576 expr_ty d;
20577 if (
20578 (_literal = _PyPegen_expect_token(p, 22)) // token='='
20579 &&
20580 (d = annotated_rhs_rule(p)) // annotated_rhs
20581 )
20582 {
20583 D(fprintf(stderr, "%*c+ _tmp_21[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
20584 _res = d;
20585 if (_res == NULL && PyErr_Occurred()) {
20586 p->error_indicator = 1;
20587 D(p->level--);
20588 return NULL;
20589 }
20590 goto done;
20591 }
20592 p->mark = _mark;
20593 D(fprintf(stderr, "%*c%s _tmp_21[%d-%d]: %s failed!\n", p->level, ' ',
20594 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'=' annotated_rhs"));
20595 }
20596 _res = NULL;
20597 done:
20598 D(p->level--);
20599 return _res;
20600}
20601
20602// _loop1_22: (star_targets '=')
20603static asdl_seq *
20604_loop1_22_rule(Parser *p)
20605{
20606 D(p->level++);
20607 if (p->error_indicator) {
20608 D(p->level--);
20609 return NULL;
20610 }
20611 void *_res = NULL;
20612 int _mark = p->mark;
20613 int _start_mark = p->mark;
20614 void **_children = PyMem_Malloc(sizeof(void *));
20615 if (!_children) {
20616 p->error_indicator = 1;
20617 PyErr_NoMemory();
20618 D(p->level--);
20619 return NULL;
20620 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010020621 Py_ssize_t _children_capacity = 1;
20622 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020623 { // (star_targets '=')
20624 if (p->error_indicator) {
20625 D(p->level--);
20626 return NULL;
20627 }
20628 D(fprintf(stderr, "%*c> _loop1_22[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')"));
Pablo Galindoda743502021-04-15 14:06:39 +010020629 void *_tmp_168_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020630 while (
Pablo Galindoda743502021-04-15 14:06:39 +010020631 (_tmp_168_var = _tmp_168_rule(p)) // star_targets '='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020632 )
20633 {
Pablo Galindoda743502021-04-15 14:06:39 +010020634 _res = _tmp_168_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020635 if (_n == _children_capacity) {
20636 _children_capacity *= 2;
20637 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20638 if (!_new_children) {
20639 p->error_indicator = 1;
20640 PyErr_NoMemory();
20641 D(p->level--);
20642 return NULL;
20643 }
20644 _children = _new_children;
20645 }
20646 _children[_n++] = _res;
20647 _mark = p->mark;
20648 }
20649 p->mark = _mark;
20650 D(fprintf(stderr, "%*c%s _loop1_22[%d-%d]: %s failed!\n", p->level, ' ',
20651 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(star_targets '=')"));
20652 }
20653 if (_n == 0 || p->error_indicator) {
20654 PyMem_Free(_children);
20655 D(p->level--);
20656 return NULL;
20657 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020658 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020659 if (!_seq) {
20660 PyMem_Free(_children);
20661 p->error_indicator = 1;
20662 PyErr_NoMemory();
20663 D(p->level--);
20664 return NULL;
20665 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020666 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020667 PyMem_Free(_children);
20668 _PyPegen_insert_memo(p, _start_mark, _loop1_22_type, _seq);
20669 D(p->level--);
20670 return _seq;
20671}
20672
20673// _tmp_23: yield_expr | star_expressions
20674static void *
20675_tmp_23_rule(Parser *p)
20676{
20677 D(p->level++);
20678 if (p->error_indicator) {
20679 D(p->level--);
20680 return NULL;
20681 }
20682 void * _res = NULL;
20683 int _mark = p->mark;
20684 { // yield_expr
20685 if (p->error_indicator) {
20686 D(p->level--);
20687 return NULL;
20688 }
20689 D(fprintf(stderr, "%*c> _tmp_23[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
20690 expr_ty yield_expr_var;
20691 if (
20692 (yield_expr_var = yield_expr_rule(p)) // yield_expr
20693 )
20694 {
20695 D(fprintf(stderr, "%*c+ _tmp_23[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
20696 _res = yield_expr_var;
20697 goto done;
20698 }
20699 p->mark = _mark;
20700 D(fprintf(stderr, "%*c%s _tmp_23[%d-%d]: %s failed!\n", p->level, ' ',
20701 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
20702 }
20703 { // star_expressions
20704 if (p->error_indicator) {
20705 D(p->level--);
20706 return NULL;
20707 }
20708 D(fprintf(stderr, "%*c> _tmp_23[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
20709 expr_ty star_expressions_var;
20710 if (
20711 (star_expressions_var = star_expressions_rule(p)) // star_expressions
20712 )
20713 {
20714 D(fprintf(stderr, "%*c+ _tmp_23[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
20715 _res = star_expressions_var;
20716 goto done;
20717 }
20718 p->mark = _mark;
20719 D(fprintf(stderr, "%*c%s _tmp_23[%d-%d]: %s failed!\n", p->level, ' ',
20720 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
20721 }
20722 _res = NULL;
20723 done:
20724 D(p->level--);
20725 return _res;
20726}
20727
20728// _tmp_24: yield_expr | star_expressions
20729static void *
20730_tmp_24_rule(Parser *p)
20731{
20732 D(p->level++);
20733 if (p->error_indicator) {
20734 D(p->level--);
20735 return NULL;
20736 }
20737 void * _res = NULL;
20738 int _mark = p->mark;
20739 { // yield_expr
20740 if (p->error_indicator) {
20741 D(p->level--);
20742 return NULL;
20743 }
20744 D(fprintf(stderr, "%*c> _tmp_24[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
20745 expr_ty yield_expr_var;
20746 if (
20747 (yield_expr_var = yield_expr_rule(p)) // yield_expr
20748 )
20749 {
20750 D(fprintf(stderr, "%*c+ _tmp_24[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
20751 _res = yield_expr_var;
20752 goto done;
20753 }
20754 p->mark = _mark;
20755 D(fprintf(stderr, "%*c%s _tmp_24[%d-%d]: %s failed!\n", p->level, ' ',
20756 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
20757 }
20758 { // star_expressions
20759 if (p->error_indicator) {
20760 D(p->level--);
20761 return NULL;
20762 }
20763 D(fprintf(stderr, "%*c> _tmp_24[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
20764 expr_ty star_expressions_var;
20765 if (
20766 (star_expressions_var = star_expressions_rule(p)) // star_expressions
20767 )
20768 {
20769 D(fprintf(stderr, "%*c+ _tmp_24[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
20770 _res = star_expressions_var;
20771 goto done;
20772 }
20773 p->mark = _mark;
20774 D(fprintf(stderr, "%*c%s _tmp_24[%d-%d]: %s failed!\n", p->level, ' ',
20775 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
20776 }
20777 _res = NULL;
20778 done:
20779 D(p->level--);
20780 return _res;
20781}
20782
20783// _loop0_26: ',' NAME
20784static asdl_seq *
20785_loop0_26_rule(Parser *p)
20786{
20787 D(p->level++);
20788 if (p->error_indicator) {
20789 D(p->level--);
20790 return NULL;
20791 }
20792 void *_res = NULL;
20793 int _mark = p->mark;
20794 int _start_mark = p->mark;
20795 void **_children = PyMem_Malloc(sizeof(void *));
20796 if (!_children) {
20797 p->error_indicator = 1;
20798 PyErr_NoMemory();
20799 D(p->level--);
20800 return NULL;
20801 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010020802 Py_ssize_t _children_capacity = 1;
20803 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020804 { // ',' NAME
20805 if (p->error_indicator) {
20806 D(p->level--);
20807 return NULL;
20808 }
20809 D(fprintf(stderr, "%*c> _loop0_26[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' NAME"));
20810 Token * _literal;
20811 expr_ty elem;
20812 while (
20813 (_literal = _PyPegen_expect_token(p, 12)) // token=','
20814 &&
20815 (elem = _PyPegen_name_token(p)) // NAME
20816 )
20817 {
20818 _res = elem;
20819 if (_res == NULL && PyErr_Occurred()) {
20820 p->error_indicator = 1;
20821 PyMem_Free(_children);
20822 D(p->level--);
20823 return NULL;
20824 }
20825 if (_n == _children_capacity) {
20826 _children_capacity *= 2;
20827 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20828 if (!_new_children) {
20829 p->error_indicator = 1;
20830 PyErr_NoMemory();
20831 D(p->level--);
20832 return NULL;
20833 }
20834 _children = _new_children;
20835 }
20836 _children[_n++] = _res;
20837 _mark = p->mark;
20838 }
20839 p->mark = _mark;
20840 D(fprintf(stderr, "%*c%s _loop0_26[%d-%d]: %s failed!\n", p->level, ' ',
20841 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' NAME"));
20842 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020843 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020844 if (!_seq) {
20845 PyMem_Free(_children);
20846 p->error_indicator = 1;
20847 PyErr_NoMemory();
20848 D(p->level--);
20849 return NULL;
20850 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020851 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020852 PyMem_Free(_children);
20853 _PyPegen_insert_memo(p, _start_mark, _loop0_26_type, _seq);
20854 D(p->level--);
20855 return _seq;
20856}
20857
20858// _gather_25: NAME _loop0_26
20859static asdl_seq *
20860_gather_25_rule(Parser *p)
20861{
20862 D(p->level++);
20863 if (p->error_indicator) {
20864 D(p->level--);
20865 return NULL;
20866 }
20867 asdl_seq * _res = NULL;
20868 int _mark = p->mark;
20869 { // NAME _loop0_26
20870 if (p->error_indicator) {
20871 D(p->level--);
20872 return NULL;
20873 }
20874 D(fprintf(stderr, "%*c> _gather_25[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME _loop0_26"));
20875 expr_ty elem;
20876 asdl_seq * seq;
20877 if (
20878 (elem = _PyPegen_name_token(p)) // NAME
20879 &&
20880 (seq = _loop0_26_rule(p)) // _loop0_26
20881 )
20882 {
20883 D(fprintf(stderr, "%*c+ _gather_25[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME _loop0_26"));
20884 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
20885 goto done;
20886 }
20887 p->mark = _mark;
20888 D(fprintf(stderr, "%*c%s _gather_25[%d-%d]: %s failed!\n", p->level, ' ',
20889 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME _loop0_26"));
20890 }
20891 _res = NULL;
20892 done:
20893 D(p->level--);
20894 return _res;
20895}
20896
20897// _loop0_28: ',' NAME
20898static asdl_seq *
20899_loop0_28_rule(Parser *p)
20900{
20901 D(p->level++);
20902 if (p->error_indicator) {
20903 D(p->level--);
20904 return NULL;
20905 }
20906 void *_res = NULL;
20907 int _mark = p->mark;
20908 int _start_mark = p->mark;
20909 void **_children = PyMem_Malloc(sizeof(void *));
20910 if (!_children) {
20911 p->error_indicator = 1;
20912 PyErr_NoMemory();
20913 D(p->level--);
20914 return NULL;
20915 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010020916 Py_ssize_t _children_capacity = 1;
20917 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020918 { // ',' NAME
20919 if (p->error_indicator) {
20920 D(p->level--);
20921 return NULL;
20922 }
20923 D(fprintf(stderr, "%*c> _loop0_28[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' NAME"));
20924 Token * _literal;
20925 expr_ty elem;
20926 while (
20927 (_literal = _PyPegen_expect_token(p, 12)) // token=','
20928 &&
20929 (elem = _PyPegen_name_token(p)) // NAME
20930 )
20931 {
20932 _res = elem;
20933 if (_res == NULL && PyErr_Occurred()) {
20934 p->error_indicator = 1;
20935 PyMem_Free(_children);
20936 D(p->level--);
20937 return NULL;
20938 }
20939 if (_n == _children_capacity) {
20940 _children_capacity *= 2;
20941 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20942 if (!_new_children) {
20943 p->error_indicator = 1;
20944 PyErr_NoMemory();
20945 D(p->level--);
20946 return NULL;
20947 }
20948 _children = _new_children;
20949 }
20950 _children[_n++] = _res;
20951 _mark = p->mark;
20952 }
20953 p->mark = _mark;
20954 D(fprintf(stderr, "%*c%s _loop0_28[%d-%d]: %s failed!\n", p->level, ' ',
20955 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' NAME"));
20956 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020957 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020958 if (!_seq) {
20959 PyMem_Free(_children);
20960 p->error_indicator = 1;
20961 PyErr_NoMemory();
20962 D(p->level--);
20963 return NULL;
20964 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020965 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020966 PyMem_Free(_children);
20967 _PyPegen_insert_memo(p, _start_mark, _loop0_28_type, _seq);
20968 D(p->level--);
20969 return _seq;
20970}
20971
20972// _gather_27: NAME _loop0_28
20973static asdl_seq *
20974_gather_27_rule(Parser *p)
20975{
20976 D(p->level++);
20977 if (p->error_indicator) {
20978 D(p->level--);
20979 return NULL;
20980 }
20981 asdl_seq * _res = NULL;
20982 int _mark = p->mark;
20983 { // NAME _loop0_28
20984 if (p->error_indicator) {
20985 D(p->level--);
20986 return NULL;
20987 }
20988 D(fprintf(stderr, "%*c> _gather_27[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME _loop0_28"));
20989 expr_ty elem;
20990 asdl_seq * seq;
20991 if (
20992 (elem = _PyPegen_name_token(p)) // NAME
20993 &&
20994 (seq = _loop0_28_rule(p)) // _loop0_28
20995 )
20996 {
20997 D(fprintf(stderr, "%*c+ _gather_27[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME _loop0_28"));
20998 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
20999 goto done;
21000 }
21001 p->mark = _mark;
21002 D(fprintf(stderr, "%*c%s _gather_27[%d-%d]: %s failed!\n", p->level, ' ',
21003 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME _loop0_28"));
21004 }
21005 _res = NULL;
21006 done:
21007 D(p->level--);
21008 return _res;
21009}
21010
21011// _tmp_29: ',' expression
21012static void *
21013_tmp_29_rule(Parser *p)
21014{
21015 D(p->level++);
21016 if (p->error_indicator) {
21017 D(p->level--);
21018 return NULL;
21019 }
21020 void * _res = NULL;
21021 int _mark = p->mark;
21022 { // ',' expression
21023 if (p->error_indicator) {
21024 D(p->level--);
21025 return NULL;
21026 }
21027 D(fprintf(stderr, "%*c> _tmp_29[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
21028 Token * _literal;
21029 expr_ty z;
21030 if (
21031 (_literal = _PyPegen_expect_token(p, 12)) // token=','
21032 &&
21033 (z = expression_rule(p)) // expression
21034 )
21035 {
21036 D(fprintf(stderr, "%*c+ _tmp_29[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' expression"));
21037 _res = z;
21038 if (_res == NULL && PyErr_Occurred()) {
21039 p->error_indicator = 1;
21040 D(p->level--);
21041 return NULL;
21042 }
21043 goto done;
21044 }
21045 p->mark = _mark;
21046 D(fprintf(stderr, "%*c%s _tmp_29[%d-%d]: %s failed!\n", p->level, ' ',
21047 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
21048 }
21049 _res = NULL;
21050 done:
21051 D(p->level--);
21052 return _res;
21053}
21054
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021055// _tmp_30: ';' | NEWLINE
21056static void *
21057_tmp_30_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021058{
21059 D(p->level++);
21060 if (p->error_indicator) {
21061 D(p->level--);
21062 return NULL;
21063 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021064 void * _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021065 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021066 { // ';'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021067 if (p->error_indicator) {
21068 D(p->level--);
21069 return NULL;
21070 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021071 D(fprintf(stderr, "%*c> _tmp_30[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "';'"));
21072 Token * _literal;
21073 if (
21074 (_literal = _PyPegen_expect_token(p, 13)) // token=';'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021075 )
21076 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021077 D(fprintf(stderr, "%*c+ _tmp_30[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "';'"));
21078 _res = _literal;
21079 goto done;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021080 }
21081 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021082 D(fprintf(stderr, "%*c%s _tmp_30[%d-%d]: %s failed!\n", p->level, ' ',
21083 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "';'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021084 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021085 { // NEWLINE
21086 if (p->error_indicator) {
21087 D(p->level--);
21088 return NULL;
21089 }
21090 D(fprintf(stderr, "%*c> _tmp_30[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
21091 Token * newline_var;
21092 if (
21093 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
21094 )
21095 {
21096 D(fprintf(stderr, "%*c+ _tmp_30[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
21097 _res = newline_var;
21098 goto done;
21099 }
21100 p->mark = _mark;
21101 D(fprintf(stderr, "%*c%s _tmp_30[%d-%d]: %s failed!\n", p->level, ' ',
21102 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021103 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021104 _res = NULL;
21105 done:
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021106 D(p->level--);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021107 return _res;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021108}
21109
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021110// _loop0_31: ('.' | '...')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021111static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021112_loop0_31_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021113{
21114 D(p->level++);
21115 if (p->error_indicator) {
21116 D(p->level--);
21117 return NULL;
21118 }
21119 void *_res = NULL;
21120 int _mark = p->mark;
21121 int _start_mark = p->mark;
21122 void **_children = PyMem_Malloc(sizeof(void *));
21123 if (!_children) {
21124 p->error_indicator = 1;
21125 PyErr_NoMemory();
21126 D(p->level--);
21127 return NULL;
21128 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010021129 Py_ssize_t _children_capacity = 1;
21130 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021131 { // ('.' | '...')
21132 if (p->error_indicator) {
21133 D(p->level--);
21134 return NULL;
21135 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021136 D(fprintf(stderr, "%*c> _loop0_31[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('.' | '...')"));
Pablo Galindoda743502021-04-15 14:06:39 +010021137 void *_tmp_169_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021138 while (
Pablo Galindoda743502021-04-15 14:06:39 +010021139 (_tmp_169_var = _tmp_169_rule(p)) // '.' | '...'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021140 )
21141 {
Pablo Galindoda743502021-04-15 14:06:39 +010021142 _res = _tmp_169_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021143 if (_n == _children_capacity) {
21144 _children_capacity *= 2;
21145 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21146 if (!_new_children) {
21147 p->error_indicator = 1;
21148 PyErr_NoMemory();
21149 D(p->level--);
21150 return NULL;
21151 }
21152 _children = _new_children;
21153 }
21154 _children[_n++] = _res;
21155 _mark = p->mark;
21156 }
21157 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021158 D(fprintf(stderr, "%*c%s _loop0_31[%d-%d]: %s failed!\n", p->level, ' ',
21159 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('.' | '...')"));
21160 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021161 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021162 if (!_seq) {
21163 PyMem_Free(_children);
21164 p->error_indicator = 1;
21165 PyErr_NoMemory();
21166 D(p->level--);
21167 return NULL;
21168 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021169 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021170 PyMem_Free(_children);
21171 _PyPegen_insert_memo(p, _start_mark, _loop0_31_type, _seq);
21172 D(p->level--);
21173 return _seq;
21174}
21175
21176// _loop1_32: ('.' | '...')
21177static asdl_seq *
21178_loop1_32_rule(Parser *p)
21179{
21180 D(p->level++);
21181 if (p->error_indicator) {
21182 D(p->level--);
21183 return NULL;
21184 }
21185 void *_res = NULL;
21186 int _mark = p->mark;
21187 int _start_mark = p->mark;
21188 void **_children = PyMem_Malloc(sizeof(void *));
21189 if (!_children) {
21190 p->error_indicator = 1;
21191 PyErr_NoMemory();
21192 D(p->level--);
21193 return NULL;
21194 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010021195 Py_ssize_t _children_capacity = 1;
21196 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021197 { // ('.' | '...')
21198 if (p->error_indicator) {
21199 D(p->level--);
21200 return NULL;
21201 }
21202 D(fprintf(stderr, "%*c> _loop1_32[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('.' | '...')"));
Pablo Galindoda743502021-04-15 14:06:39 +010021203 void *_tmp_170_var;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021204 while (
Pablo Galindoda743502021-04-15 14:06:39 +010021205 (_tmp_170_var = _tmp_170_rule(p)) // '.' | '...'
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021206 )
21207 {
Pablo Galindoda743502021-04-15 14:06:39 +010021208 _res = _tmp_170_var;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021209 if (_n == _children_capacity) {
21210 _children_capacity *= 2;
21211 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21212 if (!_new_children) {
21213 p->error_indicator = 1;
21214 PyErr_NoMemory();
21215 D(p->level--);
21216 return NULL;
21217 }
21218 _children = _new_children;
21219 }
21220 _children[_n++] = _res;
21221 _mark = p->mark;
21222 }
21223 p->mark = _mark;
21224 D(fprintf(stderr, "%*c%s _loop1_32[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021225 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('.' | '...')"));
21226 }
21227 if (_n == 0 || p->error_indicator) {
21228 PyMem_Free(_children);
21229 D(p->level--);
21230 return NULL;
21231 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021232 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021233 if (!_seq) {
21234 PyMem_Free(_children);
21235 p->error_indicator = 1;
21236 PyErr_NoMemory();
21237 D(p->level--);
21238 return NULL;
21239 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021240 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021241 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021242 _PyPegen_insert_memo(p, _start_mark, _loop1_32_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021243 D(p->level--);
21244 return _seq;
21245}
21246
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021247// _loop0_34: ',' import_from_as_name
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021248static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021249_loop0_34_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021250{
21251 D(p->level++);
21252 if (p->error_indicator) {
21253 D(p->level--);
21254 return NULL;
21255 }
21256 void *_res = NULL;
21257 int _mark = p->mark;
21258 int _start_mark = p->mark;
21259 void **_children = PyMem_Malloc(sizeof(void *));
21260 if (!_children) {
21261 p->error_indicator = 1;
21262 PyErr_NoMemory();
21263 D(p->level--);
21264 return NULL;
21265 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010021266 Py_ssize_t _children_capacity = 1;
21267 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021268 { // ',' import_from_as_name
21269 if (p->error_indicator) {
21270 D(p->level--);
21271 return NULL;
21272 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021273 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 +010021274 Token * _literal;
21275 alias_ty elem;
21276 while (
21277 (_literal = _PyPegen_expect_token(p, 12)) // token=','
21278 &&
21279 (elem = import_from_as_name_rule(p)) // import_from_as_name
21280 )
21281 {
21282 _res = elem;
21283 if (_res == NULL && PyErr_Occurred()) {
21284 p->error_indicator = 1;
21285 PyMem_Free(_children);
21286 D(p->level--);
21287 return NULL;
21288 }
21289 if (_n == _children_capacity) {
21290 _children_capacity *= 2;
21291 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21292 if (!_new_children) {
21293 p->error_indicator = 1;
21294 PyErr_NoMemory();
21295 D(p->level--);
21296 return NULL;
21297 }
21298 _children = _new_children;
21299 }
21300 _children[_n++] = _res;
21301 _mark = p->mark;
21302 }
21303 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021304 D(fprintf(stderr, "%*c%s _loop0_34[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021305 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' import_from_as_name"));
21306 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021307 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021308 if (!_seq) {
21309 PyMem_Free(_children);
21310 p->error_indicator = 1;
21311 PyErr_NoMemory();
21312 D(p->level--);
21313 return NULL;
21314 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021315 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021316 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021317 _PyPegen_insert_memo(p, _start_mark, _loop0_34_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021318 D(p->level--);
21319 return _seq;
21320}
21321
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021322// _gather_33: import_from_as_name _loop0_34
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021323static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021324_gather_33_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021325{
21326 D(p->level++);
21327 if (p->error_indicator) {
21328 D(p->level--);
21329 return NULL;
21330 }
21331 asdl_seq * _res = NULL;
21332 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021333 { // import_from_as_name _loop0_34
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021334 if (p->error_indicator) {
21335 D(p->level--);
21336 return NULL;
21337 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021338 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 +010021339 alias_ty elem;
21340 asdl_seq * seq;
21341 if (
21342 (elem = import_from_as_name_rule(p)) // import_from_as_name
21343 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021344 (seq = _loop0_34_rule(p)) // _loop0_34
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021345 )
21346 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021347 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 +010021348 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
21349 goto done;
21350 }
21351 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021352 D(fprintf(stderr, "%*c%s _gather_33[%d-%d]: %s failed!\n", p->level, ' ',
21353 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from_as_name _loop0_34"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021354 }
21355 _res = NULL;
21356 done:
21357 D(p->level--);
21358 return _res;
21359}
21360
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021361// _tmp_35: 'as' NAME
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021362static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021363_tmp_35_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021364{
21365 D(p->level++);
21366 if (p->error_indicator) {
21367 D(p->level--);
21368 return NULL;
21369 }
21370 void * _res = NULL;
21371 int _mark = p->mark;
21372 { // 'as' NAME
21373 if (p->error_indicator) {
21374 D(p->level--);
21375 return NULL;
21376 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021377 D(fprintf(stderr, "%*c> _tmp_35[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021378 Token * _keyword;
21379 expr_ty z;
21380 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021381 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021382 &&
21383 (z = _PyPegen_name_token(p)) // NAME
21384 )
21385 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021386 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 +010021387 _res = z;
21388 if (_res == NULL && PyErr_Occurred()) {
21389 p->error_indicator = 1;
21390 D(p->level--);
21391 return NULL;
21392 }
21393 goto done;
21394 }
21395 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021396 D(fprintf(stderr, "%*c%s _tmp_35[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021397 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
21398 }
21399 _res = NULL;
21400 done:
21401 D(p->level--);
21402 return _res;
21403}
21404
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021405// _loop0_37: ',' dotted_as_name
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021406static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021407_loop0_37_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021408{
21409 D(p->level++);
21410 if (p->error_indicator) {
21411 D(p->level--);
21412 return NULL;
21413 }
21414 void *_res = NULL;
21415 int _mark = p->mark;
21416 int _start_mark = p->mark;
21417 void **_children = PyMem_Malloc(sizeof(void *));
21418 if (!_children) {
21419 p->error_indicator = 1;
21420 PyErr_NoMemory();
21421 D(p->level--);
21422 return NULL;
21423 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010021424 Py_ssize_t _children_capacity = 1;
21425 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021426 { // ',' dotted_as_name
21427 if (p->error_indicator) {
21428 D(p->level--);
21429 return NULL;
21430 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021431 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 +010021432 Token * _literal;
21433 alias_ty elem;
21434 while (
21435 (_literal = _PyPegen_expect_token(p, 12)) // token=','
21436 &&
21437 (elem = dotted_as_name_rule(p)) // dotted_as_name
21438 )
21439 {
21440 _res = elem;
21441 if (_res == NULL && PyErr_Occurred()) {
21442 p->error_indicator = 1;
21443 PyMem_Free(_children);
21444 D(p->level--);
21445 return NULL;
21446 }
21447 if (_n == _children_capacity) {
21448 _children_capacity *= 2;
21449 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21450 if (!_new_children) {
21451 p->error_indicator = 1;
21452 PyErr_NoMemory();
21453 D(p->level--);
21454 return NULL;
21455 }
21456 _children = _new_children;
21457 }
21458 _children[_n++] = _res;
21459 _mark = p->mark;
21460 }
21461 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021462 D(fprintf(stderr, "%*c%s _loop0_37[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021463 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' dotted_as_name"));
21464 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021465 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021466 if (!_seq) {
21467 PyMem_Free(_children);
21468 p->error_indicator = 1;
21469 PyErr_NoMemory();
21470 D(p->level--);
21471 return NULL;
21472 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021473 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021474 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021475 _PyPegen_insert_memo(p, _start_mark, _loop0_37_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021476 D(p->level--);
21477 return _seq;
21478}
21479
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021480// _gather_36: dotted_as_name _loop0_37
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021481static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021482_gather_36_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021483{
21484 D(p->level++);
21485 if (p->error_indicator) {
21486 D(p->level--);
21487 return NULL;
21488 }
21489 asdl_seq * _res = NULL;
21490 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021491 { // dotted_as_name _loop0_37
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021492 if (p->error_indicator) {
21493 D(p->level--);
21494 return NULL;
21495 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021496 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 +010021497 alias_ty elem;
21498 asdl_seq * seq;
21499 if (
21500 (elem = dotted_as_name_rule(p)) // dotted_as_name
21501 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021502 (seq = _loop0_37_rule(p)) // _loop0_37
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021503 )
21504 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021505 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 +010021506 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
21507 goto done;
21508 }
21509 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021510 D(fprintf(stderr, "%*c%s _gather_36[%d-%d]: %s failed!\n", p->level, ' ',
21511 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dotted_as_name _loop0_37"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021512 }
21513 _res = NULL;
21514 done:
21515 D(p->level--);
21516 return _res;
21517}
21518
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021519// _tmp_38: 'as' NAME
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021520static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021521_tmp_38_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021522{
21523 D(p->level++);
21524 if (p->error_indicator) {
21525 D(p->level--);
21526 return NULL;
21527 }
21528 void * _res = NULL;
21529 int _mark = p->mark;
21530 { // 'as' NAME
21531 if (p->error_indicator) {
21532 D(p->level--);
21533 return NULL;
21534 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021535 D(fprintf(stderr, "%*c> _tmp_38[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021536 Token * _keyword;
21537 expr_ty z;
21538 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021539 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021540 &&
21541 (z = _PyPegen_name_token(p)) // NAME
21542 )
21543 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021544 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 +010021545 _res = z;
21546 if (_res == NULL && PyErr_Occurred()) {
21547 p->error_indicator = 1;
21548 D(p->level--);
21549 return NULL;
21550 }
21551 goto done;
21552 }
21553 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021554 D(fprintf(stderr, "%*c%s _tmp_38[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021555 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
21556 }
21557 _res = NULL;
21558 done:
21559 D(p->level--);
21560 return _res;
21561}
21562
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021563// _loop0_40: ',' with_item
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021564static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021565_loop0_40_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021566{
21567 D(p->level++);
21568 if (p->error_indicator) {
21569 D(p->level--);
21570 return NULL;
21571 }
21572 void *_res = NULL;
21573 int _mark = p->mark;
21574 int _start_mark = p->mark;
21575 void **_children = PyMem_Malloc(sizeof(void *));
21576 if (!_children) {
21577 p->error_indicator = 1;
21578 PyErr_NoMemory();
21579 D(p->level--);
21580 return NULL;
21581 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010021582 Py_ssize_t _children_capacity = 1;
21583 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021584 { // ',' with_item
21585 if (p->error_indicator) {
21586 D(p->level--);
21587 return NULL;
21588 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021589 D(fprintf(stderr, "%*c> _loop0_40[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021590 Token * _literal;
21591 withitem_ty elem;
21592 while (
21593 (_literal = _PyPegen_expect_token(p, 12)) // token=','
21594 &&
21595 (elem = with_item_rule(p)) // with_item
21596 )
21597 {
21598 _res = elem;
21599 if (_res == NULL && PyErr_Occurred()) {
21600 p->error_indicator = 1;
21601 PyMem_Free(_children);
21602 D(p->level--);
21603 return NULL;
21604 }
21605 if (_n == _children_capacity) {
21606 _children_capacity *= 2;
21607 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21608 if (!_new_children) {
21609 p->error_indicator = 1;
21610 PyErr_NoMemory();
21611 D(p->level--);
21612 return NULL;
21613 }
21614 _children = _new_children;
21615 }
21616 _children[_n++] = _res;
21617 _mark = p->mark;
21618 }
21619 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021620 D(fprintf(stderr, "%*c%s _loop0_40[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021621 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
21622 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021623 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021624 if (!_seq) {
21625 PyMem_Free(_children);
21626 p->error_indicator = 1;
21627 PyErr_NoMemory();
21628 D(p->level--);
21629 return NULL;
21630 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021631 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021632 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021633 _PyPegen_insert_memo(p, _start_mark, _loop0_40_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021634 D(p->level--);
21635 return _seq;
21636}
21637
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021638// _gather_39: with_item _loop0_40
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021639static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021640_gather_39_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021641{
21642 D(p->level++);
21643 if (p->error_indicator) {
21644 D(p->level--);
21645 return NULL;
21646 }
21647 asdl_seq * _res = NULL;
21648 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021649 { // with_item _loop0_40
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021650 if (p->error_indicator) {
21651 D(p->level--);
21652 return NULL;
21653 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021654 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 +010021655 withitem_ty elem;
21656 asdl_seq * seq;
21657 if (
21658 (elem = with_item_rule(p)) // with_item
21659 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021660 (seq = _loop0_40_rule(p)) // _loop0_40
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021661 )
21662 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021663 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 +010021664 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
21665 goto done;
21666 }
21667 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021668 D(fprintf(stderr, "%*c%s _gather_39[%d-%d]: %s failed!\n", p->level, ' ',
21669 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_40"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021670 }
21671 _res = NULL;
21672 done:
21673 D(p->level--);
21674 return _res;
21675}
21676
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021677// _loop0_42: ',' with_item
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021678static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021679_loop0_42_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021680{
21681 D(p->level++);
21682 if (p->error_indicator) {
21683 D(p->level--);
21684 return NULL;
21685 }
21686 void *_res = NULL;
21687 int _mark = p->mark;
21688 int _start_mark = p->mark;
21689 void **_children = PyMem_Malloc(sizeof(void *));
21690 if (!_children) {
21691 p->error_indicator = 1;
21692 PyErr_NoMemory();
21693 D(p->level--);
21694 return NULL;
21695 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010021696 Py_ssize_t _children_capacity = 1;
21697 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021698 { // ',' with_item
21699 if (p->error_indicator) {
21700 D(p->level--);
21701 return NULL;
21702 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021703 D(fprintf(stderr, "%*c> _loop0_42[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021704 Token * _literal;
21705 withitem_ty elem;
21706 while (
21707 (_literal = _PyPegen_expect_token(p, 12)) // token=','
21708 &&
21709 (elem = with_item_rule(p)) // with_item
21710 )
21711 {
21712 _res = elem;
21713 if (_res == NULL && PyErr_Occurred()) {
21714 p->error_indicator = 1;
21715 PyMem_Free(_children);
21716 D(p->level--);
21717 return NULL;
21718 }
21719 if (_n == _children_capacity) {
21720 _children_capacity *= 2;
21721 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21722 if (!_new_children) {
21723 p->error_indicator = 1;
21724 PyErr_NoMemory();
21725 D(p->level--);
21726 return NULL;
21727 }
21728 _children = _new_children;
21729 }
21730 _children[_n++] = _res;
21731 _mark = p->mark;
21732 }
21733 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021734 D(fprintf(stderr, "%*c%s _loop0_42[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021735 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
21736 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021737 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021738 if (!_seq) {
21739 PyMem_Free(_children);
21740 p->error_indicator = 1;
21741 PyErr_NoMemory();
21742 D(p->level--);
21743 return NULL;
21744 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021745 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021746 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021747 _PyPegen_insert_memo(p, _start_mark, _loop0_42_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021748 D(p->level--);
21749 return _seq;
21750}
21751
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021752// _gather_41: with_item _loop0_42
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021753static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021754_gather_41_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021755{
21756 D(p->level++);
21757 if (p->error_indicator) {
21758 D(p->level--);
21759 return NULL;
21760 }
21761 asdl_seq * _res = NULL;
21762 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021763 { // with_item _loop0_42
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021764 if (p->error_indicator) {
21765 D(p->level--);
21766 return NULL;
21767 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021768 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 +010021769 withitem_ty elem;
21770 asdl_seq * seq;
21771 if (
21772 (elem = with_item_rule(p)) // with_item
21773 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021774 (seq = _loop0_42_rule(p)) // _loop0_42
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021775 )
21776 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021777 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 +010021778 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
21779 goto done;
21780 }
21781 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021782 D(fprintf(stderr, "%*c%s _gather_41[%d-%d]: %s failed!\n", p->level, ' ',
21783 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_42"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021784 }
21785 _res = NULL;
21786 done:
21787 D(p->level--);
21788 return _res;
21789}
21790
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021791// _loop0_44: ',' with_item
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021792static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021793_loop0_44_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021794{
21795 D(p->level++);
21796 if (p->error_indicator) {
21797 D(p->level--);
21798 return NULL;
21799 }
21800 void *_res = NULL;
21801 int _mark = p->mark;
21802 int _start_mark = p->mark;
21803 void **_children = PyMem_Malloc(sizeof(void *));
21804 if (!_children) {
21805 p->error_indicator = 1;
21806 PyErr_NoMemory();
21807 D(p->level--);
21808 return NULL;
21809 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010021810 Py_ssize_t _children_capacity = 1;
21811 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021812 { // ',' with_item
21813 if (p->error_indicator) {
21814 D(p->level--);
21815 return NULL;
21816 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021817 D(fprintf(stderr, "%*c> _loop0_44[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021818 Token * _literal;
21819 withitem_ty elem;
21820 while (
21821 (_literal = _PyPegen_expect_token(p, 12)) // token=','
21822 &&
21823 (elem = with_item_rule(p)) // with_item
21824 )
21825 {
21826 _res = elem;
21827 if (_res == NULL && PyErr_Occurred()) {
21828 p->error_indicator = 1;
21829 PyMem_Free(_children);
21830 D(p->level--);
21831 return NULL;
21832 }
21833 if (_n == _children_capacity) {
21834 _children_capacity *= 2;
21835 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21836 if (!_new_children) {
21837 p->error_indicator = 1;
21838 PyErr_NoMemory();
21839 D(p->level--);
21840 return NULL;
21841 }
21842 _children = _new_children;
21843 }
21844 _children[_n++] = _res;
21845 _mark = p->mark;
21846 }
21847 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021848 D(fprintf(stderr, "%*c%s _loop0_44[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021849 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
21850 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021851 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021852 if (!_seq) {
21853 PyMem_Free(_children);
21854 p->error_indicator = 1;
21855 PyErr_NoMemory();
21856 D(p->level--);
21857 return NULL;
21858 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021859 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021860 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021861 _PyPegen_insert_memo(p, _start_mark, _loop0_44_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021862 D(p->level--);
21863 return _seq;
21864}
21865
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021866// _gather_43: with_item _loop0_44
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021867static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021868_gather_43_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021869{
21870 D(p->level++);
21871 if (p->error_indicator) {
21872 D(p->level--);
21873 return NULL;
21874 }
21875 asdl_seq * _res = NULL;
21876 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021877 { // with_item _loop0_44
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021878 if (p->error_indicator) {
21879 D(p->level--);
21880 return NULL;
21881 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021882 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 +010021883 withitem_ty elem;
21884 asdl_seq * seq;
21885 if (
21886 (elem = with_item_rule(p)) // with_item
21887 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021888 (seq = _loop0_44_rule(p)) // _loop0_44
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021889 )
21890 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021891 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 +010021892 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
21893 goto done;
21894 }
21895 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021896 D(fprintf(stderr, "%*c%s _gather_43[%d-%d]: %s failed!\n", p->level, ' ',
21897 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_44"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021898 }
21899 _res = NULL;
21900 done:
21901 D(p->level--);
21902 return _res;
21903}
21904
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021905// _loop0_46: ',' with_item
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021906static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021907_loop0_46_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021908{
21909 D(p->level++);
21910 if (p->error_indicator) {
21911 D(p->level--);
21912 return NULL;
21913 }
21914 void *_res = NULL;
21915 int _mark = p->mark;
21916 int _start_mark = p->mark;
21917 void **_children = PyMem_Malloc(sizeof(void *));
21918 if (!_children) {
21919 p->error_indicator = 1;
21920 PyErr_NoMemory();
21921 D(p->level--);
21922 return NULL;
21923 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010021924 Py_ssize_t _children_capacity = 1;
21925 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021926 { // ',' with_item
21927 if (p->error_indicator) {
21928 D(p->level--);
21929 return NULL;
21930 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021931 D(fprintf(stderr, "%*c> _loop0_46[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021932 Token * _literal;
21933 withitem_ty elem;
21934 while (
21935 (_literal = _PyPegen_expect_token(p, 12)) // token=','
21936 &&
21937 (elem = with_item_rule(p)) // with_item
21938 )
21939 {
21940 _res = elem;
21941 if (_res == NULL && PyErr_Occurred()) {
21942 p->error_indicator = 1;
21943 PyMem_Free(_children);
21944 D(p->level--);
21945 return NULL;
21946 }
21947 if (_n == _children_capacity) {
21948 _children_capacity *= 2;
21949 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21950 if (!_new_children) {
21951 p->error_indicator = 1;
21952 PyErr_NoMemory();
21953 D(p->level--);
21954 return NULL;
21955 }
21956 _children = _new_children;
21957 }
21958 _children[_n++] = _res;
21959 _mark = p->mark;
21960 }
21961 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021962 D(fprintf(stderr, "%*c%s _loop0_46[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021963 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
21964 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021965 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021966 if (!_seq) {
21967 PyMem_Free(_children);
21968 p->error_indicator = 1;
21969 PyErr_NoMemory();
21970 D(p->level--);
21971 return NULL;
21972 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021973 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021974 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021975 _PyPegen_insert_memo(p, _start_mark, _loop0_46_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021976 D(p->level--);
21977 return _seq;
21978}
21979
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021980// _gather_45: with_item _loop0_46
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021981static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021982_gather_45_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021983{
21984 D(p->level++);
21985 if (p->error_indicator) {
21986 D(p->level--);
21987 return NULL;
21988 }
21989 asdl_seq * _res = NULL;
21990 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021991 { // with_item _loop0_46
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021992 if (p->error_indicator) {
21993 D(p->level--);
21994 return NULL;
21995 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021996 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 +010021997 withitem_ty elem;
21998 asdl_seq * seq;
21999 if (
22000 (elem = with_item_rule(p)) // with_item
22001 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022002 (seq = _loop0_46_rule(p)) // _loop0_46
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022003 )
22004 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022005 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 +010022006 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
22007 goto done;
22008 }
22009 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022010 D(fprintf(stderr, "%*c%s _gather_45[%d-%d]: %s failed!\n", p->level, ' ',
22011 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_46"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022012 }
22013 _res = NULL;
22014 done:
22015 D(p->level--);
22016 return _res;
22017}
22018
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022019// _tmp_47: ',' | ')' | ':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022020static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022021_tmp_47_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022022{
22023 D(p->level++);
22024 if (p->error_indicator) {
22025 D(p->level--);
22026 return NULL;
22027 }
22028 void * _res = NULL;
22029 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022030 { // ','
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022031 if (p->error_indicator) {
22032 D(p->level--);
22033 return NULL;
22034 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022035 D(fprintf(stderr, "%*c> _tmp_47[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','"));
22036 Token * _literal;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022037 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022038 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022039 )
22040 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022041 D(fprintf(stderr, "%*c+ _tmp_47[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','"));
22042 _res = _literal;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022043 goto done;
22044 }
22045 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022046 D(fprintf(stderr, "%*c%s _tmp_47[%d-%d]: %s failed!\n", p->level, ' ',
22047 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','"));
22048 }
22049 { // ')'
22050 if (p->error_indicator) {
22051 D(p->level--);
22052 return NULL;
22053 }
22054 D(fprintf(stderr, "%*c> _tmp_47[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
22055 Token * _literal;
22056 if (
22057 (_literal = _PyPegen_expect_token(p, 8)) // token=')'
22058 )
22059 {
22060 D(fprintf(stderr, "%*c+ _tmp_47[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
22061 _res = _literal;
22062 goto done;
22063 }
22064 p->mark = _mark;
22065 D(fprintf(stderr, "%*c%s _tmp_47[%d-%d]: %s failed!\n", p->level, ' ',
22066 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
22067 }
22068 { // ':'
22069 if (p->error_indicator) {
22070 D(p->level--);
22071 return NULL;
22072 }
22073 D(fprintf(stderr, "%*c> _tmp_47[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
22074 Token * _literal;
22075 if (
22076 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
22077 )
22078 {
22079 D(fprintf(stderr, "%*c+ _tmp_47[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
22080 _res = _literal;
22081 goto done;
22082 }
22083 p->mark = _mark;
22084 D(fprintf(stderr, "%*c%s _tmp_47[%d-%d]: %s failed!\n", p->level, ' ',
22085 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022086 }
22087 _res = NULL;
22088 done:
22089 D(p->level--);
22090 return _res;
22091}
22092
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022093// _loop1_48: except_block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022094static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022095_loop1_48_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022096{
22097 D(p->level++);
22098 if (p->error_indicator) {
22099 D(p->level--);
22100 return NULL;
22101 }
22102 void *_res = NULL;
22103 int _mark = p->mark;
22104 int _start_mark = p->mark;
22105 void **_children = PyMem_Malloc(sizeof(void *));
22106 if (!_children) {
22107 p->error_indicator = 1;
22108 PyErr_NoMemory();
22109 D(p->level--);
22110 return NULL;
22111 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010022112 Py_ssize_t _children_capacity = 1;
22113 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022114 { // except_block
22115 if (p->error_indicator) {
22116 D(p->level--);
22117 return NULL;
22118 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022119 D(fprintf(stderr, "%*c> _loop1_48[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "except_block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022120 excepthandler_ty except_block_var;
22121 while (
22122 (except_block_var = except_block_rule(p)) // except_block
22123 )
22124 {
22125 _res = except_block_var;
22126 if (_n == _children_capacity) {
22127 _children_capacity *= 2;
22128 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22129 if (!_new_children) {
22130 p->error_indicator = 1;
22131 PyErr_NoMemory();
22132 D(p->level--);
22133 return NULL;
22134 }
22135 _children = _new_children;
22136 }
22137 _children[_n++] = _res;
22138 _mark = p->mark;
22139 }
22140 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022141 D(fprintf(stderr, "%*c%s _loop1_48[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022142 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "except_block"));
22143 }
22144 if (_n == 0 || p->error_indicator) {
22145 PyMem_Free(_children);
22146 D(p->level--);
22147 return NULL;
22148 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022149 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022150 if (!_seq) {
22151 PyMem_Free(_children);
22152 p->error_indicator = 1;
22153 PyErr_NoMemory();
22154 D(p->level--);
22155 return NULL;
22156 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022157 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022158 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022159 _PyPegen_insert_memo(p, _start_mark, _loop1_48_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022160 D(p->level--);
22161 return _seq;
22162}
22163
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022164// _tmp_49: 'as' NAME
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022165static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022166_tmp_49_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022167{
22168 D(p->level++);
22169 if (p->error_indicator) {
22170 D(p->level--);
22171 return NULL;
22172 }
22173 void * _res = NULL;
22174 int _mark = p->mark;
22175 { // 'as' NAME
22176 if (p->error_indicator) {
22177 D(p->level--);
22178 return NULL;
22179 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022180 D(fprintf(stderr, "%*c> _tmp_49[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022181 Token * _keyword;
22182 expr_ty z;
22183 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022184 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022185 &&
22186 (z = _PyPegen_name_token(p)) // NAME
22187 )
22188 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022189 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 +010022190 _res = z;
22191 if (_res == NULL && PyErr_Occurred()) {
22192 p->error_indicator = 1;
22193 D(p->level--);
22194 return NULL;
22195 }
22196 goto done;
22197 }
22198 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022199 D(fprintf(stderr, "%*c%s _tmp_49[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022200 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
22201 }
22202 _res = NULL;
22203 done:
22204 D(p->level--);
22205 return _res;
22206}
22207
Brandt Bucher145bf262021-02-26 14:51:55 -080022208// _loop1_50: case_block
22209static asdl_seq *
22210_loop1_50_rule(Parser *p)
22211{
22212 D(p->level++);
22213 if (p->error_indicator) {
22214 D(p->level--);
22215 return NULL;
22216 }
22217 void *_res = NULL;
22218 int _mark = p->mark;
22219 int _start_mark = p->mark;
22220 void **_children = PyMem_Malloc(sizeof(void *));
22221 if (!_children) {
22222 p->error_indicator = 1;
22223 PyErr_NoMemory();
22224 D(p->level--);
22225 return NULL;
22226 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010022227 Py_ssize_t _children_capacity = 1;
22228 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080022229 { // case_block
22230 if (p->error_indicator) {
22231 D(p->level--);
22232 return NULL;
22233 }
22234 D(fprintf(stderr, "%*c> _loop1_50[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "case_block"));
22235 match_case_ty case_block_var;
22236 while (
22237 (case_block_var = case_block_rule(p)) // case_block
22238 )
22239 {
22240 _res = case_block_var;
22241 if (_n == _children_capacity) {
22242 _children_capacity *= 2;
22243 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22244 if (!_new_children) {
22245 p->error_indicator = 1;
22246 PyErr_NoMemory();
22247 D(p->level--);
22248 return NULL;
22249 }
22250 _children = _new_children;
22251 }
22252 _children[_n++] = _res;
22253 _mark = p->mark;
22254 }
22255 p->mark = _mark;
22256 D(fprintf(stderr, "%*c%s _loop1_50[%d-%d]: %s failed!\n", p->level, ' ',
22257 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "case_block"));
22258 }
22259 if (_n == 0 || p->error_indicator) {
22260 PyMem_Free(_children);
22261 D(p->level--);
22262 return NULL;
22263 }
22264 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
22265 if (!_seq) {
22266 PyMem_Free(_children);
22267 p->error_indicator = 1;
22268 PyErr_NoMemory();
22269 D(p->level--);
22270 return NULL;
22271 }
22272 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
22273 PyMem_Free(_children);
22274 _PyPegen_insert_memo(p, _start_mark, _loop1_50_type, _seq);
22275 D(p->level--);
22276 return _seq;
22277}
22278
22279// _loop0_52: '|' closed_pattern
22280static asdl_seq *
22281_loop0_52_rule(Parser *p)
22282{
22283 D(p->level++);
22284 if (p->error_indicator) {
22285 D(p->level--);
22286 return NULL;
22287 }
22288 void *_res = NULL;
22289 int _mark = p->mark;
22290 int _start_mark = p->mark;
22291 void **_children = PyMem_Malloc(sizeof(void *));
22292 if (!_children) {
22293 p->error_indicator = 1;
22294 PyErr_NoMemory();
22295 D(p->level--);
22296 return NULL;
22297 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010022298 Py_ssize_t _children_capacity = 1;
22299 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080022300 { // '|' closed_pattern
22301 if (p->error_indicator) {
22302 D(p->level--);
22303 return NULL;
22304 }
22305 D(fprintf(stderr, "%*c> _loop0_52[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'|' closed_pattern"));
22306 Token * _literal;
22307 expr_ty elem;
22308 while (
22309 (_literal = _PyPegen_expect_token(p, 18)) // token='|'
22310 &&
22311 (elem = closed_pattern_rule(p)) // closed_pattern
22312 )
22313 {
22314 _res = elem;
22315 if (_res == NULL && PyErr_Occurred()) {
22316 p->error_indicator = 1;
22317 PyMem_Free(_children);
22318 D(p->level--);
22319 return NULL;
22320 }
22321 if (_n == _children_capacity) {
22322 _children_capacity *= 2;
22323 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22324 if (!_new_children) {
22325 p->error_indicator = 1;
22326 PyErr_NoMemory();
22327 D(p->level--);
22328 return NULL;
22329 }
22330 _children = _new_children;
22331 }
22332 _children[_n++] = _res;
22333 _mark = p->mark;
22334 }
22335 p->mark = _mark;
22336 D(fprintf(stderr, "%*c%s _loop0_52[%d-%d]: %s failed!\n", p->level, ' ',
22337 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'|' closed_pattern"));
22338 }
22339 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
22340 if (!_seq) {
22341 PyMem_Free(_children);
22342 p->error_indicator = 1;
22343 PyErr_NoMemory();
22344 D(p->level--);
22345 return NULL;
22346 }
22347 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
22348 PyMem_Free(_children);
22349 _PyPegen_insert_memo(p, _start_mark, _loop0_52_type, _seq);
22350 D(p->level--);
22351 return _seq;
22352}
22353
22354// _gather_51: closed_pattern _loop0_52
22355static asdl_seq *
22356_gather_51_rule(Parser *p)
22357{
22358 D(p->level++);
22359 if (p->error_indicator) {
22360 D(p->level--);
22361 return NULL;
22362 }
22363 asdl_seq * _res = NULL;
22364 int _mark = p->mark;
22365 { // closed_pattern _loop0_52
22366 if (p->error_indicator) {
22367 D(p->level--);
22368 return NULL;
22369 }
22370 D(fprintf(stderr, "%*c> _gather_51[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "closed_pattern _loop0_52"));
22371 expr_ty elem;
22372 asdl_seq * seq;
22373 if (
22374 (elem = closed_pattern_rule(p)) // closed_pattern
22375 &&
22376 (seq = _loop0_52_rule(p)) // _loop0_52
22377 )
22378 {
22379 D(fprintf(stderr, "%*c+ _gather_51[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "closed_pattern _loop0_52"));
22380 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
22381 goto done;
22382 }
22383 p->mark = _mark;
22384 D(fprintf(stderr, "%*c%s _gather_51[%d-%d]: %s failed!\n", p->level, ' ',
22385 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "closed_pattern _loop0_52"));
22386 }
22387 _res = NULL;
22388 done:
22389 D(p->level--);
22390 return _res;
22391}
22392
22393// _tmp_53: '+' | '-'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022394static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080022395_tmp_53_rule(Parser *p)
22396{
22397 D(p->level++);
22398 if (p->error_indicator) {
22399 D(p->level--);
22400 return NULL;
22401 }
22402 void * _res = NULL;
22403 int _mark = p->mark;
22404 { // '+'
22405 if (p->error_indicator) {
22406 D(p->level--);
22407 return NULL;
22408 }
22409 D(fprintf(stderr, "%*c> _tmp_53[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'+'"));
22410 Token * _literal;
22411 if (
22412 (_literal = _PyPegen_expect_token(p, 14)) // token='+'
22413 )
22414 {
22415 D(fprintf(stderr, "%*c+ _tmp_53[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'+'"));
22416 _res = _literal;
22417 goto done;
22418 }
22419 p->mark = _mark;
22420 D(fprintf(stderr, "%*c%s _tmp_53[%d-%d]: %s failed!\n", p->level, ' ',
22421 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+'"));
22422 }
22423 { // '-'
22424 if (p->error_indicator) {
22425 D(p->level--);
22426 return NULL;
22427 }
22428 D(fprintf(stderr, "%*c> _tmp_53[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-'"));
22429 Token * _literal;
22430 if (
22431 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
22432 )
22433 {
22434 D(fprintf(stderr, "%*c+ _tmp_53[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-'"));
22435 _res = _literal;
22436 goto done;
22437 }
22438 p->mark = _mark;
22439 D(fprintf(stderr, "%*c%s _tmp_53[%d-%d]: %s failed!\n", p->level, ' ',
22440 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-'"));
22441 }
22442 _res = NULL;
22443 done:
22444 D(p->level--);
22445 return _res;
22446}
22447
22448// _tmp_54: '.' | '(' | '='
22449static void *
22450_tmp_54_rule(Parser *p)
22451{
22452 D(p->level++);
22453 if (p->error_indicator) {
22454 D(p->level--);
22455 return NULL;
22456 }
22457 void * _res = NULL;
22458 int _mark = p->mark;
22459 { // '.'
22460 if (p->error_indicator) {
22461 D(p->level--);
22462 return NULL;
22463 }
22464 D(fprintf(stderr, "%*c> _tmp_54[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
22465 Token * _literal;
22466 if (
22467 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
22468 )
22469 {
22470 D(fprintf(stderr, "%*c+ _tmp_54[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
22471 _res = _literal;
22472 goto done;
22473 }
22474 p->mark = _mark;
22475 D(fprintf(stderr, "%*c%s _tmp_54[%d-%d]: %s failed!\n", p->level, ' ',
22476 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
22477 }
22478 { // '('
22479 if (p->error_indicator) {
22480 D(p->level--);
22481 return NULL;
22482 }
22483 D(fprintf(stderr, "%*c> _tmp_54[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('"));
22484 Token * _literal;
22485 if (
22486 (_literal = _PyPegen_expect_token(p, 7)) // token='('
22487 )
22488 {
22489 D(fprintf(stderr, "%*c+ _tmp_54[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('"));
22490 _res = _literal;
22491 goto done;
22492 }
22493 p->mark = _mark;
22494 D(fprintf(stderr, "%*c%s _tmp_54[%d-%d]: %s failed!\n", p->level, ' ',
22495 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('"));
22496 }
22497 { // '='
22498 if (p->error_indicator) {
22499 D(p->level--);
22500 return NULL;
22501 }
22502 D(fprintf(stderr, "%*c> _tmp_54[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'='"));
22503 Token * _literal;
22504 if (
22505 (_literal = _PyPegen_expect_token(p, 22)) // token='='
22506 )
22507 {
22508 D(fprintf(stderr, "%*c+ _tmp_54[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'='"));
22509 _res = _literal;
22510 goto done;
22511 }
22512 p->mark = _mark;
22513 D(fprintf(stderr, "%*c%s _tmp_54[%d-%d]: %s failed!\n", p->level, ' ',
22514 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'='"));
22515 }
22516 _res = NULL;
22517 done:
22518 D(p->level--);
22519 return _res;
22520}
22521
22522// _tmp_55: '.' | '(' | '='
22523static void *
22524_tmp_55_rule(Parser *p)
22525{
22526 D(p->level++);
22527 if (p->error_indicator) {
22528 D(p->level--);
22529 return NULL;
22530 }
22531 void * _res = NULL;
22532 int _mark = p->mark;
22533 { // '.'
22534 if (p->error_indicator) {
22535 D(p->level--);
22536 return NULL;
22537 }
22538 D(fprintf(stderr, "%*c> _tmp_55[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
22539 Token * _literal;
22540 if (
22541 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
22542 )
22543 {
22544 D(fprintf(stderr, "%*c+ _tmp_55[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
22545 _res = _literal;
22546 goto done;
22547 }
22548 p->mark = _mark;
22549 D(fprintf(stderr, "%*c%s _tmp_55[%d-%d]: %s failed!\n", p->level, ' ',
22550 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
22551 }
22552 { // '('
22553 if (p->error_indicator) {
22554 D(p->level--);
22555 return NULL;
22556 }
22557 D(fprintf(stderr, "%*c> _tmp_55[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('"));
22558 Token * _literal;
22559 if (
22560 (_literal = _PyPegen_expect_token(p, 7)) // token='('
22561 )
22562 {
22563 D(fprintf(stderr, "%*c+ _tmp_55[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('"));
22564 _res = _literal;
22565 goto done;
22566 }
22567 p->mark = _mark;
22568 D(fprintf(stderr, "%*c%s _tmp_55[%d-%d]: %s failed!\n", p->level, ' ',
22569 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('"));
22570 }
22571 { // '='
22572 if (p->error_indicator) {
22573 D(p->level--);
22574 return NULL;
22575 }
22576 D(fprintf(stderr, "%*c> _tmp_55[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'='"));
22577 Token * _literal;
22578 if (
22579 (_literal = _PyPegen_expect_token(p, 22)) // token='='
22580 )
22581 {
22582 D(fprintf(stderr, "%*c+ _tmp_55[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'='"));
22583 _res = _literal;
22584 goto done;
22585 }
22586 p->mark = _mark;
22587 D(fprintf(stderr, "%*c%s _tmp_55[%d-%d]: %s failed!\n", p->level, ' ',
22588 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'='"));
22589 }
22590 _res = NULL;
22591 done:
22592 D(p->level--);
22593 return _res;
22594}
22595
22596// _loop0_57: ',' maybe_star_pattern
22597static asdl_seq *
22598_loop0_57_rule(Parser *p)
22599{
22600 D(p->level++);
22601 if (p->error_indicator) {
22602 D(p->level--);
22603 return NULL;
22604 }
22605 void *_res = NULL;
22606 int _mark = p->mark;
22607 int _start_mark = p->mark;
22608 void **_children = PyMem_Malloc(sizeof(void *));
22609 if (!_children) {
22610 p->error_indicator = 1;
22611 PyErr_NoMemory();
22612 D(p->level--);
22613 return NULL;
22614 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010022615 Py_ssize_t _children_capacity = 1;
22616 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080022617 { // ',' maybe_star_pattern
22618 if (p->error_indicator) {
22619 D(p->level--);
22620 return NULL;
22621 }
22622 D(fprintf(stderr, "%*c> _loop0_57[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' maybe_star_pattern"));
22623 Token * _literal;
22624 expr_ty elem;
22625 while (
22626 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22627 &&
22628 (elem = maybe_star_pattern_rule(p)) // maybe_star_pattern
22629 )
22630 {
22631 _res = elem;
22632 if (_res == NULL && PyErr_Occurred()) {
22633 p->error_indicator = 1;
22634 PyMem_Free(_children);
22635 D(p->level--);
22636 return NULL;
22637 }
22638 if (_n == _children_capacity) {
22639 _children_capacity *= 2;
22640 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22641 if (!_new_children) {
22642 p->error_indicator = 1;
22643 PyErr_NoMemory();
22644 D(p->level--);
22645 return NULL;
22646 }
22647 _children = _new_children;
22648 }
22649 _children[_n++] = _res;
22650 _mark = p->mark;
22651 }
22652 p->mark = _mark;
22653 D(fprintf(stderr, "%*c%s _loop0_57[%d-%d]: %s failed!\n", p->level, ' ',
22654 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' maybe_star_pattern"));
22655 }
22656 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
22657 if (!_seq) {
22658 PyMem_Free(_children);
22659 p->error_indicator = 1;
22660 PyErr_NoMemory();
22661 D(p->level--);
22662 return NULL;
22663 }
22664 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
22665 PyMem_Free(_children);
22666 _PyPegen_insert_memo(p, _start_mark, _loop0_57_type, _seq);
22667 D(p->level--);
22668 return _seq;
22669}
22670
22671// _gather_56: maybe_star_pattern _loop0_57
22672static asdl_seq *
22673_gather_56_rule(Parser *p)
22674{
22675 D(p->level++);
22676 if (p->error_indicator) {
22677 D(p->level--);
22678 return NULL;
22679 }
22680 asdl_seq * _res = NULL;
22681 int _mark = p->mark;
22682 { // maybe_star_pattern _loop0_57
22683 if (p->error_indicator) {
22684 D(p->level--);
22685 return NULL;
22686 }
22687 D(fprintf(stderr, "%*c> _gather_56[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "maybe_star_pattern _loop0_57"));
22688 expr_ty elem;
22689 asdl_seq * seq;
22690 if (
22691 (elem = maybe_star_pattern_rule(p)) // maybe_star_pattern
22692 &&
22693 (seq = _loop0_57_rule(p)) // _loop0_57
22694 )
22695 {
22696 D(fprintf(stderr, "%*c+ _gather_56[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "maybe_star_pattern _loop0_57"));
22697 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
22698 goto done;
22699 }
22700 p->mark = _mark;
22701 D(fprintf(stderr, "%*c%s _gather_56[%d-%d]: %s failed!\n", p->level, ' ',
22702 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "maybe_star_pattern _loop0_57"));
22703 }
22704 _res = NULL;
22705 done:
22706 D(p->level--);
22707 return _res;
22708}
22709
22710// _tmp_58: capture_pattern | wildcard_pattern
22711static void *
22712_tmp_58_rule(Parser *p)
22713{
22714 D(p->level++);
22715 if (p->error_indicator) {
22716 D(p->level--);
22717 return NULL;
22718 }
22719 void * _res = NULL;
22720 int _mark = p->mark;
22721 { // capture_pattern
22722 if (p->error_indicator) {
22723 D(p->level--);
22724 return NULL;
22725 }
22726 D(fprintf(stderr, "%*c> _tmp_58[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "capture_pattern"));
22727 expr_ty capture_pattern_var;
22728 if (
22729 (capture_pattern_var = capture_pattern_rule(p)) // capture_pattern
22730 )
22731 {
22732 D(fprintf(stderr, "%*c+ _tmp_58[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "capture_pattern"));
22733 _res = capture_pattern_var;
22734 goto done;
22735 }
22736 p->mark = _mark;
22737 D(fprintf(stderr, "%*c%s _tmp_58[%d-%d]: %s failed!\n", p->level, ' ',
22738 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "capture_pattern"));
22739 }
22740 { // wildcard_pattern
22741 if (p->error_indicator) {
22742 D(p->level--);
22743 return NULL;
22744 }
22745 D(fprintf(stderr, "%*c> _tmp_58[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "wildcard_pattern"));
22746 expr_ty wildcard_pattern_var;
22747 if (
22748 (wildcard_pattern_var = wildcard_pattern_rule(p)) // wildcard_pattern
22749 )
22750 {
22751 D(fprintf(stderr, "%*c+ _tmp_58[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "wildcard_pattern"));
22752 _res = wildcard_pattern_var;
22753 goto done;
22754 }
22755 p->mark = _mark;
22756 D(fprintf(stderr, "%*c%s _tmp_58[%d-%d]: %s failed!\n", p->level, ' ',
22757 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "wildcard_pattern"));
22758 }
22759 _res = NULL;
22760 done:
22761 D(p->level--);
22762 return _res;
22763}
22764
22765// _loop0_60: ',' key_value_pattern
22766static asdl_seq *
22767_loop0_60_rule(Parser *p)
22768{
22769 D(p->level++);
22770 if (p->error_indicator) {
22771 D(p->level--);
22772 return NULL;
22773 }
22774 void *_res = NULL;
22775 int _mark = p->mark;
22776 int _start_mark = p->mark;
22777 void **_children = PyMem_Malloc(sizeof(void *));
22778 if (!_children) {
22779 p->error_indicator = 1;
22780 PyErr_NoMemory();
22781 D(p->level--);
22782 return NULL;
22783 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010022784 Py_ssize_t _children_capacity = 1;
22785 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080022786 { // ',' key_value_pattern
22787 if (p->error_indicator) {
22788 D(p->level--);
22789 return NULL;
22790 }
22791 D(fprintf(stderr, "%*c> _loop0_60[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' key_value_pattern"));
22792 Token * _literal;
22793 KeyValuePair* elem;
22794 while (
22795 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22796 &&
22797 (elem = key_value_pattern_rule(p)) // key_value_pattern
22798 )
22799 {
22800 _res = elem;
22801 if (_res == NULL && PyErr_Occurred()) {
22802 p->error_indicator = 1;
22803 PyMem_Free(_children);
22804 D(p->level--);
22805 return NULL;
22806 }
22807 if (_n == _children_capacity) {
22808 _children_capacity *= 2;
22809 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22810 if (!_new_children) {
22811 p->error_indicator = 1;
22812 PyErr_NoMemory();
22813 D(p->level--);
22814 return NULL;
22815 }
22816 _children = _new_children;
22817 }
22818 _children[_n++] = _res;
22819 _mark = p->mark;
22820 }
22821 p->mark = _mark;
22822 D(fprintf(stderr, "%*c%s _loop0_60[%d-%d]: %s failed!\n", p->level, ' ',
22823 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' key_value_pattern"));
22824 }
22825 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
22826 if (!_seq) {
22827 PyMem_Free(_children);
22828 p->error_indicator = 1;
22829 PyErr_NoMemory();
22830 D(p->level--);
22831 return NULL;
22832 }
22833 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
22834 PyMem_Free(_children);
22835 _PyPegen_insert_memo(p, _start_mark, _loop0_60_type, _seq);
22836 D(p->level--);
22837 return _seq;
22838}
22839
22840// _gather_59: key_value_pattern _loop0_60
22841static asdl_seq *
22842_gather_59_rule(Parser *p)
22843{
22844 D(p->level++);
22845 if (p->error_indicator) {
22846 D(p->level--);
22847 return NULL;
22848 }
22849 asdl_seq * _res = NULL;
22850 int _mark = p->mark;
22851 { // key_value_pattern _loop0_60
22852 if (p->error_indicator) {
22853 D(p->level--);
22854 return NULL;
22855 }
22856 D(fprintf(stderr, "%*c> _gather_59[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "key_value_pattern _loop0_60"));
22857 KeyValuePair* elem;
22858 asdl_seq * seq;
22859 if (
22860 (elem = key_value_pattern_rule(p)) // key_value_pattern
22861 &&
22862 (seq = _loop0_60_rule(p)) // _loop0_60
22863 )
22864 {
22865 D(fprintf(stderr, "%*c+ _gather_59[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "key_value_pattern _loop0_60"));
22866 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
22867 goto done;
22868 }
22869 p->mark = _mark;
22870 D(fprintf(stderr, "%*c%s _gather_59[%d-%d]: %s failed!\n", p->level, ' ',
22871 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "key_value_pattern _loop0_60"));
22872 }
22873 _res = NULL;
22874 done:
22875 D(p->level--);
22876 return _res;
22877}
22878
22879// _tmp_61: literal_pattern | value_pattern
22880static void *
22881_tmp_61_rule(Parser *p)
22882{
22883 D(p->level++);
22884 if (p->error_indicator) {
22885 D(p->level--);
22886 return NULL;
22887 }
22888 void * _res = NULL;
22889 int _mark = p->mark;
22890 { // literal_pattern
22891 if (p->error_indicator) {
22892 D(p->level--);
22893 return NULL;
22894 }
22895 D(fprintf(stderr, "%*c> _tmp_61[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "literal_pattern"));
22896 expr_ty literal_pattern_var;
22897 if (
22898 (literal_pattern_var = literal_pattern_rule(p)) // literal_pattern
22899 )
22900 {
22901 D(fprintf(stderr, "%*c+ _tmp_61[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "literal_pattern"));
22902 _res = literal_pattern_var;
22903 goto done;
22904 }
22905 p->mark = _mark;
22906 D(fprintf(stderr, "%*c%s _tmp_61[%d-%d]: %s failed!\n", p->level, ' ',
22907 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "literal_pattern"));
22908 }
22909 { // value_pattern
22910 if (p->error_indicator) {
22911 D(p->level--);
22912 return NULL;
22913 }
22914 D(fprintf(stderr, "%*c> _tmp_61[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "value_pattern"));
22915 expr_ty value_pattern_var;
22916 if (
22917 (value_pattern_var = value_pattern_rule(p)) // value_pattern
22918 )
22919 {
22920 D(fprintf(stderr, "%*c+ _tmp_61[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "value_pattern"));
22921 _res = value_pattern_var;
22922 goto done;
22923 }
22924 p->mark = _mark;
22925 D(fprintf(stderr, "%*c%s _tmp_61[%d-%d]: %s failed!\n", p->level, ' ',
22926 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "value_pattern"));
22927 }
22928 _res = NULL;
22929 done:
22930 D(p->level--);
22931 return _res;
22932}
22933
22934// _loop0_63: ',' pattern
22935static asdl_seq *
22936_loop0_63_rule(Parser *p)
22937{
22938 D(p->level++);
22939 if (p->error_indicator) {
22940 D(p->level--);
22941 return NULL;
22942 }
22943 void *_res = NULL;
22944 int _mark = p->mark;
22945 int _start_mark = p->mark;
22946 void **_children = PyMem_Malloc(sizeof(void *));
22947 if (!_children) {
22948 p->error_indicator = 1;
22949 PyErr_NoMemory();
22950 D(p->level--);
22951 return NULL;
22952 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010022953 Py_ssize_t _children_capacity = 1;
22954 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080022955 { // ',' pattern
22956 if (p->error_indicator) {
22957 D(p->level--);
22958 return NULL;
22959 }
22960 D(fprintf(stderr, "%*c> _loop0_63[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' pattern"));
22961 Token * _literal;
22962 expr_ty elem;
22963 while (
22964 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22965 &&
22966 (elem = pattern_rule(p)) // pattern
22967 )
22968 {
22969 _res = elem;
22970 if (_res == NULL && PyErr_Occurred()) {
22971 p->error_indicator = 1;
22972 PyMem_Free(_children);
22973 D(p->level--);
22974 return NULL;
22975 }
22976 if (_n == _children_capacity) {
22977 _children_capacity *= 2;
22978 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22979 if (!_new_children) {
22980 p->error_indicator = 1;
22981 PyErr_NoMemory();
22982 D(p->level--);
22983 return NULL;
22984 }
22985 _children = _new_children;
22986 }
22987 _children[_n++] = _res;
22988 _mark = p->mark;
22989 }
22990 p->mark = _mark;
22991 D(fprintf(stderr, "%*c%s _loop0_63[%d-%d]: %s failed!\n", p->level, ' ',
22992 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' pattern"));
22993 }
22994 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
22995 if (!_seq) {
22996 PyMem_Free(_children);
22997 p->error_indicator = 1;
22998 PyErr_NoMemory();
22999 D(p->level--);
23000 return NULL;
23001 }
23002 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
23003 PyMem_Free(_children);
23004 _PyPegen_insert_memo(p, _start_mark, _loop0_63_type, _seq);
23005 D(p->level--);
23006 return _seq;
23007}
23008
23009// _gather_62: pattern _loop0_63
23010static asdl_seq *
23011_gather_62_rule(Parser *p)
23012{
23013 D(p->level++);
23014 if (p->error_indicator) {
23015 D(p->level--);
23016 return NULL;
23017 }
23018 asdl_seq * _res = NULL;
23019 int _mark = p->mark;
23020 { // pattern _loop0_63
23021 if (p->error_indicator) {
23022 D(p->level--);
23023 return NULL;
23024 }
23025 D(fprintf(stderr, "%*c> _gather_62[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "pattern _loop0_63"));
23026 expr_ty elem;
23027 asdl_seq * seq;
23028 if (
23029 (elem = pattern_rule(p)) // pattern
23030 &&
23031 (seq = _loop0_63_rule(p)) // _loop0_63
23032 )
23033 {
23034 D(fprintf(stderr, "%*c+ _gather_62[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "pattern _loop0_63"));
23035 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
23036 goto done;
23037 }
23038 p->mark = _mark;
23039 D(fprintf(stderr, "%*c%s _gather_62[%d-%d]: %s failed!\n", p->level, ' ',
23040 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "pattern _loop0_63"));
23041 }
23042 _res = NULL;
23043 done:
23044 D(p->level--);
23045 return _res;
23046}
23047
23048// _loop0_65: ',' keyword_pattern
23049static asdl_seq *
23050_loop0_65_rule(Parser *p)
23051{
23052 D(p->level++);
23053 if (p->error_indicator) {
23054 D(p->level--);
23055 return NULL;
23056 }
23057 void *_res = NULL;
23058 int _mark = p->mark;
23059 int _start_mark = p->mark;
23060 void **_children = PyMem_Malloc(sizeof(void *));
23061 if (!_children) {
23062 p->error_indicator = 1;
23063 PyErr_NoMemory();
23064 D(p->level--);
23065 return NULL;
23066 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023067 Py_ssize_t _children_capacity = 1;
23068 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080023069 { // ',' keyword_pattern
23070 if (p->error_indicator) {
23071 D(p->level--);
23072 return NULL;
23073 }
23074 D(fprintf(stderr, "%*c> _loop0_65[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' keyword_pattern"));
23075 Token * _literal;
23076 keyword_ty elem;
23077 while (
23078 (_literal = _PyPegen_expect_token(p, 12)) // token=','
23079 &&
23080 (elem = keyword_pattern_rule(p)) // keyword_pattern
23081 )
23082 {
23083 _res = elem;
23084 if (_res == NULL && PyErr_Occurred()) {
23085 p->error_indicator = 1;
23086 PyMem_Free(_children);
23087 D(p->level--);
23088 return NULL;
23089 }
23090 if (_n == _children_capacity) {
23091 _children_capacity *= 2;
23092 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23093 if (!_new_children) {
23094 p->error_indicator = 1;
23095 PyErr_NoMemory();
23096 D(p->level--);
23097 return NULL;
23098 }
23099 _children = _new_children;
23100 }
23101 _children[_n++] = _res;
23102 _mark = p->mark;
23103 }
23104 p->mark = _mark;
23105 D(fprintf(stderr, "%*c%s _loop0_65[%d-%d]: %s failed!\n", p->level, ' ',
23106 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' keyword_pattern"));
23107 }
23108 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
23109 if (!_seq) {
23110 PyMem_Free(_children);
23111 p->error_indicator = 1;
23112 PyErr_NoMemory();
23113 D(p->level--);
23114 return NULL;
23115 }
23116 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
23117 PyMem_Free(_children);
23118 _PyPegen_insert_memo(p, _start_mark, _loop0_65_type, _seq);
23119 D(p->level--);
23120 return _seq;
23121}
23122
23123// _gather_64: keyword_pattern _loop0_65
23124static asdl_seq *
23125_gather_64_rule(Parser *p)
23126{
23127 D(p->level++);
23128 if (p->error_indicator) {
23129 D(p->level--);
23130 return NULL;
23131 }
23132 asdl_seq * _res = NULL;
23133 int _mark = p->mark;
23134 { // keyword_pattern _loop0_65
23135 if (p->error_indicator) {
23136 D(p->level--);
23137 return NULL;
23138 }
23139 D(fprintf(stderr, "%*c> _gather_64[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "keyword_pattern _loop0_65"));
23140 keyword_ty elem;
23141 asdl_seq * seq;
23142 if (
23143 (elem = keyword_pattern_rule(p)) // keyword_pattern
23144 &&
23145 (seq = _loop0_65_rule(p)) // _loop0_65
23146 )
23147 {
23148 D(fprintf(stderr, "%*c+ _gather_64[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "keyword_pattern _loop0_65"));
23149 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
23150 goto done;
23151 }
23152 p->mark = _mark;
23153 D(fprintf(stderr, "%*c%s _gather_64[%d-%d]: %s failed!\n", p->level, ' ',
23154 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "keyword_pattern _loop0_65"));
23155 }
23156 _res = NULL;
23157 done:
23158 D(p->level--);
23159 return _res;
23160}
23161
23162// _tmp_66: 'from' expression
23163static void *
23164_tmp_66_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023165{
23166 D(p->level++);
23167 if (p->error_indicator) {
23168 D(p->level--);
23169 return NULL;
23170 }
23171 void * _res = NULL;
23172 int _mark = p->mark;
23173 { // 'from' expression
23174 if (p->error_indicator) {
23175 D(p->level--);
23176 return NULL;
23177 }
Brandt Bucher145bf262021-02-26 14:51:55 -080023178 D(fprintf(stderr, "%*c> _tmp_66[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023179 Token * _keyword;
23180 expr_ty z;
23181 if (
23182 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
23183 &&
23184 (z = expression_rule(p)) // expression
23185 )
23186 {
Brandt Bucher145bf262021-02-26 14:51:55 -080023187 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 +010023188 _res = z;
23189 if (_res == NULL && PyErr_Occurred()) {
23190 p->error_indicator = 1;
23191 D(p->level--);
23192 return NULL;
23193 }
23194 goto done;
23195 }
23196 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080023197 D(fprintf(stderr, "%*c%s _tmp_66[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023198 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023199 }
23200 _res = NULL;
23201 done:
23202 D(p->level--);
23203 return _res;
23204}
23205
Brandt Bucher145bf262021-02-26 14:51:55 -080023206// _tmp_67: '->' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023207static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080023208_tmp_67_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023209{
23210 D(p->level++);
23211 if (p->error_indicator) {
23212 D(p->level--);
23213 return NULL;
23214 }
23215 void * _res = NULL;
23216 int _mark = p->mark;
23217 { // '->' expression
23218 if (p->error_indicator) {
23219 D(p->level--);
23220 return NULL;
23221 }
Brandt Bucher145bf262021-02-26 14:51:55 -080023222 D(fprintf(stderr, "%*c> _tmp_67[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'->' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023223 Token * _literal;
23224 expr_ty z;
23225 if (
23226 (_literal = _PyPegen_expect_token(p, 51)) // token='->'
23227 &&
23228 (z = expression_rule(p)) // expression
23229 )
23230 {
Brandt Bucher145bf262021-02-26 14:51:55 -080023231 D(fprintf(stderr, "%*c+ _tmp_67[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'->' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023232 _res = z;
23233 if (_res == NULL && PyErr_Occurred()) {
23234 p->error_indicator = 1;
23235 D(p->level--);
23236 return NULL;
23237 }
23238 goto done;
23239 }
23240 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080023241 D(fprintf(stderr, "%*c%s _tmp_67[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023242 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'->' expression"));
23243 }
23244 _res = NULL;
23245 done:
23246 D(p->level--);
23247 return _res;
23248}
23249
Brandt Bucher145bf262021-02-26 14:51:55 -080023250// _tmp_68: '->' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023251static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080023252_tmp_68_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023253{
23254 D(p->level++);
23255 if (p->error_indicator) {
23256 D(p->level--);
23257 return NULL;
23258 }
23259 void * _res = NULL;
23260 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023261 { // '->' expression
23262 if (p->error_indicator) {
23263 D(p->level--);
23264 return NULL;
23265 }
Brandt Bucher145bf262021-02-26 14:51:55 -080023266 D(fprintf(stderr, "%*c> _tmp_68[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'->' expression"));
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023267 Token * _literal;
23268 expr_ty z;
23269 if (
23270 (_literal = _PyPegen_expect_token(p, 51)) // token='->'
23271 &&
23272 (z = expression_rule(p)) // expression
23273 )
23274 {
Brandt Bucher145bf262021-02-26 14:51:55 -080023275 D(fprintf(stderr, "%*c+ _tmp_68[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'->' expression"));
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023276 _res = z;
23277 if (_res == NULL && PyErr_Occurred()) {
23278 p->error_indicator = 1;
23279 D(p->level--);
23280 return NULL;
23281 }
23282 goto done;
23283 }
23284 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080023285 D(fprintf(stderr, "%*c%s _tmp_68[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023286 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'->' expression"));
23287 }
23288 _res = NULL;
23289 done:
23290 D(p->level--);
23291 return _res;
23292}
23293
Brandt Bucher145bf262021-02-26 14:51:55 -080023294// _tmp_69: NEWLINE INDENT
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023295static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080023296_tmp_69_rule(Parser *p)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023297{
23298 D(p->level++);
23299 if (p->error_indicator) {
23300 D(p->level--);
23301 return NULL;
23302 }
23303 void * _res = NULL;
23304 int _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023305 { // NEWLINE INDENT
23306 if (p->error_indicator) {
23307 D(p->level--);
23308 return NULL;
23309 }
Brandt Bucher145bf262021-02-26 14:51:55 -080023310 D(fprintf(stderr, "%*c> _tmp_69[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE INDENT"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023311 Token * indent_var;
23312 Token * newline_var;
23313 if (
23314 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
23315 &&
23316 (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
23317 )
23318 {
Brandt Bucher145bf262021-02-26 14:51:55 -080023319 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 +010023320 _res = _PyPegen_dummy_name(p, newline_var, indent_var);
23321 goto done;
23322 }
23323 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080023324 D(fprintf(stderr, "%*c%s _tmp_69[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023325 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE INDENT"));
23326 }
23327 _res = NULL;
23328 done:
23329 D(p->level--);
23330 return _res;
23331}
23332
Brandt Bucher145bf262021-02-26 14:51:55 -080023333// _loop0_70: param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023334static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080023335_loop0_70_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023336{
23337 D(p->level++);
23338 if (p->error_indicator) {
23339 D(p->level--);
23340 return NULL;
23341 }
23342 void *_res = NULL;
23343 int _mark = p->mark;
23344 int _start_mark = p->mark;
23345 void **_children = PyMem_Malloc(sizeof(void *));
23346 if (!_children) {
23347 p->error_indicator = 1;
23348 PyErr_NoMemory();
23349 D(p->level--);
23350 return NULL;
23351 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023352 Py_ssize_t _children_capacity = 1;
23353 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023354 { // param_no_default
23355 if (p->error_indicator) {
23356 D(p->level--);
23357 return NULL;
23358 }
Brandt Bucher145bf262021-02-26 14:51:55 -080023359 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 +010023360 arg_ty param_no_default_var;
23361 while (
23362 (param_no_default_var = param_no_default_rule(p)) // param_no_default
23363 )
23364 {
23365 _res = param_no_default_var;
23366 if (_n == _children_capacity) {
23367 _children_capacity *= 2;
23368 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23369 if (!_new_children) {
23370 p->error_indicator = 1;
23371 PyErr_NoMemory();
23372 D(p->level--);
23373 return NULL;
23374 }
23375 _children = _new_children;
23376 }
23377 _children[_n++] = _res;
23378 _mark = p->mark;
23379 }
23380 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080023381 D(fprintf(stderr, "%*c%s _loop0_70[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023382 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023383 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023384 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023385 if (!_seq) {
23386 PyMem_Free(_children);
23387 p->error_indicator = 1;
23388 PyErr_NoMemory();
23389 D(p->level--);
23390 return NULL;
23391 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023392 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023393 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080023394 _PyPegen_insert_memo(p, _start_mark, _loop0_70_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023395 D(p->level--);
23396 return _seq;
23397}
23398
Brandt Bucher145bf262021-02-26 14:51:55 -080023399// _loop0_71: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023400static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080023401_loop0_71_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023402{
23403 D(p->level++);
23404 if (p->error_indicator) {
23405 D(p->level--);
23406 return NULL;
23407 }
23408 void *_res = NULL;
23409 int _mark = p->mark;
23410 int _start_mark = p->mark;
23411 void **_children = PyMem_Malloc(sizeof(void *));
23412 if (!_children) {
23413 p->error_indicator = 1;
23414 PyErr_NoMemory();
23415 D(p->level--);
23416 return NULL;
23417 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023418 Py_ssize_t _children_capacity = 1;
23419 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023420 { // param_with_default
23421 if (p->error_indicator) {
23422 D(p->level--);
23423 return NULL;
23424 }
Brandt Bucher145bf262021-02-26 14:51:55 -080023425 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 +010023426 NameDefaultPair* param_with_default_var;
23427 while (
23428 (param_with_default_var = param_with_default_rule(p)) // param_with_default
23429 )
23430 {
23431 _res = param_with_default_var;
23432 if (_n == _children_capacity) {
23433 _children_capacity *= 2;
23434 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23435 if (!_new_children) {
23436 p->error_indicator = 1;
23437 PyErr_NoMemory();
23438 D(p->level--);
23439 return NULL;
23440 }
23441 _children = _new_children;
23442 }
23443 _children[_n++] = _res;
23444 _mark = p->mark;
23445 }
23446 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080023447 D(fprintf(stderr, "%*c%s _loop0_71[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023448 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
23449 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023450 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023451 if (!_seq) {
23452 PyMem_Free(_children);
23453 p->error_indicator = 1;
23454 PyErr_NoMemory();
23455 D(p->level--);
23456 return NULL;
23457 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023458 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023459 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080023460 _PyPegen_insert_memo(p, _start_mark, _loop0_71_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023461 D(p->level--);
23462 return _seq;
23463}
23464
Brandt Bucher145bf262021-02-26 14:51:55 -080023465// _loop0_72: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023466static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080023467_loop0_72_rule(Parser *p)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023468{
23469 D(p->level++);
23470 if (p->error_indicator) {
23471 D(p->level--);
23472 return NULL;
23473 }
23474 void *_res = NULL;
23475 int _mark = p->mark;
23476 int _start_mark = p->mark;
23477 void **_children = PyMem_Malloc(sizeof(void *));
23478 if (!_children) {
23479 p->error_indicator = 1;
23480 PyErr_NoMemory();
23481 D(p->level--);
23482 return NULL;
23483 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023484 Py_ssize_t _children_capacity = 1;
23485 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023486 { // param_with_default
23487 if (p->error_indicator) {
23488 D(p->level--);
23489 return NULL;
23490 }
Brandt Bucher145bf262021-02-26 14:51:55 -080023491 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 +030023492 NameDefaultPair* param_with_default_var;
23493 while (
23494 (param_with_default_var = param_with_default_rule(p)) // param_with_default
23495 )
23496 {
23497 _res = param_with_default_var;
23498 if (_n == _children_capacity) {
23499 _children_capacity *= 2;
23500 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23501 if (!_new_children) {
23502 p->error_indicator = 1;
23503 PyErr_NoMemory();
23504 D(p->level--);
23505 return NULL;
23506 }
23507 _children = _new_children;
23508 }
23509 _children[_n++] = _res;
23510 _mark = p->mark;
23511 }
23512 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080023513 D(fprintf(stderr, "%*c%s _loop0_72[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023514 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
23515 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023516 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023517 if (!_seq) {
23518 PyMem_Free(_children);
23519 p->error_indicator = 1;
23520 PyErr_NoMemory();
23521 D(p->level--);
23522 return NULL;
23523 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023524 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023525 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080023526 _PyPegen_insert_memo(p, _start_mark, _loop0_72_type, _seq);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023527 D(p->level--);
23528 return _seq;
23529}
23530
Brandt Bucher145bf262021-02-26 14:51:55 -080023531// _loop1_73: param_no_default
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023532static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080023533_loop1_73_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023534{
23535 D(p->level++);
23536 if (p->error_indicator) {
23537 D(p->level--);
23538 return NULL;
23539 }
23540 void *_res = NULL;
23541 int _mark = p->mark;
23542 int _start_mark = p->mark;
23543 void **_children = PyMem_Malloc(sizeof(void *));
23544 if (!_children) {
23545 p->error_indicator = 1;
23546 PyErr_NoMemory();
23547 D(p->level--);
23548 return NULL;
23549 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023550 Py_ssize_t _children_capacity = 1;
23551 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023552 { // param_no_default
23553 if (p->error_indicator) {
23554 D(p->level--);
23555 return NULL;
23556 }
Brandt Bucher145bf262021-02-26 14:51:55 -080023557 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 +010023558 arg_ty param_no_default_var;
23559 while (
23560 (param_no_default_var = param_no_default_rule(p)) // param_no_default
23561 )
23562 {
23563 _res = param_no_default_var;
23564 if (_n == _children_capacity) {
23565 _children_capacity *= 2;
23566 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23567 if (!_new_children) {
23568 p->error_indicator = 1;
23569 PyErr_NoMemory();
23570 D(p->level--);
23571 return NULL;
23572 }
23573 _children = _new_children;
23574 }
23575 _children[_n++] = _res;
23576 _mark = p->mark;
23577 }
23578 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080023579 D(fprintf(stderr, "%*c%s _loop1_73[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023580 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
23581 }
23582 if (_n == 0 || p->error_indicator) {
23583 PyMem_Free(_children);
23584 D(p->level--);
23585 return NULL;
23586 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023587 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023588 if (!_seq) {
23589 PyMem_Free(_children);
23590 p->error_indicator = 1;
23591 PyErr_NoMemory();
23592 D(p->level--);
23593 return NULL;
23594 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023595 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023596 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080023597 _PyPegen_insert_memo(p, _start_mark, _loop1_73_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023598 D(p->level--);
23599 return _seq;
23600}
23601
Brandt Bucher145bf262021-02-26 14:51:55 -080023602// _loop0_74: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023603static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080023604_loop0_74_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023605{
23606 D(p->level++);
23607 if (p->error_indicator) {
23608 D(p->level--);
23609 return NULL;
23610 }
23611 void *_res = NULL;
23612 int _mark = p->mark;
23613 int _start_mark = p->mark;
23614 void **_children = PyMem_Malloc(sizeof(void *));
23615 if (!_children) {
23616 p->error_indicator = 1;
23617 PyErr_NoMemory();
23618 D(p->level--);
23619 return NULL;
23620 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023621 Py_ssize_t _children_capacity = 1;
23622 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023623 { // param_with_default
23624 if (p->error_indicator) {
23625 D(p->level--);
23626 return NULL;
23627 }
Brandt Bucher145bf262021-02-26 14:51:55 -080023628 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 +010023629 NameDefaultPair* param_with_default_var;
23630 while (
23631 (param_with_default_var = param_with_default_rule(p)) // param_with_default
23632 )
23633 {
23634 _res = param_with_default_var;
23635 if (_n == _children_capacity) {
23636 _children_capacity *= 2;
23637 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23638 if (!_new_children) {
23639 p->error_indicator = 1;
23640 PyErr_NoMemory();
23641 D(p->level--);
23642 return NULL;
23643 }
23644 _children = _new_children;
23645 }
23646 _children[_n++] = _res;
23647 _mark = p->mark;
23648 }
23649 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080023650 D(fprintf(stderr, "%*c%s _loop0_74[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023651 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
23652 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023653 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023654 if (!_seq) {
23655 PyMem_Free(_children);
23656 p->error_indicator = 1;
23657 PyErr_NoMemory();
23658 D(p->level--);
23659 return NULL;
23660 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023661 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023662 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080023663 _PyPegen_insert_memo(p, _start_mark, _loop0_74_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023664 D(p->level--);
23665 return _seq;
23666}
23667
Brandt Bucher145bf262021-02-26 14:51:55 -080023668// _loop1_75: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023669static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080023670_loop1_75_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023671{
23672 D(p->level++);
23673 if (p->error_indicator) {
23674 D(p->level--);
23675 return NULL;
23676 }
23677 void *_res = NULL;
23678 int _mark = p->mark;
23679 int _start_mark = p->mark;
23680 void **_children = PyMem_Malloc(sizeof(void *));
23681 if (!_children) {
23682 p->error_indicator = 1;
23683 PyErr_NoMemory();
23684 D(p->level--);
23685 return NULL;
23686 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023687 Py_ssize_t _children_capacity = 1;
23688 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023689 { // param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023690 if (p->error_indicator) {
23691 D(p->level--);
23692 return NULL;
23693 }
Brandt Bucher145bf262021-02-26 14:51:55 -080023694 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 +030023695 NameDefaultPair* param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023696 while (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023697 (param_with_default_var = param_with_default_rule(p)) // param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023698 )
23699 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023700 _res = param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023701 if (_n == _children_capacity) {
23702 _children_capacity *= 2;
23703 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23704 if (!_new_children) {
23705 p->error_indicator = 1;
23706 PyErr_NoMemory();
23707 D(p->level--);
23708 return NULL;
23709 }
23710 _children = _new_children;
23711 }
23712 _children[_n++] = _res;
23713 _mark = p->mark;
23714 }
23715 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080023716 D(fprintf(stderr, "%*c%s _loop1_75[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023717 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023718 }
23719 if (_n == 0 || p->error_indicator) {
23720 PyMem_Free(_children);
23721 D(p->level--);
23722 return NULL;
23723 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023724 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023725 if (!_seq) {
23726 PyMem_Free(_children);
23727 p->error_indicator = 1;
23728 PyErr_NoMemory();
23729 D(p->level--);
23730 return NULL;
23731 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023732 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023733 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080023734 _PyPegen_insert_memo(p, _start_mark, _loop1_75_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023735 D(p->level--);
23736 return _seq;
23737}
23738
Brandt Bucher145bf262021-02-26 14:51:55 -080023739// _loop1_76: param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023740static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080023741_loop1_76_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023742{
23743 D(p->level++);
23744 if (p->error_indicator) {
23745 D(p->level--);
23746 return NULL;
23747 }
23748 void *_res = NULL;
23749 int _mark = p->mark;
23750 int _start_mark = p->mark;
23751 void **_children = PyMem_Malloc(sizeof(void *));
23752 if (!_children) {
23753 p->error_indicator = 1;
23754 PyErr_NoMemory();
23755 D(p->level--);
23756 return NULL;
23757 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023758 Py_ssize_t _children_capacity = 1;
23759 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023760 { // param_no_default
23761 if (p->error_indicator) {
23762 D(p->level--);
23763 return NULL;
23764 }
Brandt Bucher145bf262021-02-26 14:51:55 -080023765 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 +010023766 arg_ty param_no_default_var;
23767 while (
23768 (param_no_default_var = param_no_default_rule(p)) // param_no_default
23769 )
23770 {
23771 _res = param_no_default_var;
23772 if (_n == _children_capacity) {
23773 _children_capacity *= 2;
23774 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23775 if (!_new_children) {
23776 p->error_indicator = 1;
23777 PyErr_NoMemory();
23778 D(p->level--);
23779 return NULL;
23780 }
23781 _children = _new_children;
23782 }
23783 _children[_n++] = _res;
23784 _mark = p->mark;
23785 }
23786 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080023787 D(fprintf(stderr, "%*c%s _loop1_76[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023788 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
23789 }
23790 if (_n == 0 || p->error_indicator) {
23791 PyMem_Free(_children);
23792 D(p->level--);
23793 return NULL;
23794 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023795 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023796 if (!_seq) {
23797 PyMem_Free(_children);
23798 p->error_indicator = 1;
23799 PyErr_NoMemory();
23800 D(p->level--);
23801 return NULL;
23802 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023803 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023804 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080023805 _PyPegen_insert_memo(p, _start_mark, _loop1_76_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023806 D(p->level--);
23807 return _seq;
23808}
23809
Brandt Bucher145bf262021-02-26 14:51:55 -080023810// _loop1_77: param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023811static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080023812_loop1_77_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023813{
23814 D(p->level++);
23815 if (p->error_indicator) {
23816 D(p->level--);
23817 return NULL;
23818 }
23819 void *_res = NULL;
23820 int _mark = p->mark;
23821 int _start_mark = p->mark;
23822 void **_children = PyMem_Malloc(sizeof(void *));
23823 if (!_children) {
23824 p->error_indicator = 1;
23825 PyErr_NoMemory();
23826 D(p->level--);
23827 return NULL;
23828 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023829 Py_ssize_t _children_capacity = 1;
23830 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023831 { // param_no_default
23832 if (p->error_indicator) {
23833 D(p->level--);
23834 return NULL;
23835 }
Brandt Bucher145bf262021-02-26 14:51:55 -080023836 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 +010023837 arg_ty param_no_default_var;
23838 while (
23839 (param_no_default_var = param_no_default_rule(p)) // param_no_default
23840 )
23841 {
23842 _res = param_no_default_var;
23843 if (_n == _children_capacity) {
23844 _children_capacity *= 2;
23845 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23846 if (!_new_children) {
23847 p->error_indicator = 1;
23848 PyErr_NoMemory();
23849 D(p->level--);
23850 return NULL;
23851 }
23852 _children = _new_children;
23853 }
23854 _children[_n++] = _res;
23855 _mark = p->mark;
23856 }
23857 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080023858 D(fprintf(stderr, "%*c%s _loop1_77[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023859 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
23860 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023861 if (_n == 0 || p->error_indicator) {
23862 PyMem_Free(_children);
23863 D(p->level--);
23864 return NULL;
23865 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023866 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023867 if (!_seq) {
23868 PyMem_Free(_children);
23869 p->error_indicator = 1;
23870 PyErr_NoMemory();
23871 D(p->level--);
23872 return NULL;
23873 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023874 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023875 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080023876 _PyPegen_insert_memo(p, _start_mark, _loop1_77_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023877 D(p->level--);
23878 return _seq;
23879}
23880
Brandt Bucher145bf262021-02-26 14:51:55 -080023881// _loop0_78: param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023882static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080023883_loop0_78_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023884{
23885 D(p->level++);
23886 if (p->error_indicator) {
23887 D(p->level--);
23888 return NULL;
23889 }
23890 void *_res = NULL;
23891 int _mark = p->mark;
23892 int _start_mark = p->mark;
23893 void **_children = PyMem_Malloc(sizeof(void *));
23894 if (!_children) {
23895 p->error_indicator = 1;
23896 PyErr_NoMemory();
23897 D(p->level--);
23898 return NULL;
23899 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023900 Py_ssize_t _children_capacity = 1;
23901 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023902 { // param_no_default
23903 if (p->error_indicator) {
23904 D(p->level--);
23905 return NULL;
23906 }
Brandt Bucher145bf262021-02-26 14:51:55 -080023907 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 +010023908 arg_ty param_no_default_var;
23909 while (
23910 (param_no_default_var = param_no_default_rule(p)) // param_no_default
23911 )
23912 {
23913 _res = param_no_default_var;
23914 if (_n == _children_capacity) {
23915 _children_capacity *= 2;
23916 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23917 if (!_new_children) {
23918 p->error_indicator = 1;
23919 PyErr_NoMemory();
23920 D(p->level--);
23921 return NULL;
23922 }
23923 _children = _new_children;
23924 }
23925 _children[_n++] = _res;
23926 _mark = p->mark;
23927 }
23928 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080023929 D(fprintf(stderr, "%*c%s _loop0_78[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023930 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
23931 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023932 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023933 if (!_seq) {
23934 PyMem_Free(_children);
23935 p->error_indicator = 1;
23936 PyErr_NoMemory();
23937 D(p->level--);
23938 return NULL;
23939 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023940 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023941 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080023942 _PyPegen_insert_memo(p, _start_mark, _loop0_78_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023943 D(p->level--);
23944 return _seq;
23945}
23946
Brandt Bucher145bf262021-02-26 14:51:55 -080023947// _loop1_79: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023948static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080023949_loop1_79_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023950{
23951 D(p->level++);
23952 if (p->error_indicator) {
23953 D(p->level--);
23954 return NULL;
23955 }
23956 void *_res = NULL;
23957 int _mark = p->mark;
23958 int _start_mark = p->mark;
23959 void **_children = PyMem_Malloc(sizeof(void *));
23960 if (!_children) {
23961 p->error_indicator = 1;
23962 PyErr_NoMemory();
23963 D(p->level--);
23964 return NULL;
23965 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023966 Py_ssize_t _children_capacity = 1;
23967 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023968 { // param_with_default
23969 if (p->error_indicator) {
23970 D(p->level--);
23971 return NULL;
23972 }
Brandt Bucher145bf262021-02-26 14:51:55 -080023973 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 +010023974 NameDefaultPair* param_with_default_var;
23975 while (
23976 (param_with_default_var = param_with_default_rule(p)) // param_with_default
23977 )
23978 {
23979 _res = param_with_default_var;
23980 if (_n == _children_capacity) {
23981 _children_capacity *= 2;
23982 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23983 if (!_new_children) {
23984 p->error_indicator = 1;
23985 PyErr_NoMemory();
23986 D(p->level--);
23987 return NULL;
23988 }
23989 _children = _new_children;
23990 }
23991 _children[_n++] = _res;
23992 _mark = p->mark;
23993 }
23994 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080023995 D(fprintf(stderr, "%*c%s _loop1_79[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023996 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
23997 }
23998 if (_n == 0 || p->error_indicator) {
23999 PyMem_Free(_children);
24000 D(p->level--);
24001 return NULL;
24002 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024003 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024004 if (!_seq) {
24005 PyMem_Free(_children);
24006 p->error_indicator = 1;
24007 PyErr_NoMemory();
24008 D(p->level--);
24009 return NULL;
24010 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024011 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024012 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080024013 _PyPegen_insert_memo(p, _start_mark, _loop1_79_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024014 D(p->level--);
24015 return _seq;
24016}
24017
Brandt Bucher145bf262021-02-26 14:51:55 -080024018// _loop0_80: param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024019static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080024020_loop0_80_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024021{
24022 D(p->level++);
24023 if (p->error_indicator) {
24024 D(p->level--);
24025 return NULL;
24026 }
24027 void *_res = NULL;
24028 int _mark = p->mark;
24029 int _start_mark = p->mark;
24030 void **_children = PyMem_Malloc(sizeof(void *));
24031 if (!_children) {
24032 p->error_indicator = 1;
24033 PyErr_NoMemory();
24034 D(p->level--);
24035 return NULL;
24036 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024037 Py_ssize_t _children_capacity = 1;
24038 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024039 { // param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024040 if (p->error_indicator) {
24041 D(p->level--);
24042 return NULL;
24043 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024044 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 +030024045 arg_ty param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024046 while (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024047 (param_no_default_var = param_no_default_rule(p)) // param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024048 )
24049 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024050 _res = param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024051 if (_n == _children_capacity) {
24052 _children_capacity *= 2;
24053 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24054 if (!_new_children) {
24055 p->error_indicator = 1;
24056 PyErr_NoMemory();
24057 D(p->level--);
24058 return NULL;
24059 }
24060 _children = _new_children;
24061 }
24062 _children[_n++] = _res;
24063 _mark = p->mark;
24064 }
24065 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024066 D(fprintf(stderr, "%*c%s _loop0_80[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024067 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024068 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024069 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024070 if (!_seq) {
24071 PyMem_Free(_children);
24072 p->error_indicator = 1;
24073 PyErr_NoMemory();
24074 D(p->level--);
24075 return NULL;
24076 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024077 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024078 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080024079 _PyPegen_insert_memo(p, _start_mark, _loop0_80_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024080 D(p->level--);
24081 return _seq;
24082}
24083
Brandt Bucher145bf262021-02-26 14:51:55 -080024084// _loop1_81: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024085static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080024086_loop1_81_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024087{
24088 D(p->level++);
24089 if (p->error_indicator) {
24090 D(p->level--);
24091 return NULL;
24092 }
24093 void *_res = NULL;
24094 int _mark = p->mark;
24095 int _start_mark = p->mark;
24096 void **_children = PyMem_Malloc(sizeof(void *));
24097 if (!_children) {
24098 p->error_indicator = 1;
24099 PyErr_NoMemory();
24100 D(p->level--);
24101 return NULL;
24102 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024103 Py_ssize_t _children_capacity = 1;
24104 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024105 { // param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024106 if (p->error_indicator) {
24107 D(p->level--);
24108 return NULL;
24109 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024110 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 +030024111 NameDefaultPair* param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024112 while (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024113 (param_with_default_var = param_with_default_rule(p)) // param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024114 )
24115 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024116 _res = param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024117 if (_n == _children_capacity) {
24118 _children_capacity *= 2;
24119 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24120 if (!_new_children) {
24121 p->error_indicator = 1;
24122 PyErr_NoMemory();
24123 D(p->level--);
24124 return NULL;
24125 }
24126 _children = _new_children;
24127 }
24128 _children[_n++] = _res;
24129 _mark = p->mark;
24130 }
24131 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024132 D(fprintf(stderr, "%*c%s _loop1_81[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024133 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024134 }
24135 if (_n == 0 || p->error_indicator) {
24136 PyMem_Free(_children);
24137 D(p->level--);
24138 return NULL;
24139 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024140 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024141 if (!_seq) {
24142 PyMem_Free(_children);
24143 p->error_indicator = 1;
24144 PyErr_NoMemory();
24145 D(p->level--);
24146 return NULL;
24147 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024148 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024149 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080024150 _PyPegen_insert_memo(p, _start_mark, _loop1_81_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024151 D(p->level--);
24152 return _seq;
24153}
24154
Brandt Bucher145bf262021-02-26 14:51:55 -080024155// _loop0_82: param_maybe_default
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024156static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080024157_loop0_82_rule(Parser *p)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024158{
24159 D(p->level++);
24160 if (p->error_indicator) {
24161 D(p->level--);
24162 return NULL;
24163 }
24164 void *_res = NULL;
24165 int _mark = p->mark;
24166 int _start_mark = p->mark;
24167 void **_children = PyMem_Malloc(sizeof(void *));
24168 if (!_children) {
24169 p->error_indicator = 1;
24170 PyErr_NoMemory();
24171 D(p->level--);
24172 return NULL;
24173 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024174 Py_ssize_t _children_capacity = 1;
24175 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024176 { // param_maybe_default
24177 if (p->error_indicator) {
24178 D(p->level--);
24179 return NULL;
24180 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024181 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 +030024182 NameDefaultPair* param_maybe_default_var;
24183 while (
24184 (param_maybe_default_var = param_maybe_default_rule(p)) // param_maybe_default
24185 )
24186 {
24187 _res = param_maybe_default_var;
24188 if (_n == _children_capacity) {
24189 _children_capacity *= 2;
24190 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24191 if (!_new_children) {
24192 p->error_indicator = 1;
24193 PyErr_NoMemory();
24194 D(p->level--);
24195 return NULL;
24196 }
24197 _children = _new_children;
24198 }
24199 _children[_n++] = _res;
24200 _mark = p->mark;
24201 }
24202 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024203 D(fprintf(stderr, "%*c%s _loop0_82[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024204 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_maybe_default"));
24205 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024206 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024207 if (!_seq) {
24208 PyMem_Free(_children);
24209 p->error_indicator = 1;
24210 PyErr_NoMemory();
24211 D(p->level--);
24212 return NULL;
24213 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024214 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024215 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080024216 _PyPegen_insert_memo(p, _start_mark, _loop0_82_type, _seq);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024217 D(p->level--);
24218 return _seq;
24219}
24220
Brandt Bucher145bf262021-02-26 14:51:55 -080024221// _loop1_83: param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024222static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080024223_loop1_83_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024224{
24225 D(p->level++);
24226 if (p->error_indicator) {
24227 D(p->level--);
24228 return NULL;
24229 }
24230 void *_res = NULL;
24231 int _mark = p->mark;
24232 int _start_mark = p->mark;
24233 void **_children = PyMem_Malloc(sizeof(void *));
24234 if (!_children) {
24235 p->error_indicator = 1;
24236 PyErr_NoMemory();
24237 D(p->level--);
24238 return NULL;
24239 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024240 Py_ssize_t _children_capacity = 1;
24241 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024242 { // param_maybe_default
24243 if (p->error_indicator) {
24244 D(p->level--);
24245 return NULL;
24246 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024247 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 +030024248 NameDefaultPair* param_maybe_default_var;
24249 while (
24250 (param_maybe_default_var = param_maybe_default_rule(p)) // param_maybe_default
24251 )
24252 {
24253 _res = param_maybe_default_var;
24254 if (_n == _children_capacity) {
24255 _children_capacity *= 2;
24256 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24257 if (!_new_children) {
24258 p->error_indicator = 1;
24259 PyErr_NoMemory();
24260 D(p->level--);
24261 return NULL;
24262 }
24263 _children = _new_children;
24264 }
24265 _children[_n++] = _res;
24266 _mark = p->mark;
24267 }
24268 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024269 D(fprintf(stderr, "%*c%s _loop1_83[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024270 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_maybe_default"));
24271 }
24272 if (_n == 0 || p->error_indicator) {
24273 PyMem_Free(_children);
24274 D(p->level--);
24275 return NULL;
24276 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024277 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024278 if (!_seq) {
24279 PyMem_Free(_children);
24280 p->error_indicator = 1;
24281 PyErr_NoMemory();
24282 D(p->level--);
24283 return NULL;
24284 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024285 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024286 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080024287 _PyPegen_insert_memo(p, _start_mark, _loop1_83_type, _seq);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024288 D(p->level--);
24289 return _seq;
24290}
24291
Brandt Bucher145bf262021-02-26 14:51:55 -080024292// _loop1_84: ('@' named_expression NEWLINE)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024293static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080024294_loop1_84_rule(Parser *p)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024295{
24296 D(p->level++);
24297 if (p->error_indicator) {
24298 D(p->level--);
24299 return NULL;
24300 }
24301 void *_res = NULL;
24302 int _mark = p->mark;
24303 int _start_mark = p->mark;
24304 void **_children = PyMem_Malloc(sizeof(void *));
24305 if (!_children) {
24306 p->error_indicator = 1;
24307 PyErr_NoMemory();
24308 D(p->level--);
24309 return NULL;
24310 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024311 Py_ssize_t _children_capacity = 1;
24312 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024313 { // ('@' named_expression NEWLINE)
24314 if (p->error_indicator) {
24315 D(p->level--);
24316 return NULL;
24317 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024318 D(fprintf(stderr, "%*c> _loop1_84[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('@' named_expression NEWLINE)"));
Pablo Galindoda743502021-04-15 14:06:39 +010024319 void *_tmp_171_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024320 while (
Pablo Galindoda743502021-04-15 14:06:39 +010024321 (_tmp_171_var = _tmp_171_rule(p)) // '@' named_expression NEWLINE
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024322 )
24323 {
Pablo Galindoda743502021-04-15 14:06:39 +010024324 _res = _tmp_171_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024325 if (_n == _children_capacity) {
24326 _children_capacity *= 2;
24327 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24328 if (!_new_children) {
24329 p->error_indicator = 1;
24330 PyErr_NoMemory();
24331 D(p->level--);
24332 return NULL;
24333 }
24334 _children = _new_children;
24335 }
24336 _children[_n++] = _res;
24337 _mark = p->mark;
24338 }
24339 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024340 D(fprintf(stderr, "%*c%s _loop1_84[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024341 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('@' named_expression NEWLINE)"));
24342 }
24343 if (_n == 0 || p->error_indicator) {
24344 PyMem_Free(_children);
24345 D(p->level--);
24346 return NULL;
24347 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024348 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024349 if (!_seq) {
24350 PyMem_Free(_children);
24351 p->error_indicator = 1;
24352 PyErr_NoMemory();
24353 D(p->level--);
24354 return NULL;
24355 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024356 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024357 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080024358 _PyPegen_insert_memo(p, _start_mark, _loop1_84_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024359 D(p->level--);
24360 return _seq;
24361}
24362
Brandt Bucher145bf262021-02-26 14:51:55 -080024363// _tmp_85: '(' arguments? ')'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024364static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080024365_tmp_85_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024366{
24367 D(p->level++);
24368 if (p->error_indicator) {
24369 D(p->level--);
24370 return NULL;
24371 }
24372 void * _res = NULL;
24373 int _mark = p->mark;
24374 { // '(' arguments? ')'
24375 if (p->error_indicator) {
24376 D(p->level--);
24377 return NULL;
24378 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024379 D(fprintf(stderr, "%*c> _tmp_85[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024380 Token * _literal;
24381 Token * _literal_1;
24382 void *z;
24383 if (
24384 (_literal = _PyPegen_expect_token(p, 7)) // token='('
24385 &&
24386 (z = arguments_rule(p), 1) // arguments?
24387 &&
24388 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
24389 )
24390 {
Brandt Bucher145bf262021-02-26 14:51:55 -080024391 D(fprintf(stderr, "%*c+ _tmp_85[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024392 _res = z;
24393 if (_res == NULL && PyErr_Occurred()) {
24394 p->error_indicator = 1;
24395 D(p->level--);
24396 return NULL;
24397 }
24398 goto done;
24399 }
24400 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024401 D(fprintf(stderr, "%*c%s _tmp_85[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024402 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' arguments? ')'"));
24403 }
24404 _res = NULL;
24405 done:
24406 D(p->level--);
24407 return _res;
24408}
24409
Brandt Bucher145bf262021-02-26 14:51:55 -080024410// _loop1_86: (',' star_expression)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024411static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080024412_loop1_86_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024413{
24414 D(p->level++);
24415 if (p->error_indicator) {
24416 D(p->level--);
24417 return NULL;
24418 }
24419 void *_res = NULL;
24420 int _mark = p->mark;
24421 int _start_mark = p->mark;
24422 void **_children = PyMem_Malloc(sizeof(void *));
24423 if (!_children) {
24424 p->error_indicator = 1;
24425 PyErr_NoMemory();
24426 D(p->level--);
24427 return NULL;
24428 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024429 Py_ssize_t _children_capacity = 1;
24430 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024431 { // (',' star_expression)
24432 if (p->error_indicator) {
24433 D(p->level--);
24434 return NULL;
24435 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024436 D(fprintf(stderr, "%*c> _loop1_86[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_expression)"));
Pablo Galindoda743502021-04-15 14:06:39 +010024437 void *_tmp_172_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024438 while (
Pablo Galindoda743502021-04-15 14:06:39 +010024439 (_tmp_172_var = _tmp_172_rule(p)) // ',' star_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024440 )
24441 {
Pablo Galindoda743502021-04-15 14:06:39 +010024442 _res = _tmp_172_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024443 if (_n == _children_capacity) {
24444 _children_capacity *= 2;
24445 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24446 if (!_new_children) {
24447 p->error_indicator = 1;
24448 PyErr_NoMemory();
24449 D(p->level--);
24450 return NULL;
24451 }
24452 _children = _new_children;
24453 }
24454 _children[_n++] = _res;
24455 _mark = p->mark;
24456 }
24457 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024458 D(fprintf(stderr, "%*c%s _loop1_86[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024459 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' star_expression)"));
24460 }
24461 if (_n == 0 || p->error_indicator) {
24462 PyMem_Free(_children);
24463 D(p->level--);
24464 return NULL;
24465 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024466 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024467 if (!_seq) {
24468 PyMem_Free(_children);
24469 p->error_indicator = 1;
24470 PyErr_NoMemory();
24471 D(p->level--);
24472 return NULL;
24473 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024474 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024475 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080024476 _PyPegen_insert_memo(p, _start_mark, _loop1_86_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024477 D(p->level--);
24478 return _seq;
24479}
24480
Brandt Bucher145bf262021-02-26 14:51:55 -080024481// _loop0_88: ',' star_named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024482static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080024483_loop0_88_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024484{
24485 D(p->level++);
24486 if (p->error_indicator) {
24487 D(p->level--);
24488 return NULL;
24489 }
24490 void *_res = NULL;
24491 int _mark = p->mark;
24492 int _start_mark = p->mark;
24493 void **_children = PyMem_Malloc(sizeof(void *));
24494 if (!_children) {
24495 p->error_indicator = 1;
24496 PyErr_NoMemory();
24497 D(p->level--);
24498 return NULL;
24499 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024500 Py_ssize_t _children_capacity = 1;
24501 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024502 { // ',' star_named_expression
24503 if (p->error_indicator) {
24504 D(p->level--);
24505 return NULL;
24506 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024507 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 +010024508 Token * _literal;
24509 expr_ty elem;
24510 while (
24511 (_literal = _PyPegen_expect_token(p, 12)) // token=','
24512 &&
24513 (elem = star_named_expression_rule(p)) // star_named_expression
24514 )
24515 {
24516 _res = elem;
24517 if (_res == NULL && PyErr_Occurred()) {
24518 p->error_indicator = 1;
24519 PyMem_Free(_children);
24520 D(p->level--);
24521 return NULL;
24522 }
24523 if (_n == _children_capacity) {
24524 _children_capacity *= 2;
24525 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24526 if (!_new_children) {
24527 p->error_indicator = 1;
24528 PyErr_NoMemory();
24529 D(p->level--);
24530 return NULL;
24531 }
24532 _children = _new_children;
24533 }
24534 _children[_n++] = _res;
24535 _mark = p->mark;
24536 }
24537 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024538 D(fprintf(stderr, "%*c%s _loop0_88[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024539 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_named_expression"));
24540 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024541 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024542 if (!_seq) {
24543 PyMem_Free(_children);
24544 p->error_indicator = 1;
24545 PyErr_NoMemory();
24546 D(p->level--);
24547 return NULL;
24548 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024549 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024550 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080024551 _PyPegen_insert_memo(p, _start_mark, _loop0_88_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024552 D(p->level--);
24553 return _seq;
24554}
24555
Brandt Bucher145bf262021-02-26 14:51:55 -080024556// _gather_87: star_named_expression _loop0_88
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024557static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080024558_gather_87_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024559{
24560 D(p->level++);
24561 if (p->error_indicator) {
24562 D(p->level--);
24563 return NULL;
24564 }
24565 asdl_seq * _res = NULL;
24566 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024567 { // star_named_expression _loop0_88
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024568 if (p->error_indicator) {
24569 D(p->level--);
24570 return NULL;
24571 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024572 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 +010024573 expr_ty elem;
24574 asdl_seq * seq;
24575 if (
24576 (elem = star_named_expression_rule(p)) // star_named_expression
24577 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080024578 (seq = _loop0_88_rule(p)) // _loop0_88
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024579 )
24580 {
Brandt Bucher145bf262021-02-26 14:51:55 -080024581 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 +010024582 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
24583 goto done;
24584 }
24585 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024586 D(fprintf(stderr, "%*c%s _gather_87[%d-%d]: %s failed!\n", p->level, ' ',
24587 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression _loop0_88"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024588 }
24589 _res = NULL;
24590 done:
24591 D(p->level--);
24592 return _res;
24593}
24594
Brandt Bucher145bf262021-02-26 14:51:55 -080024595// _loop1_89: (',' expression)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024596static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080024597_loop1_89_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024598{
24599 D(p->level++);
24600 if (p->error_indicator) {
24601 D(p->level--);
24602 return NULL;
24603 }
24604 void *_res = NULL;
24605 int _mark = p->mark;
24606 int _start_mark = p->mark;
24607 void **_children = PyMem_Malloc(sizeof(void *));
24608 if (!_children) {
24609 p->error_indicator = 1;
24610 PyErr_NoMemory();
24611 D(p->level--);
24612 return NULL;
24613 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024614 Py_ssize_t _children_capacity = 1;
24615 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024616 { // (',' expression)
24617 if (p->error_indicator) {
24618 D(p->level--);
24619 return NULL;
24620 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024621 D(fprintf(stderr, "%*c> _loop1_89[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' expression)"));
Pablo Galindoda743502021-04-15 14:06:39 +010024622 void *_tmp_173_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024623 while (
Pablo Galindoda743502021-04-15 14:06:39 +010024624 (_tmp_173_var = _tmp_173_rule(p)) // ',' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024625 )
24626 {
Pablo Galindoda743502021-04-15 14:06:39 +010024627 _res = _tmp_173_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024628 if (_n == _children_capacity) {
24629 _children_capacity *= 2;
24630 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24631 if (!_new_children) {
24632 p->error_indicator = 1;
24633 PyErr_NoMemory();
24634 D(p->level--);
24635 return NULL;
24636 }
24637 _children = _new_children;
24638 }
24639 _children[_n++] = _res;
24640 _mark = p->mark;
24641 }
24642 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024643 D(fprintf(stderr, "%*c%s _loop1_89[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024644 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' expression)"));
24645 }
24646 if (_n == 0 || p->error_indicator) {
24647 PyMem_Free(_children);
24648 D(p->level--);
24649 return NULL;
24650 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024651 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024652 if (!_seq) {
24653 PyMem_Free(_children);
24654 p->error_indicator = 1;
24655 PyErr_NoMemory();
24656 D(p->level--);
24657 return NULL;
24658 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024659 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024660 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080024661 _PyPegen_insert_memo(p, _start_mark, _loop1_89_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024662 D(p->level--);
24663 return _seq;
24664}
24665
Brandt Bucher145bf262021-02-26 14:51:55 -080024666// _loop0_90: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024667static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080024668_loop0_90_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024669{
24670 D(p->level++);
24671 if (p->error_indicator) {
24672 D(p->level--);
24673 return NULL;
24674 }
24675 void *_res = NULL;
24676 int _mark = p->mark;
24677 int _start_mark = p->mark;
24678 void **_children = PyMem_Malloc(sizeof(void *));
24679 if (!_children) {
24680 p->error_indicator = 1;
24681 PyErr_NoMemory();
24682 D(p->level--);
24683 return NULL;
24684 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024685 Py_ssize_t _children_capacity = 1;
24686 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024687 { // lambda_param_no_default
24688 if (p->error_indicator) {
24689 D(p->level--);
24690 return NULL;
24691 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024692 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 +010024693 arg_ty lambda_param_no_default_var;
24694 while (
24695 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
24696 )
24697 {
24698 _res = lambda_param_no_default_var;
24699 if (_n == _children_capacity) {
24700 _children_capacity *= 2;
24701 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24702 if (!_new_children) {
24703 p->error_indicator = 1;
24704 PyErr_NoMemory();
24705 D(p->level--);
24706 return NULL;
24707 }
24708 _children = _new_children;
24709 }
24710 _children[_n++] = _res;
24711 _mark = p->mark;
24712 }
24713 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024714 D(fprintf(stderr, "%*c%s _loop0_90[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024715 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024716 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024717 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024718 if (!_seq) {
24719 PyMem_Free(_children);
24720 p->error_indicator = 1;
24721 PyErr_NoMemory();
24722 D(p->level--);
24723 return NULL;
24724 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024725 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024726 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080024727 _PyPegen_insert_memo(p, _start_mark, _loop0_90_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024728 D(p->level--);
24729 return _seq;
24730}
24731
Brandt Bucher145bf262021-02-26 14:51:55 -080024732// _loop0_91: lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024733static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080024734_loop0_91_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024735{
24736 D(p->level++);
24737 if (p->error_indicator) {
24738 D(p->level--);
24739 return NULL;
24740 }
24741 void *_res = NULL;
24742 int _mark = p->mark;
24743 int _start_mark = p->mark;
24744 void **_children = PyMem_Malloc(sizeof(void *));
24745 if (!_children) {
24746 p->error_indicator = 1;
24747 PyErr_NoMemory();
24748 D(p->level--);
24749 return NULL;
24750 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024751 Py_ssize_t _children_capacity = 1;
24752 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024753 { // lambda_param_with_default
24754 if (p->error_indicator) {
24755 D(p->level--);
24756 return NULL;
24757 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024758 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 +010024759 NameDefaultPair* lambda_param_with_default_var;
24760 while (
24761 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
24762 )
24763 {
24764 _res = lambda_param_with_default_var;
24765 if (_n == _children_capacity) {
24766 _children_capacity *= 2;
24767 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24768 if (!_new_children) {
24769 p->error_indicator = 1;
24770 PyErr_NoMemory();
24771 D(p->level--);
24772 return NULL;
24773 }
24774 _children = _new_children;
24775 }
24776 _children[_n++] = _res;
24777 _mark = p->mark;
24778 }
24779 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024780 D(fprintf(stderr, "%*c%s _loop0_91[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024781 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
24782 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024783 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024784 if (!_seq) {
24785 PyMem_Free(_children);
24786 p->error_indicator = 1;
24787 PyErr_NoMemory();
24788 D(p->level--);
24789 return NULL;
24790 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024791 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024792 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080024793 _PyPegen_insert_memo(p, _start_mark, _loop0_91_type, _seq);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024794 D(p->level--);
24795 return _seq;
24796}
24797
Brandt Bucher145bf262021-02-26 14:51:55 -080024798// _loop0_92: lambda_param_with_default
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024799static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080024800_loop0_92_rule(Parser *p)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024801{
24802 D(p->level++);
24803 if (p->error_indicator) {
24804 D(p->level--);
24805 return NULL;
24806 }
24807 void *_res = NULL;
24808 int _mark = p->mark;
24809 int _start_mark = p->mark;
24810 void **_children = PyMem_Malloc(sizeof(void *));
24811 if (!_children) {
24812 p->error_indicator = 1;
24813 PyErr_NoMemory();
24814 D(p->level--);
24815 return NULL;
24816 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024817 Py_ssize_t _children_capacity = 1;
24818 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024819 { // lambda_param_with_default
24820 if (p->error_indicator) {
24821 D(p->level--);
24822 return NULL;
24823 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024824 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 +000024825 NameDefaultPair* lambda_param_with_default_var;
24826 while (
24827 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
24828 )
24829 {
24830 _res = lambda_param_with_default_var;
24831 if (_n == _children_capacity) {
24832 _children_capacity *= 2;
24833 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24834 if (!_new_children) {
24835 p->error_indicator = 1;
24836 PyErr_NoMemory();
24837 D(p->level--);
24838 return NULL;
24839 }
24840 _children = _new_children;
24841 }
24842 _children[_n++] = _res;
24843 _mark = p->mark;
24844 }
24845 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024846 D(fprintf(stderr, "%*c%s _loop0_92[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024847 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
24848 }
24849 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
24850 if (!_seq) {
24851 PyMem_Free(_children);
24852 p->error_indicator = 1;
24853 PyErr_NoMemory();
24854 D(p->level--);
24855 return NULL;
24856 }
24857 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
24858 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080024859 _PyPegen_insert_memo(p, _start_mark, _loop0_92_type, _seq);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024860 D(p->level--);
24861 return _seq;
24862}
24863
Brandt Bucher145bf262021-02-26 14:51:55 -080024864// _loop1_93: lambda_param_no_default
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024865static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080024866_loop1_93_rule(Parser *p)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024867{
24868 D(p->level++);
24869 if (p->error_indicator) {
24870 D(p->level--);
24871 return NULL;
24872 }
24873 void *_res = NULL;
24874 int _mark = p->mark;
24875 int _start_mark = p->mark;
24876 void **_children = PyMem_Malloc(sizeof(void *));
24877 if (!_children) {
24878 p->error_indicator = 1;
24879 PyErr_NoMemory();
24880 D(p->level--);
24881 return NULL;
24882 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024883 Py_ssize_t _children_capacity = 1;
24884 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024885 { // lambda_param_no_default
24886 if (p->error_indicator) {
24887 D(p->level--);
24888 return NULL;
24889 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024890 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 +000024891 arg_ty lambda_param_no_default_var;
24892 while (
24893 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
24894 )
24895 {
24896 _res = lambda_param_no_default_var;
24897 if (_n == _children_capacity) {
24898 _children_capacity *= 2;
24899 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24900 if (!_new_children) {
24901 p->error_indicator = 1;
24902 PyErr_NoMemory();
24903 D(p->level--);
24904 return NULL;
24905 }
24906 _children = _new_children;
24907 }
24908 _children[_n++] = _res;
24909 _mark = p->mark;
24910 }
24911 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024912 D(fprintf(stderr, "%*c%s _loop1_93[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024913 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
24914 }
24915 if (_n == 0 || p->error_indicator) {
24916 PyMem_Free(_children);
24917 D(p->level--);
24918 return NULL;
24919 }
24920 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
24921 if (!_seq) {
24922 PyMem_Free(_children);
24923 p->error_indicator = 1;
24924 PyErr_NoMemory();
24925 D(p->level--);
24926 return NULL;
24927 }
24928 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
24929 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080024930 _PyPegen_insert_memo(p, _start_mark, _loop1_93_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024931 D(p->level--);
24932 return _seq;
24933}
24934
Brandt Bucher145bf262021-02-26 14:51:55 -080024935// _loop0_94: lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024936static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080024937_loop0_94_rule(Parser *p)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024938{
24939 D(p->level++);
24940 if (p->error_indicator) {
24941 D(p->level--);
24942 return NULL;
24943 }
24944 void *_res = NULL;
24945 int _mark = p->mark;
24946 int _start_mark = p->mark;
24947 void **_children = PyMem_Malloc(sizeof(void *));
24948 if (!_children) {
24949 p->error_indicator = 1;
24950 PyErr_NoMemory();
24951 D(p->level--);
24952 return NULL;
24953 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024954 Py_ssize_t _children_capacity = 1;
24955 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024956 { // lambda_param_with_default
24957 if (p->error_indicator) {
24958 D(p->level--);
24959 return NULL;
24960 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024961 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 +030024962 NameDefaultPair* lambda_param_with_default_var;
24963 while (
24964 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
24965 )
24966 {
24967 _res = lambda_param_with_default_var;
24968 if (_n == _children_capacity) {
24969 _children_capacity *= 2;
24970 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24971 if (!_new_children) {
24972 p->error_indicator = 1;
24973 PyErr_NoMemory();
24974 D(p->level--);
24975 return NULL;
24976 }
24977 _children = _new_children;
24978 }
24979 _children[_n++] = _res;
24980 _mark = p->mark;
24981 }
24982 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024983 D(fprintf(stderr, "%*c%s _loop0_94[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024984 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
24985 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024986 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024987 if (!_seq) {
24988 PyMem_Free(_children);
24989 p->error_indicator = 1;
24990 PyErr_NoMemory();
24991 D(p->level--);
24992 return NULL;
24993 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024994 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024995 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080024996 _PyPegen_insert_memo(p, _start_mark, _loop0_94_type, _seq);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024997 D(p->level--);
24998 return _seq;
24999}
25000
Brandt Bucher145bf262021-02-26 14:51:55 -080025001// _loop1_95: lambda_param_with_default
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025002static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025003_loop1_95_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025004{
25005 D(p->level++);
25006 if (p->error_indicator) {
25007 D(p->level--);
25008 return NULL;
25009 }
25010 void *_res = NULL;
25011 int _mark = p->mark;
25012 int _start_mark = p->mark;
25013 void **_children = PyMem_Malloc(sizeof(void *));
25014 if (!_children) {
25015 p->error_indicator = 1;
25016 PyErr_NoMemory();
25017 D(p->level--);
25018 return NULL;
25019 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025020 Py_ssize_t _children_capacity = 1;
25021 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000025022 { // lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025023 if (p->error_indicator) {
25024 D(p->level--);
25025 return NULL;
25026 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025027 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 +000025028 NameDefaultPair* lambda_param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025029 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000025030 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025031 )
25032 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000025033 _res = lambda_param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025034 if (_n == _children_capacity) {
25035 _children_capacity *= 2;
25036 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25037 if (!_new_children) {
25038 p->error_indicator = 1;
25039 PyErr_NoMemory();
25040 D(p->level--);
25041 return NULL;
25042 }
25043 _children = _new_children;
25044 }
25045 _children[_n++] = _res;
25046 _mark = p->mark;
25047 }
25048 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025049 D(fprintf(stderr, "%*c%s _loop1_95[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000025050 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025051 }
25052 if (_n == 0 || p->error_indicator) {
25053 PyMem_Free(_children);
25054 D(p->level--);
25055 return NULL;
25056 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025057 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025058 if (!_seq) {
25059 PyMem_Free(_children);
25060 p->error_indicator = 1;
25061 PyErr_NoMemory();
25062 D(p->level--);
25063 return NULL;
25064 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025065 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025066 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025067 _PyPegen_insert_memo(p, _start_mark, _loop1_95_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025068 D(p->level--);
25069 return _seq;
25070}
25071
Brandt Bucher145bf262021-02-26 14:51:55 -080025072// _loop1_96: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025073static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025074_loop1_96_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025075{
25076 D(p->level++);
25077 if (p->error_indicator) {
25078 D(p->level--);
25079 return NULL;
25080 }
25081 void *_res = NULL;
25082 int _mark = p->mark;
25083 int _start_mark = p->mark;
25084 void **_children = PyMem_Malloc(sizeof(void *));
25085 if (!_children) {
25086 p->error_indicator = 1;
25087 PyErr_NoMemory();
25088 D(p->level--);
25089 return NULL;
25090 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025091 Py_ssize_t _children_capacity = 1;
25092 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000025093 { // lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025094 if (p->error_indicator) {
25095 D(p->level--);
25096 return NULL;
25097 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025098 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 +000025099 arg_ty lambda_param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025100 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000025101 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025102 )
25103 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000025104 _res = lambda_param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025105 if (_n == _children_capacity) {
25106 _children_capacity *= 2;
25107 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25108 if (!_new_children) {
25109 p->error_indicator = 1;
25110 PyErr_NoMemory();
25111 D(p->level--);
25112 return NULL;
25113 }
25114 _children = _new_children;
25115 }
25116 _children[_n++] = _res;
25117 _mark = p->mark;
25118 }
25119 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025120 D(fprintf(stderr, "%*c%s _loop1_96[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000025121 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
25122 }
25123 if (_n == 0 || p->error_indicator) {
25124 PyMem_Free(_children);
25125 D(p->level--);
25126 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025127 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025128 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025129 if (!_seq) {
25130 PyMem_Free(_children);
25131 p->error_indicator = 1;
25132 PyErr_NoMemory();
25133 D(p->level--);
25134 return NULL;
25135 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025136 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025137 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025138 _PyPegen_insert_memo(p, _start_mark, _loop1_96_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025139 D(p->level--);
25140 return _seq;
25141}
25142
Brandt Bucher145bf262021-02-26 14:51:55 -080025143// _loop1_97: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025144static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025145_loop1_97_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025146{
25147 D(p->level++);
25148 if (p->error_indicator) {
25149 D(p->level--);
25150 return NULL;
25151 }
25152 void *_res = NULL;
25153 int _mark = p->mark;
25154 int _start_mark = p->mark;
25155 void **_children = PyMem_Malloc(sizeof(void *));
25156 if (!_children) {
25157 p->error_indicator = 1;
25158 PyErr_NoMemory();
25159 D(p->level--);
25160 return NULL;
25161 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025162 Py_ssize_t _children_capacity = 1;
25163 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000025164 { // lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025165 if (p->error_indicator) {
25166 D(p->level--);
25167 return NULL;
25168 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025169 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 +000025170 arg_ty lambda_param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025171 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000025172 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025173 )
25174 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000025175 _res = lambda_param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025176 if (_n == _children_capacity) {
25177 _children_capacity *= 2;
25178 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25179 if (!_new_children) {
25180 p->error_indicator = 1;
25181 PyErr_NoMemory();
25182 D(p->level--);
25183 return NULL;
25184 }
25185 _children = _new_children;
25186 }
25187 _children[_n++] = _res;
25188 _mark = p->mark;
25189 }
25190 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025191 D(fprintf(stderr, "%*c%s _loop1_97[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000025192 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025193 }
25194 if (_n == 0 || p->error_indicator) {
25195 PyMem_Free(_children);
25196 D(p->level--);
25197 return NULL;
25198 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025199 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025200 if (!_seq) {
25201 PyMem_Free(_children);
25202 p->error_indicator = 1;
25203 PyErr_NoMemory();
25204 D(p->level--);
25205 return NULL;
25206 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025207 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025208 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025209 _PyPegen_insert_memo(p, _start_mark, _loop1_97_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025210 D(p->level--);
25211 return _seq;
25212}
25213
Brandt Bucher145bf262021-02-26 14:51:55 -080025214// _loop0_98: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025215static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025216_loop0_98_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025217{
25218 D(p->level++);
25219 if (p->error_indicator) {
25220 D(p->level--);
25221 return NULL;
25222 }
25223 void *_res = NULL;
25224 int _mark = p->mark;
25225 int _start_mark = p->mark;
25226 void **_children = PyMem_Malloc(sizeof(void *));
25227 if (!_children) {
25228 p->error_indicator = 1;
25229 PyErr_NoMemory();
25230 D(p->level--);
25231 return NULL;
25232 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025233 Py_ssize_t _children_capacity = 1;
25234 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025235 { // lambda_param_no_default
25236 if (p->error_indicator) {
25237 D(p->level--);
25238 return NULL;
25239 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025240 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 +010025241 arg_ty lambda_param_no_default_var;
25242 while (
25243 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
25244 )
25245 {
25246 _res = lambda_param_no_default_var;
25247 if (_n == _children_capacity) {
25248 _children_capacity *= 2;
25249 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25250 if (!_new_children) {
25251 p->error_indicator = 1;
25252 PyErr_NoMemory();
25253 D(p->level--);
25254 return NULL;
25255 }
25256 _children = _new_children;
25257 }
25258 _children[_n++] = _res;
25259 _mark = p->mark;
25260 }
25261 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025262 D(fprintf(stderr, "%*c%s _loop0_98[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025263 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
25264 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025265 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025266 if (!_seq) {
25267 PyMem_Free(_children);
25268 p->error_indicator = 1;
25269 PyErr_NoMemory();
25270 D(p->level--);
25271 return NULL;
25272 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025273 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025274 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025275 _PyPegen_insert_memo(p, _start_mark, _loop0_98_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025276 D(p->level--);
25277 return _seq;
25278}
25279
Brandt Bucher145bf262021-02-26 14:51:55 -080025280// _loop1_99: lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025281static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025282_loop1_99_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025283{
25284 D(p->level++);
25285 if (p->error_indicator) {
25286 D(p->level--);
25287 return NULL;
25288 }
25289 void *_res = NULL;
25290 int _mark = p->mark;
25291 int _start_mark = p->mark;
25292 void **_children = PyMem_Malloc(sizeof(void *));
25293 if (!_children) {
25294 p->error_indicator = 1;
25295 PyErr_NoMemory();
25296 D(p->level--);
25297 return NULL;
25298 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025299 Py_ssize_t _children_capacity = 1;
25300 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000025301 { // lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025302 if (p->error_indicator) {
25303 D(p->level--);
25304 return NULL;
25305 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025306 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 +000025307 NameDefaultPair* lambda_param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025308 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000025309 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025310 )
25311 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000025312 _res = lambda_param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025313 if (_n == _children_capacity) {
25314 _children_capacity *= 2;
25315 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25316 if (!_new_children) {
25317 p->error_indicator = 1;
25318 PyErr_NoMemory();
25319 D(p->level--);
25320 return NULL;
25321 }
25322 _children = _new_children;
25323 }
25324 _children[_n++] = _res;
25325 _mark = p->mark;
25326 }
25327 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025328 D(fprintf(stderr, "%*c%s _loop1_99[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000025329 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025330 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025331 if (_n == 0 || p->error_indicator) {
25332 PyMem_Free(_children);
25333 D(p->level--);
25334 return NULL;
25335 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025336 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025337 if (!_seq) {
25338 PyMem_Free(_children);
25339 p->error_indicator = 1;
25340 PyErr_NoMemory();
25341 D(p->level--);
25342 return NULL;
25343 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025344 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025345 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025346 _PyPegen_insert_memo(p, _start_mark, _loop1_99_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025347 D(p->level--);
25348 return _seq;
25349}
25350
Brandt Bucher145bf262021-02-26 14:51:55 -080025351// _loop0_100: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025352static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025353_loop0_100_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025354{
25355 D(p->level++);
25356 if (p->error_indicator) {
25357 D(p->level--);
25358 return NULL;
25359 }
25360 void *_res = NULL;
25361 int _mark = p->mark;
25362 int _start_mark = p->mark;
25363 void **_children = PyMem_Malloc(sizeof(void *));
25364 if (!_children) {
25365 p->error_indicator = 1;
25366 PyErr_NoMemory();
25367 D(p->level--);
25368 return NULL;
25369 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025370 Py_ssize_t _children_capacity = 1;
25371 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025372 { // lambda_param_no_default
25373 if (p->error_indicator) {
25374 D(p->level--);
25375 return NULL;
25376 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025377 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 +010025378 arg_ty lambda_param_no_default_var;
25379 while (
25380 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
25381 )
25382 {
25383 _res = lambda_param_no_default_var;
25384 if (_n == _children_capacity) {
25385 _children_capacity *= 2;
25386 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25387 if (!_new_children) {
25388 p->error_indicator = 1;
25389 PyErr_NoMemory();
25390 D(p->level--);
25391 return NULL;
25392 }
25393 _children = _new_children;
25394 }
25395 _children[_n++] = _res;
25396 _mark = p->mark;
25397 }
25398 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025399 D(fprintf(stderr, "%*c%s _loop0_100[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025400 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
25401 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025402 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025403 if (!_seq) {
25404 PyMem_Free(_children);
25405 p->error_indicator = 1;
25406 PyErr_NoMemory();
25407 D(p->level--);
25408 return NULL;
25409 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025410 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025411 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025412 _PyPegen_insert_memo(p, _start_mark, _loop0_100_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025413 D(p->level--);
25414 return _seq;
25415}
25416
Brandt Bucher145bf262021-02-26 14:51:55 -080025417// _loop1_101: lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025418static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025419_loop1_101_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025420{
25421 D(p->level++);
25422 if (p->error_indicator) {
25423 D(p->level--);
25424 return NULL;
25425 }
25426 void *_res = NULL;
25427 int _mark = p->mark;
25428 int _start_mark = p->mark;
25429 void **_children = PyMem_Malloc(sizeof(void *));
25430 if (!_children) {
25431 p->error_indicator = 1;
25432 PyErr_NoMemory();
25433 D(p->level--);
25434 return NULL;
25435 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025436 Py_ssize_t _children_capacity = 1;
25437 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025438 { // lambda_param_with_default
25439 if (p->error_indicator) {
25440 D(p->level--);
25441 return NULL;
25442 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025443 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 +010025444 NameDefaultPair* lambda_param_with_default_var;
25445 while (
25446 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
25447 )
25448 {
25449 _res = lambda_param_with_default_var;
25450 if (_n == _children_capacity) {
25451 _children_capacity *= 2;
25452 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25453 if (!_new_children) {
25454 p->error_indicator = 1;
25455 PyErr_NoMemory();
25456 D(p->level--);
25457 return NULL;
25458 }
25459 _children = _new_children;
25460 }
25461 _children[_n++] = _res;
25462 _mark = p->mark;
25463 }
25464 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025465 D(fprintf(stderr, "%*c%s _loop1_101[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025466 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
25467 }
25468 if (_n == 0 || p->error_indicator) {
25469 PyMem_Free(_children);
25470 D(p->level--);
25471 return NULL;
25472 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025473 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025474 if (!_seq) {
25475 PyMem_Free(_children);
25476 p->error_indicator = 1;
25477 PyErr_NoMemory();
25478 D(p->level--);
25479 return NULL;
25480 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025481 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025482 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025483 _PyPegen_insert_memo(p, _start_mark, _loop1_101_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025484 D(p->level--);
25485 return _seq;
25486}
25487
Brandt Bucher145bf262021-02-26 14:51:55 -080025488// _loop0_102: lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025489static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025490_loop0_102_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025491{
25492 D(p->level++);
25493 if (p->error_indicator) {
25494 D(p->level--);
25495 return NULL;
25496 }
25497 void *_res = NULL;
25498 int _mark = p->mark;
25499 int _start_mark = p->mark;
25500 void **_children = PyMem_Malloc(sizeof(void *));
25501 if (!_children) {
25502 p->error_indicator = 1;
25503 PyErr_NoMemory();
25504 D(p->level--);
25505 return NULL;
25506 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025507 Py_ssize_t _children_capacity = 1;
25508 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000025509 { // lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025510 if (p->error_indicator) {
25511 D(p->level--);
25512 return NULL;
25513 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025514 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 +000025515 NameDefaultPair* lambda_param_maybe_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025516 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000025517 (lambda_param_maybe_default_var = lambda_param_maybe_default_rule(p)) // lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025518 )
25519 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000025520 _res = lambda_param_maybe_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025521 if (_n == _children_capacity) {
25522 _children_capacity *= 2;
25523 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25524 if (!_new_children) {
25525 p->error_indicator = 1;
25526 PyErr_NoMemory();
25527 D(p->level--);
25528 return NULL;
25529 }
25530 _children = _new_children;
25531 }
25532 _children[_n++] = _res;
25533 _mark = p->mark;
25534 }
25535 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025536 D(fprintf(stderr, "%*c%s _loop0_102[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000025537 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_maybe_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025538 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025539 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025540 if (!_seq) {
25541 PyMem_Free(_children);
25542 p->error_indicator = 1;
25543 PyErr_NoMemory();
25544 D(p->level--);
25545 return NULL;
25546 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025547 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025548 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025549 _PyPegen_insert_memo(p, _start_mark, _loop0_102_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025550 D(p->level--);
25551 return _seq;
25552}
25553
Brandt Bucher145bf262021-02-26 14:51:55 -080025554// _loop1_103: lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025555static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025556_loop1_103_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025557{
25558 D(p->level++);
25559 if (p->error_indicator) {
25560 D(p->level--);
25561 return NULL;
25562 }
25563 void *_res = NULL;
25564 int _mark = p->mark;
25565 int _start_mark = p->mark;
25566 void **_children = PyMem_Malloc(sizeof(void *));
25567 if (!_children) {
25568 p->error_indicator = 1;
25569 PyErr_NoMemory();
25570 D(p->level--);
25571 return NULL;
25572 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025573 Py_ssize_t _children_capacity = 1;
25574 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000025575 { // lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025576 if (p->error_indicator) {
25577 D(p->level--);
25578 return NULL;
25579 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025580 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 +000025581 NameDefaultPair* lambda_param_maybe_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025582 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000025583 (lambda_param_maybe_default_var = lambda_param_maybe_default_rule(p)) // lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025584 )
25585 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000025586 _res = lambda_param_maybe_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025587 if (_n == _children_capacity) {
25588 _children_capacity *= 2;
25589 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25590 if (!_new_children) {
25591 p->error_indicator = 1;
25592 PyErr_NoMemory();
25593 D(p->level--);
25594 return NULL;
25595 }
25596 _children = _new_children;
25597 }
25598 _children[_n++] = _res;
25599 _mark = p->mark;
25600 }
25601 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025602 D(fprintf(stderr, "%*c%s _loop1_103[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000025603 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_maybe_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025604 }
25605 if (_n == 0 || p->error_indicator) {
25606 PyMem_Free(_children);
25607 D(p->level--);
25608 return NULL;
25609 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025610 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025611 if (!_seq) {
25612 PyMem_Free(_children);
25613 p->error_indicator = 1;
25614 PyErr_NoMemory();
25615 D(p->level--);
25616 return NULL;
25617 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025618 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025619 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025620 _PyPegen_insert_memo(p, _start_mark, _loop1_103_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025621 D(p->level--);
25622 return _seq;
25623}
25624
Brandt Bucher145bf262021-02-26 14:51:55 -080025625// _loop1_104: ('or' conjunction)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025626static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025627_loop1_104_rule(Parser *p)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025628{
25629 D(p->level++);
25630 if (p->error_indicator) {
25631 D(p->level--);
25632 return NULL;
25633 }
25634 void *_res = NULL;
25635 int _mark = p->mark;
25636 int _start_mark = p->mark;
25637 void **_children = PyMem_Malloc(sizeof(void *));
25638 if (!_children) {
25639 p->error_indicator = 1;
25640 PyErr_NoMemory();
25641 D(p->level--);
25642 return NULL;
25643 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025644 Py_ssize_t _children_capacity = 1;
25645 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025646 { // ('or' conjunction)
25647 if (p->error_indicator) {
25648 D(p->level--);
25649 return NULL;
25650 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025651 D(fprintf(stderr, "%*c> _loop1_104[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('or' conjunction)"));
Pablo Galindoda743502021-04-15 14:06:39 +010025652 void *_tmp_174_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025653 while (
Pablo Galindoda743502021-04-15 14:06:39 +010025654 (_tmp_174_var = _tmp_174_rule(p)) // 'or' conjunction
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025655 )
25656 {
Pablo Galindoda743502021-04-15 14:06:39 +010025657 _res = _tmp_174_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025658 if (_n == _children_capacity) {
25659 _children_capacity *= 2;
25660 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25661 if (!_new_children) {
25662 p->error_indicator = 1;
25663 PyErr_NoMemory();
25664 D(p->level--);
25665 return NULL;
25666 }
25667 _children = _new_children;
25668 }
25669 _children[_n++] = _res;
25670 _mark = p->mark;
25671 }
25672 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025673 D(fprintf(stderr, "%*c%s _loop1_104[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025674 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('or' conjunction)"));
25675 }
25676 if (_n == 0 || p->error_indicator) {
25677 PyMem_Free(_children);
25678 D(p->level--);
25679 return NULL;
25680 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025681 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025682 if (!_seq) {
25683 PyMem_Free(_children);
25684 p->error_indicator = 1;
25685 PyErr_NoMemory();
25686 D(p->level--);
25687 return NULL;
25688 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025689 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025690 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025691 _PyPegen_insert_memo(p, _start_mark, _loop1_104_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025692 D(p->level--);
25693 return _seq;
25694}
25695
Brandt Bucher145bf262021-02-26 14:51:55 -080025696// _loop1_105: ('and' inversion)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025697static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025698_loop1_105_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025699{
25700 D(p->level++);
25701 if (p->error_indicator) {
25702 D(p->level--);
25703 return NULL;
25704 }
25705 void *_res = NULL;
25706 int _mark = p->mark;
25707 int _start_mark = p->mark;
25708 void **_children = PyMem_Malloc(sizeof(void *));
25709 if (!_children) {
25710 p->error_indicator = 1;
25711 PyErr_NoMemory();
25712 D(p->level--);
25713 return NULL;
25714 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025715 Py_ssize_t _children_capacity = 1;
25716 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025717 { // ('and' inversion)
25718 if (p->error_indicator) {
25719 D(p->level--);
25720 return NULL;
25721 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025722 D(fprintf(stderr, "%*c> _loop1_105[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('and' inversion)"));
Pablo Galindoda743502021-04-15 14:06:39 +010025723 void *_tmp_175_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025724 while (
Pablo Galindoda743502021-04-15 14:06:39 +010025725 (_tmp_175_var = _tmp_175_rule(p)) // 'and' inversion
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025726 )
25727 {
Pablo Galindoda743502021-04-15 14:06:39 +010025728 _res = _tmp_175_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025729 if (_n == _children_capacity) {
25730 _children_capacity *= 2;
25731 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25732 if (!_new_children) {
25733 p->error_indicator = 1;
25734 PyErr_NoMemory();
25735 D(p->level--);
25736 return NULL;
25737 }
25738 _children = _new_children;
25739 }
25740 _children[_n++] = _res;
25741 _mark = p->mark;
25742 }
25743 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025744 D(fprintf(stderr, "%*c%s _loop1_105[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025745 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('and' inversion)"));
25746 }
25747 if (_n == 0 || p->error_indicator) {
25748 PyMem_Free(_children);
25749 D(p->level--);
25750 return NULL;
25751 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025752 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025753 if (!_seq) {
25754 PyMem_Free(_children);
25755 p->error_indicator = 1;
25756 PyErr_NoMemory();
25757 D(p->level--);
25758 return NULL;
25759 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025760 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025761 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025762 _PyPegen_insert_memo(p, _start_mark, _loop1_105_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025763 D(p->level--);
25764 return _seq;
25765}
25766
Brandt Bucher145bf262021-02-26 14:51:55 -080025767// _loop1_106: compare_op_bitwise_or_pair
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025768static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025769_loop1_106_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025770{
25771 D(p->level++);
25772 if (p->error_indicator) {
25773 D(p->level--);
25774 return NULL;
25775 }
25776 void *_res = NULL;
25777 int _mark = p->mark;
25778 int _start_mark = p->mark;
25779 void **_children = PyMem_Malloc(sizeof(void *));
25780 if (!_children) {
25781 p->error_indicator = 1;
25782 PyErr_NoMemory();
25783 D(p->level--);
25784 return NULL;
25785 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025786 Py_ssize_t _children_capacity = 1;
25787 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025788 { // compare_op_bitwise_or_pair
25789 if (p->error_indicator) {
25790 D(p->level--);
25791 return NULL;
25792 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025793 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 +010025794 CmpopExprPair* compare_op_bitwise_or_pair_var;
25795 while (
25796 (compare_op_bitwise_or_pair_var = compare_op_bitwise_or_pair_rule(p)) // compare_op_bitwise_or_pair
25797 )
25798 {
25799 _res = compare_op_bitwise_or_pair_var;
25800 if (_n == _children_capacity) {
25801 _children_capacity *= 2;
25802 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25803 if (!_new_children) {
25804 p->error_indicator = 1;
25805 PyErr_NoMemory();
25806 D(p->level--);
25807 return NULL;
25808 }
25809 _children = _new_children;
25810 }
25811 _children[_n++] = _res;
25812 _mark = p->mark;
25813 }
25814 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025815 D(fprintf(stderr, "%*c%s _loop1_106[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025816 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "compare_op_bitwise_or_pair"));
25817 }
25818 if (_n == 0 || p->error_indicator) {
25819 PyMem_Free(_children);
25820 D(p->level--);
25821 return NULL;
25822 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025823 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025824 if (!_seq) {
25825 PyMem_Free(_children);
25826 p->error_indicator = 1;
25827 PyErr_NoMemory();
25828 D(p->level--);
25829 return NULL;
25830 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025831 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025832 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025833 _PyPegen_insert_memo(p, _start_mark, _loop1_106_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025834 D(p->level--);
25835 return _seq;
25836}
25837
Brandt Bucher145bf262021-02-26 14:51:55 -080025838// _tmp_107: '!='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025839static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080025840_tmp_107_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025841{
25842 D(p->level++);
25843 if (p->error_indicator) {
25844 D(p->level--);
25845 return NULL;
25846 }
25847 void * _res = NULL;
25848 int _mark = p->mark;
25849 { // '!='
25850 if (p->error_indicator) {
25851 D(p->level--);
25852 return NULL;
25853 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025854 D(fprintf(stderr, "%*c> _tmp_107[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'!='"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025855 Token * tok;
25856 if (
25857 (tok = _PyPegen_expect_token(p, 28)) // token='!='
25858 )
25859 {
Brandt Bucher145bf262021-02-26 14:51:55 -080025860 D(fprintf(stderr, "%*c+ _tmp_107[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'!='"));
Pablo Galindo06f8c332020-10-30 23:48:42 +000025861 _res = _PyPegen_check_barry_as_flufl ( p , tok ) ? NULL : tok;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025862 if (_res == NULL && PyErr_Occurred()) {
25863 p->error_indicator = 1;
25864 D(p->level--);
25865 return NULL;
25866 }
25867 goto done;
25868 }
25869 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025870 D(fprintf(stderr, "%*c%s _tmp_107[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025871 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'!='"));
25872 }
25873 _res = NULL;
25874 done:
25875 D(p->level--);
25876 return _res;
25877}
25878
Brandt Bucher145bf262021-02-26 14:51:55 -080025879// _loop0_109: ',' slice
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025880static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025881_loop0_109_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025882{
25883 D(p->level++);
25884 if (p->error_indicator) {
25885 D(p->level--);
25886 return NULL;
25887 }
25888 void *_res = NULL;
25889 int _mark = p->mark;
25890 int _start_mark = p->mark;
25891 void **_children = PyMem_Malloc(sizeof(void *));
25892 if (!_children) {
25893 p->error_indicator = 1;
25894 PyErr_NoMemory();
25895 D(p->level--);
25896 return NULL;
25897 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025898 Py_ssize_t _children_capacity = 1;
25899 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025900 { // ',' slice
25901 if (p->error_indicator) {
25902 D(p->level--);
25903 return NULL;
25904 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025905 D(fprintf(stderr, "%*c> _loop0_109[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' slice"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025906 Token * _literal;
25907 expr_ty elem;
25908 while (
25909 (_literal = _PyPegen_expect_token(p, 12)) // token=','
25910 &&
25911 (elem = slice_rule(p)) // slice
25912 )
25913 {
25914 _res = elem;
25915 if (_res == NULL && PyErr_Occurred()) {
25916 p->error_indicator = 1;
25917 PyMem_Free(_children);
25918 D(p->level--);
25919 return NULL;
25920 }
25921 if (_n == _children_capacity) {
25922 _children_capacity *= 2;
25923 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25924 if (!_new_children) {
25925 p->error_indicator = 1;
25926 PyErr_NoMemory();
25927 D(p->level--);
25928 return NULL;
25929 }
25930 _children = _new_children;
25931 }
25932 _children[_n++] = _res;
25933 _mark = p->mark;
25934 }
25935 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025936 D(fprintf(stderr, "%*c%s _loop0_109[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025937 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' slice"));
25938 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025939 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025940 if (!_seq) {
25941 PyMem_Free(_children);
25942 p->error_indicator = 1;
25943 PyErr_NoMemory();
25944 D(p->level--);
25945 return NULL;
25946 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025947 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025948 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025949 _PyPegen_insert_memo(p, _start_mark, _loop0_109_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025950 D(p->level--);
25951 return _seq;
25952}
25953
Brandt Bucher145bf262021-02-26 14:51:55 -080025954// _gather_108: slice _loop0_109
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025955static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025956_gather_108_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025957{
25958 D(p->level++);
25959 if (p->error_indicator) {
25960 D(p->level--);
25961 return NULL;
25962 }
25963 asdl_seq * _res = NULL;
25964 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025965 { // slice _loop0_109
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025966 if (p->error_indicator) {
25967 D(p->level--);
25968 return NULL;
25969 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025970 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 +010025971 expr_ty elem;
25972 asdl_seq * seq;
25973 if (
25974 (elem = slice_rule(p)) // slice
25975 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080025976 (seq = _loop0_109_rule(p)) // _loop0_109
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025977 )
25978 {
Brandt Bucher145bf262021-02-26 14:51:55 -080025979 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 +010025980 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
25981 goto done;
25982 }
25983 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025984 D(fprintf(stderr, "%*c%s _gather_108[%d-%d]: %s failed!\n", p->level, ' ',
25985 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slice _loop0_109"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025986 }
25987 _res = NULL;
25988 done:
25989 D(p->level--);
25990 return _res;
25991}
25992
Brandt Bucher145bf262021-02-26 14:51:55 -080025993// _tmp_110: ':' expression?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025994static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080025995_tmp_110_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025996{
25997 D(p->level++);
25998 if (p->error_indicator) {
25999 D(p->level--);
26000 return NULL;
26001 }
26002 void * _res = NULL;
26003 int _mark = p->mark;
26004 { // ':' expression?
26005 if (p->error_indicator) {
26006 D(p->level--);
26007 return NULL;
26008 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026009 D(fprintf(stderr, "%*c> _tmp_110[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':' expression?"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026010 Token * _literal;
26011 void *d;
26012 if (
26013 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
26014 &&
26015 (d = expression_rule(p), 1) // expression?
26016 )
26017 {
Brandt Bucher145bf262021-02-26 14:51:55 -080026018 D(fprintf(stderr, "%*c+ _tmp_110[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':' expression?"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026019 _res = d;
26020 if (_res == NULL && PyErr_Occurred()) {
26021 p->error_indicator = 1;
26022 D(p->level--);
26023 return NULL;
26024 }
26025 goto done;
26026 }
26027 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026028 D(fprintf(stderr, "%*c%s _tmp_110[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026029 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':' expression?"));
26030 }
26031 _res = NULL;
26032 done:
26033 D(p->level--);
26034 return _res;
26035}
26036
Brandt Bucher145bf262021-02-26 14:51:55 -080026037// _tmp_111: tuple | group | genexp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026038static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080026039_tmp_111_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026040{
26041 D(p->level++);
26042 if (p->error_indicator) {
26043 D(p->level--);
26044 return NULL;
26045 }
26046 void * _res = NULL;
26047 int _mark = p->mark;
26048 { // tuple
26049 if (p->error_indicator) {
26050 D(p->level--);
26051 return NULL;
26052 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026053 D(fprintf(stderr, "%*c> _tmp_111[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "tuple"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026054 expr_ty tuple_var;
26055 if (
26056 (tuple_var = tuple_rule(p)) // tuple
26057 )
26058 {
Brandt Bucher145bf262021-02-26 14:51:55 -080026059 D(fprintf(stderr, "%*c+ _tmp_111[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "tuple"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026060 _res = tuple_var;
26061 goto done;
26062 }
26063 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026064 D(fprintf(stderr, "%*c%s _tmp_111[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026065 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "tuple"));
26066 }
26067 { // group
26068 if (p->error_indicator) {
26069 D(p->level--);
26070 return NULL;
26071 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026072 D(fprintf(stderr, "%*c> _tmp_111[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "group"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026073 expr_ty group_var;
26074 if (
26075 (group_var = group_rule(p)) // group
26076 )
26077 {
Brandt Bucher145bf262021-02-26 14:51:55 -080026078 D(fprintf(stderr, "%*c+ _tmp_111[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "group"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026079 _res = group_var;
26080 goto done;
26081 }
26082 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026083 D(fprintf(stderr, "%*c%s _tmp_111[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026084 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "group"));
26085 }
26086 { // genexp
26087 if (p->error_indicator) {
26088 D(p->level--);
26089 return NULL;
26090 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026091 D(fprintf(stderr, "%*c> _tmp_111[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "genexp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026092 expr_ty genexp_var;
26093 if (
26094 (genexp_var = genexp_rule(p)) // genexp
26095 )
26096 {
Brandt Bucher145bf262021-02-26 14:51:55 -080026097 D(fprintf(stderr, "%*c+ _tmp_111[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "genexp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026098 _res = genexp_var;
26099 goto done;
26100 }
26101 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026102 D(fprintf(stderr, "%*c%s _tmp_111[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026103 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "genexp"));
26104 }
26105 _res = NULL;
26106 done:
26107 D(p->level--);
26108 return _res;
26109}
26110
Brandt Bucher145bf262021-02-26 14:51:55 -080026111// _tmp_112: list | listcomp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026112static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080026113_tmp_112_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026114{
26115 D(p->level++);
26116 if (p->error_indicator) {
26117 D(p->level--);
26118 return NULL;
26119 }
26120 void * _res = NULL;
26121 int _mark = p->mark;
26122 { // list
26123 if (p->error_indicator) {
26124 D(p->level--);
26125 return NULL;
26126 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026127 D(fprintf(stderr, "%*c> _tmp_112[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "list"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026128 expr_ty list_var;
26129 if (
26130 (list_var = list_rule(p)) // list
26131 )
26132 {
Brandt Bucher145bf262021-02-26 14:51:55 -080026133 D(fprintf(stderr, "%*c+ _tmp_112[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "list"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026134 _res = list_var;
26135 goto done;
26136 }
26137 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026138 D(fprintf(stderr, "%*c%s _tmp_112[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026139 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "list"));
26140 }
26141 { // listcomp
26142 if (p->error_indicator) {
26143 D(p->level--);
26144 return NULL;
26145 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026146 D(fprintf(stderr, "%*c> _tmp_112[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "listcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026147 expr_ty listcomp_var;
26148 if (
26149 (listcomp_var = listcomp_rule(p)) // listcomp
26150 )
26151 {
Brandt Bucher145bf262021-02-26 14:51:55 -080026152 D(fprintf(stderr, "%*c+ _tmp_112[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "listcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026153 _res = listcomp_var;
26154 goto done;
26155 }
26156 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026157 D(fprintf(stderr, "%*c%s _tmp_112[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026158 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "listcomp"));
26159 }
26160 _res = NULL;
26161 done:
26162 D(p->level--);
26163 return _res;
26164}
26165
Brandt Bucher145bf262021-02-26 14:51:55 -080026166// _tmp_113: dict | set | dictcomp | setcomp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026167static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080026168_tmp_113_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026169{
26170 D(p->level++);
26171 if (p->error_indicator) {
26172 D(p->level--);
26173 return NULL;
26174 }
26175 void * _res = NULL;
26176 int _mark = p->mark;
26177 { // dict
26178 if (p->error_indicator) {
26179 D(p->level--);
26180 return NULL;
26181 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026182 D(fprintf(stderr, "%*c> _tmp_113[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dict"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026183 expr_ty dict_var;
26184 if (
26185 (dict_var = dict_rule(p)) // dict
26186 )
26187 {
Brandt Bucher145bf262021-02-26 14:51:55 -080026188 D(fprintf(stderr, "%*c+ _tmp_113[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dict"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026189 _res = dict_var;
26190 goto done;
26191 }
26192 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026193 D(fprintf(stderr, "%*c%s _tmp_113[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026194 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dict"));
26195 }
26196 { // set
26197 if (p->error_indicator) {
26198 D(p->level--);
26199 return NULL;
26200 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026201 D(fprintf(stderr, "%*c> _tmp_113[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "set"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026202 expr_ty set_var;
26203 if (
26204 (set_var = set_rule(p)) // set
26205 )
26206 {
Brandt Bucher145bf262021-02-26 14:51:55 -080026207 D(fprintf(stderr, "%*c+ _tmp_113[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "set"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026208 _res = set_var;
26209 goto done;
26210 }
26211 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026212 D(fprintf(stderr, "%*c%s _tmp_113[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026213 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "set"));
26214 }
26215 { // dictcomp
26216 if (p->error_indicator) {
26217 D(p->level--);
26218 return NULL;
26219 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026220 D(fprintf(stderr, "%*c> _tmp_113[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dictcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026221 expr_ty dictcomp_var;
26222 if (
26223 (dictcomp_var = dictcomp_rule(p)) // dictcomp
26224 )
26225 {
Brandt Bucher145bf262021-02-26 14:51:55 -080026226 D(fprintf(stderr, "%*c+ _tmp_113[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dictcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026227 _res = dictcomp_var;
26228 goto done;
26229 }
26230 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026231 D(fprintf(stderr, "%*c%s _tmp_113[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026232 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dictcomp"));
26233 }
26234 { // setcomp
26235 if (p->error_indicator) {
26236 D(p->level--);
26237 return NULL;
26238 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026239 D(fprintf(stderr, "%*c> _tmp_113[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "setcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026240 expr_ty setcomp_var;
26241 if (
26242 (setcomp_var = setcomp_rule(p)) // setcomp
26243 )
26244 {
Brandt Bucher145bf262021-02-26 14:51:55 -080026245 D(fprintf(stderr, "%*c+ _tmp_113[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "setcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026246 _res = setcomp_var;
26247 goto done;
26248 }
26249 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026250 D(fprintf(stderr, "%*c%s _tmp_113[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026251 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "setcomp"));
26252 }
26253 _res = NULL;
26254 done:
26255 D(p->level--);
26256 return _res;
26257}
26258
Brandt Bucher145bf262021-02-26 14:51:55 -080026259// _loop1_114: STRING
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026260static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026261_loop1_114_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026262{
26263 D(p->level++);
26264 if (p->error_indicator) {
26265 D(p->level--);
26266 return NULL;
26267 }
26268 void *_res = NULL;
26269 int _mark = p->mark;
26270 int _start_mark = p->mark;
26271 void **_children = PyMem_Malloc(sizeof(void *));
26272 if (!_children) {
26273 p->error_indicator = 1;
26274 PyErr_NoMemory();
26275 D(p->level--);
26276 return NULL;
26277 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026278 Py_ssize_t _children_capacity = 1;
26279 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026280 { // STRING
26281 if (p->error_indicator) {
26282 D(p->level--);
26283 return NULL;
26284 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026285 D(fprintf(stderr, "%*c> _loop1_114[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "STRING"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026286 expr_ty string_var;
26287 while (
26288 (string_var = _PyPegen_string_token(p)) // STRING
26289 )
26290 {
26291 _res = string_var;
26292 if (_n == _children_capacity) {
26293 _children_capacity *= 2;
26294 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26295 if (!_new_children) {
26296 p->error_indicator = 1;
26297 PyErr_NoMemory();
26298 D(p->level--);
26299 return NULL;
26300 }
26301 _children = _new_children;
26302 }
26303 _children[_n++] = _res;
26304 _mark = p->mark;
26305 }
26306 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026307 D(fprintf(stderr, "%*c%s _loop1_114[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026308 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "STRING"));
26309 }
26310 if (_n == 0 || p->error_indicator) {
26311 PyMem_Free(_children);
26312 D(p->level--);
26313 return NULL;
26314 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026315 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026316 if (!_seq) {
26317 PyMem_Free(_children);
26318 p->error_indicator = 1;
26319 PyErr_NoMemory();
26320 D(p->level--);
26321 return NULL;
26322 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026323 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026324 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026325 _PyPegen_insert_memo(p, _start_mark, _loop1_114_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026326 D(p->level--);
26327 return _seq;
26328}
26329
Brandt Bucher145bf262021-02-26 14:51:55 -080026330// _tmp_115: star_named_expression ',' star_named_expressions?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026331static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080026332_tmp_115_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026333{
26334 D(p->level++);
26335 if (p->error_indicator) {
26336 D(p->level--);
26337 return NULL;
26338 }
26339 void * _res = NULL;
26340 int _mark = p->mark;
26341 { // star_named_expression ',' star_named_expressions?
26342 if (p->error_indicator) {
26343 D(p->level--);
26344 return NULL;
26345 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026346 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 +010026347 Token * _literal;
26348 expr_ty y;
26349 void *z;
26350 if (
26351 (y = star_named_expression_rule(p)) // star_named_expression
26352 &&
26353 (_literal = _PyPegen_expect_token(p, 12)) // token=','
26354 &&
26355 (z = star_named_expressions_rule(p), 1) // star_named_expressions?
26356 )
26357 {
Brandt Bucher145bf262021-02-26 14:51:55 -080026358 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 +010026359 _res = _PyPegen_seq_insert_in_front ( p , y , z );
26360 if (_res == NULL && PyErr_Occurred()) {
26361 p->error_indicator = 1;
26362 D(p->level--);
26363 return NULL;
26364 }
26365 goto done;
26366 }
26367 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026368 D(fprintf(stderr, "%*c%s _tmp_115[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026369 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression ',' star_named_expressions?"));
26370 }
26371 _res = NULL;
26372 done:
26373 D(p->level--);
26374 return _res;
26375}
26376
Brandt Bucher145bf262021-02-26 14:51:55 -080026377// _tmp_116: yield_expr | named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026378static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080026379_tmp_116_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026380{
26381 D(p->level++);
26382 if (p->error_indicator) {
26383 D(p->level--);
26384 return NULL;
26385 }
26386 void * _res = NULL;
26387 int _mark = p->mark;
26388 { // yield_expr
26389 if (p->error_indicator) {
26390 D(p->level--);
26391 return NULL;
26392 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026393 D(fprintf(stderr, "%*c> _tmp_116[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026394 expr_ty yield_expr_var;
26395 if (
26396 (yield_expr_var = yield_expr_rule(p)) // yield_expr
26397 )
26398 {
Brandt Bucher145bf262021-02-26 14:51:55 -080026399 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 +010026400 _res = yield_expr_var;
26401 goto done;
26402 }
26403 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026404 D(fprintf(stderr, "%*c%s _tmp_116[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026405 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
26406 }
26407 { // named_expression
26408 if (p->error_indicator) {
26409 D(p->level--);
26410 return NULL;
26411 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026412 D(fprintf(stderr, "%*c> _tmp_116[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026413 expr_ty named_expression_var;
26414 if (
26415 (named_expression_var = named_expression_rule(p)) // named_expression
26416 )
26417 {
Brandt Bucher145bf262021-02-26 14:51:55 -080026418 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 +010026419 _res = named_expression_var;
26420 goto done;
26421 }
26422 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026423 D(fprintf(stderr, "%*c%s _tmp_116[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026424 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression"));
26425 }
26426 _res = NULL;
26427 done:
26428 D(p->level--);
26429 return _res;
26430}
26431
Brandt Bucher145bf262021-02-26 14:51:55 -080026432// _loop0_118: ',' double_starred_kvpair
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026433static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026434_loop0_118_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026435{
26436 D(p->level++);
26437 if (p->error_indicator) {
26438 D(p->level--);
26439 return NULL;
26440 }
26441 void *_res = NULL;
26442 int _mark = p->mark;
26443 int _start_mark = p->mark;
26444 void **_children = PyMem_Malloc(sizeof(void *));
26445 if (!_children) {
26446 p->error_indicator = 1;
26447 PyErr_NoMemory();
26448 D(p->level--);
26449 return NULL;
26450 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026451 Py_ssize_t _children_capacity = 1;
26452 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026453 { // ',' double_starred_kvpair
26454 if (p->error_indicator) {
26455 D(p->level--);
26456 return NULL;
26457 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026458 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 +010026459 Token * _literal;
26460 KeyValuePair* elem;
26461 while (
26462 (_literal = _PyPegen_expect_token(p, 12)) // token=','
26463 &&
26464 (elem = double_starred_kvpair_rule(p)) // double_starred_kvpair
26465 )
26466 {
26467 _res = elem;
26468 if (_res == NULL && PyErr_Occurred()) {
26469 p->error_indicator = 1;
26470 PyMem_Free(_children);
26471 D(p->level--);
26472 return NULL;
26473 }
26474 if (_n == _children_capacity) {
26475 _children_capacity *= 2;
26476 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26477 if (!_new_children) {
26478 p->error_indicator = 1;
26479 PyErr_NoMemory();
26480 D(p->level--);
26481 return NULL;
26482 }
26483 _children = _new_children;
26484 }
26485 _children[_n++] = _res;
26486 _mark = p->mark;
26487 }
26488 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026489 D(fprintf(stderr, "%*c%s _loop0_118[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026490 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' double_starred_kvpair"));
26491 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026492 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026493 if (!_seq) {
26494 PyMem_Free(_children);
26495 p->error_indicator = 1;
26496 PyErr_NoMemory();
26497 D(p->level--);
26498 return NULL;
26499 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026500 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026501 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026502 _PyPegen_insert_memo(p, _start_mark, _loop0_118_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026503 D(p->level--);
26504 return _seq;
26505}
26506
Brandt Bucher145bf262021-02-26 14:51:55 -080026507// _gather_117: double_starred_kvpair _loop0_118
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026508static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026509_gather_117_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026510{
26511 D(p->level++);
26512 if (p->error_indicator) {
26513 D(p->level--);
26514 return NULL;
26515 }
26516 asdl_seq * _res = NULL;
26517 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026518 { // double_starred_kvpair _loop0_118
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026519 if (p->error_indicator) {
26520 D(p->level--);
26521 return NULL;
26522 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026523 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 +010026524 KeyValuePair* elem;
26525 asdl_seq * seq;
26526 if (
26527 (elem = double_starred_kvpair_rule(p)) // double_starred_kvpair
26528 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080026529 (seq = _loop0_118_rule(p)) // _loop0_118
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026530 )
26531 {
Brandt Bucher145bf262021-02-26 14:51:55 -080026532 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 +010026533 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
26534 goto done;
26535 }
26536 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026537 D(fprintf(stderr, "%*c%s _gather_117[%d-%d]: %s failed!\n", p->level, ' ',
26538 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "double_starred_kvpair _loop0_118"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026539 }
26540 _res = NULL;
26541 done:
26542 D(p->level--);
26543 return _res;
26544}
26545
Brandt Bucher145bf262021-02-26 14:51:55 -080026546// _loop1_119: for_if_clause
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026547static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026548_loop1_119_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026549{
26550 D(p->level++);
26551 if (p->error_indicator) {
26552 D(p->level--);
26553 return NULL;
26554 }
26555 void *_res = NULL;
26556 int _mark = p->mark;
26557 int _start_mark = p->mark;
26558 void **_children = PyMem_Malloc(sizeof(void *));
26559 if (!_children) {
26560 p->error_indicator = 1;
26561 PyErr_NoMemory();
26562 D(p->level--);
26563 return NULL;
26564 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026565 Py_ssize_t _children_capacity = 1;
26566 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026567 { // for_if_clause
26568 if (p->error_indicator) {
26569 D(p->level--);
26570 return NULL;
26571 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026572 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 +010026573 comprehension_ty for_if_clause_var;
26574 while (
26575 (for_if_clause_var = for_if_clause_rule(p)) // for_if_clause
26576 )
26577 {
26578 _res = for_if_clause_var;
26579 if (_n == _children_capacity) {
26580 _children_capacity *= 2;
26581 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26582 if (!_new_children) {
26583 p->error_indicator = 1;
26584 PyErr_NoMemory();
26585 D(p->level--);
26586 return NULL;
26587 }
26588 _children = _new_children;
26589 }
26590 _children[_n++] = _res;
26591 _mark = p->mark;
26592 }
26593 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026594 D(fprintf(stderr, "%*c%s _loop1_119[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026595 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "for_if_clause"));
26596 }
26597 if (_n == 0 || p->error_indicator) {
26598 PyMem_Free(_children);
26599 D(p->level--);
26600 return NULL;
26601 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026602 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026603 if (!_seq) {
26604 PyMem_Free(_children);
26605 p->error_indicator = 1;
26606 PyErr_NoMemory();
26607 D(p->level--);
26608 return NULL;
26609 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026610 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026611 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026612 _PyPegen_insert_memo(p, _start_mark, _loop1_119_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026613 D(p->level--);
26614 return _seq;
26615}
26616
Brandt Bucher145bf262021-02-26 14:51:55 -080026617// _loop0_120: ('if' disjunction)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026618static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026619_loop0_120_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026620{
26621 D(p->level++);
26622 if (p->error_indicator) {
26623 D(p->level--);
26624 return NULL;
26625 }
26626 void *_res = NULL;
26627 int _mark = p->mark;
26628 int _start_mark = p->mark;
26629 void **_children = PyMem_Malloc(sizeof(void *));
26630 if (!_children) {
26631 p->error_indicator = 1;
26632 PyErr_NoMemory();
26633 D(p->level--);
26634 return NULL;
26635 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026636 Py_ssize_t _children_capacity = 1;
26637 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026638 { // ('if' disjunction)
26639 if (p->error_indicator) {
26640 D(p->level--);
26641 return NULL;
26642 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026643 D(fprintf(stderr, "%*c> _loop0_120[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('if' disjunction)"));
Pablo Galindoda743502021-04-15 14:06:39 +010026644 void *_tmp_176_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026645 while (
Pablo Galindoda743502021-04-15 14:06:39 +010026646 (_tmp_176_var = _tmp_176_rule(p)) // 'if' disjunction
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026647 )
26648 {
Pablo Galindoda743502021-04-15 14:06:39 +010026649 _res = _tmp_176_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026650 if (_n == _children_capacity) {
26651 _children_capacity *= 2;
26652 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26653 if (!_new_children) {
26654 p->error_indicator = 1;
26655 PyErr_NoMemory();
26656 D(p->level--);
26657 return NULL;
26658 }
26659 _children = _new_children;
26660 }
26661 _children[_n++] = _res;
26662 _mark = p->mark;
26663 }
26664 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026665 D(fprintf(stderr, "%*c%s _loop0_120[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026666 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('if' disjunction)"));
26667 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026668 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026669 if (!_seq) {
26670 PyMem_Free(_children);
26671 p->error_indicator = 1;
26672 PyErr_NoMemory();
26673 D(p->level--);
26674 return NULL;
26675 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026676 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026677 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026678 _PyPegen_insert_memo(p, _start_mark, _loop0_120_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026679 D(p->level--);
26680 return _seq;
26681}
26682
Brandt Bucher145bf262021-02-26 14:51:55 -080026683// _loop0_121: ('if' disjunction)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026684static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026685_loop0_121_rule(Parser *p)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026686{
26687 D(p->level++);
26688 if (p->error_indicator) {
26689 D(p->level--);
26690 return NULL;
26691 }
26692 void *_res = NULL;
26693 int _mark = p->mark;
26694 int _start_mark = p->mark;
26695 void **_children = PyMem_Malloc(sizeof(void *));
26696 if (!_children) {
26697 p->error_indicator = 1;
26698 PyErr_NoMemory();
26699 D(p->level--);
26700 return NULL;
26701 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026702 Py_ssize_t _children_capacity = 1;
26703 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026704 { // ('if' disjunction)
26705 if (p->error_indicator) {
26706 D(p->level--);
26707 return NULL;
26708 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026709 D(fprintf(stderr, "%*c> _loop0_121[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('if' disjunction)"));
Pablo Galindoda743502021-04-15 14:06:39 +010026710 void *_tmp_177_var;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026711 while (
Pablo Galindoda743502021-04-15 14:06:39 +010026712 (_tmp_177_var = _tmp_177_rule(p)) // 'if' disjunction
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026713 )
26714 {
Pablo Galindoda743502021-04-15 14:06:39 +010026715 _res = _tmp_177_var;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026716 if (_n == _children_capacity) {
26717 _children_capacity *= 2;
26718 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26719 if (!_new_children) {
26720 p->error_indicator = 1;
26721 PyErr_NoMemory();
26722 D(p->level--);
26723 return NULL;
26724 }
26725 _children = _new_children;
26726 }
26727 _children[_n++] = _res;
26728 _mark = p->mark;
26729 }
26730 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026731 D(fprintf(stderr, "%*c%s _loop0_121[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026732 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('if' disjunction)"));
26733 }
26734 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
26735 if (!_seq) {
26736 PyMem_Free(_children);
26737 p->error_indicator = 1;
26738 PyErr_NoMemory();
26739 D(p->level--);
26740 return NULL;
26741 }
26742 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
26743 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026744 _PyPegen_insert_memo(p, _start_mark, _loop0_121_type, _seq);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026745 D(p->level--);
26746 return _seq;
26747}
26748
Pablo Galindod9151cb2021-04-13 02:32:33 +010026749// _loop0_123: ',' (starred_expression | direct_named_expression !'=')
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026750static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026751_loop0_123_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026752{
26753 D(p->level++);
26754 if (p->error_indicator) {
26755 D(p->level--);
26756 return NULL;
26757 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026758 void *_res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026759 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026760 int _start_mark = p->mark;
26761 void **_children = PyMem_Malloc(sizeof(void *));
26762 if (!_children) {
26763 p->error_indicator = 1;
26764 PyErr_NoMemory();
26765 D(p->level--);
26766 return NULL;
26767 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026768 Py_ssize_t _children_capacity = 1;
26769 Py_ssize_t _n = 0;
Pablo Galindod9151cb2021-04-13 02:32:33 +010026770 { // ',' (starred_expression | direct_named_expression !'=')
Pablo Galindo4a97b152020-09-02 17:44:19 +010026771 if (p->error_indicator) {
26772 D(p->level--);
26773 return NULL;
26774 }
Pablo Galindod9151cb2021-04-13 02:32:33 +010026775 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 +010026776 Token * _literal;
26777 void *elem;
26778 while (
26779 (_literal = _PyPegen_expect_token(p, 12)) // token=','
26780 &&
Pablo Galindoda743502021-04-15 14:06:39 +010026781 (elem = _tmp_178_rule(p)) // starred_expression | direct_named_expression !'='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026782 )
26783 {
26784 _res = elem;
26785 if (_res == NULL && PyErr_Occurred()) {
26786 p->error_indicator = 1;
26787 PyMem_Free(_children);
26788 D(p->level--);
26789 return NULL;
26790 }
26791 if (_n == _children_capacity) {
26792 _children_capacity *= 2;
26793 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26794 if (!_new_children) {
26795 p->error_indicator = 1;
26796 PyErr_NoMemory();
26797 D(p->level--);
26798 return NULL;
26799 }
26800 _children = _new_children;
26801 }
26802 _children[_n++] = _res;
26803 _mark = p->mark;
26804 }
26805 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020026806 D(fprintf(stderr, "%*c%s _loop0_123[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindod9151cb2021-04-13 02:32:33 +010026807 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (starred_expression | direct_named_expression !'=')"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026808 }
26809 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
26810 if (!_seq) {
26811 PyMem_Free(_children);
26812 p->error_indicator = 1;
26813 PyErr_NoMemory();
26814 D(p->level--);
26815 return NULL;
26816 }
26817 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
26818 PyMem_Free(_children);
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020026819 _PyPegen_insert_memo(p, _start_mark, _loop0_123_type, _seq);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026820 D(p->level--);
26821 return _seq;
26822}
26823
Pablo Galindod9151cb2021-04-13 02:32:33 +010026824// _gather_122: (starred_expression | direct_named_expression !'=') _loop0_123
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026825static asdl_seq *
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020026826_gather_122_rule(Parser *p)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026827{
26828 D(p->level++);
26829 if (p->error_indicator) {
26830 D(p->level--);
26831 return NULL;
26832 }
26833 asdl_seq * _res = NULL;
26834 int _mark = p->mark;
Pablo Galindod9151cb2021-04-13 02:32:33 +010026835 { // (starred_expression | direct_named_expression !'=') _loop0_123
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026836 if (p->error_indicator) {
26837 D(p->level--);
26838 return NULL;
26839 }
Pablo Galindod9151cb2021-04-13 02:32:33 +010026840 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 -080026841 void *elem;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026842 asdl_seq * seq;
26843 if (
Pablo Galindoda743502021-04-15 14:06:39 +010026844 (elem = _tmp_178_rule(p)) // starred_expression | direct_named_expression !'='
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026845 &&
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020026846 (seq = _loop0_123_rule(p)) // _loop0_123
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026847 )
26848 {
Pablo Galindod9151cb2021-04-13 02:32:33 +010026849 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 +000026850 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
26851 goto done;
26852 }
26853 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020026854 D(fprintf(stderr, "%*c%s _gather_122[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindod9151cb2021-04-13 02:32:33 +010026855 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(starred_expression | direct_named_expression !'=') _loop0_123"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026856 }
26857 _res = NULL;
26858 done:
26859 D(p->level--);
26860 return _res;
26861}
26862
Brandt Bucher145bf262021-02-26 14:51:55 -080026863// _tmp_124: ',' kwargs
26864static void *
26865_tmp_124_rule(Parser *p)
26866{
26867 D(p->level++);
26868 if (p->error_indicator) {
26869 D(p->level--);
26870 return NULL;
26871 }
26872 void * _res = NULL;
26873 int _mark = p->mark;
26874 { // ',' kwargs
26875 if (p->error_indicator) {
26876 D(p->level--);
26877 return NULL;
26878 }
26879 D(fprintf(stderr, "%*c> _tmp_124[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwargs"));
26880 Token * _literal;
26881 asdl_seq* k;
26882 if (
26883 (_literal = _PyPegen_expect_token(p, 12)) // token=','
26884 &&
26885 (k = kwargs_rule(p)) // kwargs
26886 )
26887 {
26888 D(fprintf(stderr, "%*c+ _tmp_124[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' kwargs"));
26889 _res = k;
26890 if (_res == NULL && PyErr_Occurred()) {
26891 p->error_indicator = 1;
26892 D(p->level--);
26893 return NULL;
26894 }
26895 goto done;
26896 }
26897 p->mark = _mark;
26898 D(fprintf(stderr, "%*c%s _tmp_124[%d-%d]: %s failed!\n", p->level, ' ',
26899 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwargs"));
26900 }
26901 _res = NULL;
26902 done:
26903 D(p->level--);
26904 return _res;
26905}
26906
26907// _loop0_126: ',' kwarg_or_starred
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026908static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026909_loop0_126_rule(Parser *p)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026910{
26911 D(p->level++);
26912 if (p->error_indicator) {
26913 D(p->level--);
26914 return NULL;
26915 }
26916 void *_res = NULL;
26917 int _mark = p->mark;
26918 int _start_mark = p->mark;
26919 void **_children = PyMem_Malloc(sizeof(void *));
26920 if (!_children) {
26921 p->error_indicator = 1;
26922 PyErr_NoMemory();
26923 D(p->level--);
26924 return NULL;
26925 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026926 Py_ssize_t _children_capacity = 1;
26927 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080026928 { // ',' kwarg_or_starred
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026929 if (p->error_indicator) {
26930 D(p->level--);
26931 return NULL;
26932 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026933 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 +000026934 Token * _literal;
Brandt Bucher145bf262021-02-26 14:51:55 -080026935 KeywordOrStarred* elem;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026936 while (
26937 (_literal = _PyPegen_expect_token(p, 12)) // token=','
26938 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080026939 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026940 )
26941 {
26942 _res = elem;
26943 if (_res == NULL && PyErr_Occurred()) {
26944 p->error_indicator = 1;
26945 PyMem_Free(_children);
26946 D(p->level--);
26947 return NULL;
26948 }
26949 if (_n == _children_capacity) {
26950 _children_capacity *= 2;
26951 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26952 if (!_new_children) {
26953 p->error_indicator = 1;
26954 PyErr_NoMemory();
26955 D(p->level--);
26956 return NULL;
26957 }
26958 _children = _new_children;
26959 }
26960 _children[_n++] = _res;
26961 _mark = p->mark;
26962 }
26963 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026964 D(fprintf(stderr, "%*c%s _loop0_126[%d-%d]: %s failed!\n", p->level, ' ',
26965 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_starred"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026966 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026967 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026968 if (!_seq) {
26969 PyMem_Free(_children);
26970 p->error_indicator = 1;
26971 PyErr_NoMemory();
26972 D(p->level--);
26973 return NULL;
26974 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026975 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026976 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026977 _PyPegen_insert_memo(p, _start_mark, _loop0_126_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026978 D(p->level--);
26979 return _seq;
26980}
26981
Brandt Bucher145bf262021-02-26 14:51:55 -080026982// _gather_125: kwarg_or_starred _loop0_126
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026983static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026984_gather_125_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026985{
26986 D(p->level++);
26987 if (p->error_indicator) {
26988 D(p->level--);
26989 return NULL;
26990 }
26991 asdl_seq * _res = NULL;
26992 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026993 { // kwarg_or_starred _loop0_126
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026994 if (p->error_indicator) {
26995 D(p->level--);
26996 return NULL;
26997 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026998 D(fprintf(stderr, "%*c> _gather_125[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwarg_or_starred _loop0_126"));
26999 KeywordOrStarred* elem;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027000 asdl_seq * seq;
27001 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080027002 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027003 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080027004 (seq = _loop0_126_rule(p)) // _loop0_126
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027005 )
27006 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027007 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 +010027008 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
27009 goto done;
27010 }
27011 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027012 D(fprintf(stderr, "%*c%s _gather_125[%d-%d]: %s failed!\n", p->level, ' ',
27013 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_starred _loop0_126"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027014 }
27015 _res = NULL;
27016 done:
27017 D(p->level--);
27018 return _res;
27019}
27020
Brandt Bucher145bf262021-02-26 14:51:55 -080027021// _loop0_128: ',' kwarg_or_double_starred
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027022static asdl_seq *
27023_loop0_128_rule(Parser *p)
27024{
27025 D(p->level++);
27026 if (p->error_indicator) {
27027 D(p->level--);
27028 return NULL;
27029 }
27030 void *_res = NULL;
27031 int _mark = p->mark;
27032 int _start_mark = p->mark;
27033 void **_children = PyMem_Malloc(sizeof(void *));
27034 if (!_children) {
27035 p->error_indicator = 1;
27036 PyErr_NoMemory();
27037 D(p->level--);
27038 return NULL;
27039 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027040 Py_ssize_t _children_capacity = 1;
27041 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080027042 { // ',' kwarg_or_double_starred
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027043 if (p->error_indicator) {
27044 D(p->level--);
27045 return NULL;
27046 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027047 D(fprintf(stderr, "%*c> _loop0_128[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwarg_or_double_starred"));
27048 Token * _literal;
27049 KeywordOrStarred* elem;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027050 while (
Brandt Bucher145bf262021-02-26 14:51:55 -080027051 (_literal = _PyPegen_expect_token(p, 12)) // token=','
27052 &&
27053 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027054 )
27055 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027056 _res = elem;
27057 if (_res == NULL && PyErr_Occurred()) {
27058 p->error_indicator = 1;
27059 PyMem_Free(_children);
27060 D(p->level--);
27061 return NULL;
27062 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027063 if (_n == _children_capacity) {
27064 _children_capacity *= 2;
27065 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27066 if (!_new_children) {
27067 p->error_indicator = 1;
27068 PyErr_NoMemory();
27069 D(p->level--);
27070 return NULL;
27071 }
27072 _children = _new_children;
27073 }
27074 _children[_n++] = _res;
27075 _mark = p->mark;
27076 }
27077 p->mark = _mark;
27078 D(fprintf(stderr, "%*c%s _loop0_128[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080027079 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_double_starred"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027080 }
27081 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
27082 if (!_seq) {
27083 PyMem_Free(_children);
27084 p->error_indicator = 1;
27085 PyErr_NoMemory();
27086 D(p->level--);
27087 return NULL;
27088 }
27089 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
27090 PyMem_Free(_children);
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030027091 _PyPegen_insert_memo(p, _start_mark, _loop0_128_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027092 D(p->level--);
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030027093 return _seq;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027094}
27095
Brandt Bucher145bf262021-02-26 14:51:55 -080027096// _gather_127: kwarg_or_double_starred _loop0_128
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020027097static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027098_gather_127_rule(Parser *p)
27099{
27100 D(p->level++);
27101 if (p->error_indicator) {
27102 D(p->level--);
27103 return NULL;
27104 }
27105 asdl_seq * _res = NULL;
27106 int _mark = p->mark;
27107 { // kwarg_or_double_starred _loop0_128
27108 if (p->error_indicator) {
27109 D(p->level--);
27110 return NULL;
27111 }
27112 D(fprintf(stderr, "%*c> _gather_127[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwarg_or_double_starred _loop0_128"));
27113 KeywordOrStarred* elem;
27114 asdl_seq * seq;
27115 if (
27116 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
27117 &&
27118 (seq = _loop0_128_rule(p)) // _loop0_128
27119 )
27120 {
27121 D(fprintf(stderr, "%*c+ _gather_127[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwarg_or_double_starred _loop0_128"));
27122 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
27123 goto done;
27124 }
27125 p->mark = _mark;
27126 D(fprintf(stderr, "%*c%s _gather_127[%d-%d]: %s failed!\n", p->level, ' ',
27127 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_double_starred _loop0_128"));
27128 }
27129 _res = NULL;
27130 done:
27131 D(p->level--);
27132 return _res;
27133}
27134
27135// _loop0_130: ',' kwarg_or_starred
27136static asdl_seq *
27137_loop0_130_rule(Parser *p)
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020027138{
27139 D(p->level++);
27140 if (p->error_indicator) {
27141 D(p->level--);
27142 return NULL;
27143 }
27144 void *_res = NULL;
27145 int _mark = p->mark;
27146 int _start_mark = p->mark;
27147 void **_children = PyMem_Malloc(sizeof(void *));
27148 if (!_children) {
27149 p->error_indicator = 1;
27150 PyErr_NoMemory();
27151 D(p->level--);
27152 return NULL;
27153 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027154 Py_ssize_t _children_capacity = 1;
27155 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080027156 { // ',' kwarg_or_starred
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020027157 if (p->error_indicator) {
27158 D(p->level--);
27159 return NULL;
27160 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027161 D(fprintf(stderr, "%*c> _loop0_130[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwarg_or_starred"));
27162 Token * _literal;
27163 KeywordOrStarred* elem;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020027164 while (
Brandt Bucher145bf262021-02-26 14:51:55 -080027165 (_literal = _PyPegen_expect_token(p, 12)) // token=','
27166 &&
27167 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020027168 )
27169 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027170 _res = elem;
27171 if (_res == NULL && PyErr_Occurred()) {
27172 p->error_indicator = 1;
27173 PyMem_Free(_children);
27174 D(p->level--);
27175 return NULL;
27176 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020027177 if (_n == _children_capacity) {
27178 _children_capacity *= 2;
27179 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27180 if (!_new_children) {
27181 p->error_indicator = 1;
27182 PyErr_NoMemory();
27183 D(p->level--);
27184 return NULL;
27185 }
27186 _children = _new_children;
27187 }
27188 _children[_n++] = _res;
27189 _mark = p->mark;
27190 }
27191 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027192 D(fprintf(stderr, "%*c%s _loop0_130[%d-%d]: %s failed!\n", p->level, ' ',
27193 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_starred"));
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020027194 }
27195 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
27196 if (!_seq) {
27197 PyMem_Free(_children);
27198 p->error_indicator = 1;
27199 PyErr_NoMemory();
27200 D(p->level--);
27201 return NULL;
27202 }
27203 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
27204 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027205 _PyPegen_insert_memo(p, _start_mark, _loop0_130_type, _seq);
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020027206 D(p->level--);
27207 return _seq;
27208}
27209
Brandt Bucher145bf262021-02-26 14:51:55 -080027210// _gather_129: kwarg_or_starred _loop0_130
27211static asdl_seq *
27212_gather_129_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027213{
27214 D(p->level++);
27215 if (p->error_indicator) {
27216 D(p->level--);
27217 return NULL;
27218 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027219 asdl_seq * _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027220 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027221 { // kwarg_or_starred _loop0_130
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027222 if (p->error_indicator) {
27223 D(p->level--);
27224 return NULL;
27225 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027226 D(fprintf(stderr, "%*c> _gather_129[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwarg_or_starred _loop0_130"));
27227 KeywordOrStarred* elem;
27228 asdl_seq * seq;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027229 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080027230 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
27231 &&
27232 (seq = _loop0_130_rule(p)) // _loop0_130
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027233 )
27234 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027235 D(fprintf(stderr, "%*c+ _gather_129[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwarg_or_starred _loop0_130"));
27236 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027237 goto done;
27238 }
27239 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027240 D(fprintf(stderr, "%*c%s _gather_129[%d-%d]: %s failed!\n", p->level, ' ',
27241 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_starred _loop0_130"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027242 }
27243 _res = NULL;
27244 done:
27245 D(p->level--);
27246 return _res;
27247}
27248
Brandt Bucher145bf262021-02-26 14:51:55 -080027249// _loop0_132: ',' kwarg_or_double_starred
27250static asdl_seq *
27251_loop0_132_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027252{
27253 D(p->level++);
27254 if (p->error_indicator) {
27255 D(p->level--);
27256 return NULL;
27257 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027258 void *_res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027259 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027260 int _start_mark = p->mark;
27261 void **_children = PyMem_Malloc(sizeof(void *));
27262 if (!_children) {
27263 p->error_indicator = 1;
27264 PyErr_NoMemory();
27265 D(p->level--);
27266 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027267 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027268 Py_ssize_t _children_capacity = 1;
27269 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080027270 { // ',' kwarg_or_double_starred
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027271 if (p->error_indicator) {
27272 D(p->level--);
27273 return NULL;
27274 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027275 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 +010027276 Token * _literal;
Brandt Bucher145bf262021-02-26 14:51:55 -080027277 KeywordOrStarred* elem;
27278 while (
27279 (_literal = _PyPegen_expect_token(p, 12)) // token=','
27280 &&
27281 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027282 )
27283 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027284 _res = elem;
27285 if (_res == NULL && PyErr_Occurred()) {
27286 p->error_indicator = 1;
27287 PyMem_Free(_children);
27288 D(p->level--);
27289 return NULL;
27290 }
27291 if (_n == _children_capacity) {
27292 _children_capacity *= 2;
27293 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27294 if (!_new_children) {
27295 p->error_indicator = 1;
27296 PyErr_NoMemory();
27297 D(p->level--);
27298 return NULL;
27299 }
27300 _children = _new_children;
27301 }
27302 _children[_n++] = _res;
27303 _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027304 }
27305 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027306 D(fprintf(stderr, "%*c%s _loop0_132[%d-%d]: %s failed!\n", p->level, ' ',
27307 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_double_starred"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027308 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027309 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
27310 if (!_seq) {
27311 PyMem_Free(_children);
27312 p->error_indicator = 1;
27313 PyErr_NoMemory();
27314 D(p->level--);
27315 return NULL;
27316 }
27317 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
27318 PyMem_Free(_children);
27319 _PyPegen_insert_memo(p, _start_mark, _loop0_132_type, _seq);
27320 D(p->level--);
27321 return _seq;
27322}
27323
27324// _gather_131: kwarg_or_double_starred _loop0_132
27325static asdl_seq *
27326_gather_131_rule(Parser *p)
27327{
27328 D(p->level++);
27329 if (p->error_indicator) {
27330 D(p->level--);
27331 return NULL;
27332 }
27333 asdl_seq * _res = NULL;
27334 int _mark = p->mark;
27335 { // kwarg_or_double_starred _loop0_132
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027336 if (p->error_indicator) {
27337 D(p->level--);
27338 return NULL;
27339 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027340 D(fprintf(stderr, "%*c> _gather_131[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwarg_or_double_starred _loop0_132"));
27341 KeywordOrStarred* elem;
27342 asdl_seq * seq;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027343 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080027344 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
27345 &&
27346 (seq = _loop0_132_rule(p)) // _loop0_132
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027347 )
27348 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027349 D(fprintf(stderr, "%*c+ _gather_131[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwarg_or_double_starred _loop0_132"));
27350 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027351 goto done;
27352 }
27353 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027354 D(fprintf(stderr, "%*c%s _gather_131[%d-%d]: %s failed!\n", p->level, ' ',
27355 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_double_starred _loop0_132"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027356 }
27357 _res = NULL;
27358 done:
27359 D(p->level--);
27360 return _res;
27361}
27362
Brandt Bucher145bf262021-02-26 14:51:55 -080027363// _loop0_133: (',' star_target)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027364static asdl_seq *
Pablo Galindo835f14f2021-01-31 22:52:56 +000027365_loop0_133_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027366{
27367 D(p->level++);
27368 if (p->error_indicator) {
27369 D(p->level--);
27370 return NULL;
27371 }
27372 void *_res = NULL;
27373 int _mark = p->mark;
27374 int _start_mark = p->mark;
27375 void **_children = PyMem_Malloc(sizeof(void *));
27376 if (!_children) {
27377 p->error_indicator = 1;
27378 PyErr_NoMemory();
27379 D(p->level--);
27380 return NULL;
27381 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027382 Py_ssize_t _children_capacity = 1;
27383 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080027384 { // (',' star_target)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027385 if (p->error_indicator) {
27386 D(p->level--);
27387 return NULL;
27388 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027389 D(fprintf(stderr, "%*c> _loop0_133[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_target)"));
Pablo Galindoda743502021-04-15 14:06:39 +010027390 void *_tmp_179_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027391 while (
Pablo Galindoda743502021-04-15 14:06:39 +010027392 (_tmp_179_var = _tmp_179_rule(p)) // ',' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027393 )
27394 {
Pablo Galindoda743502021-04-15 14:06:39 +010027395 _res = _tmp_179_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027396 if (_n == _children_capacity) {
27397 _children_capacity *= 2;
27398 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27399 if (!_new_children) {
27400 p->error_indicator = 1;
27401 PyErr_NoMemory();
27402 D(p->level--);
27403 return NULL;
27404 }
27405 _children = _new_children;
27406 }
27407 _children[_n++] = _res;
27408 _mark = p->mark;
27409 }
27410 p->mark = _mark;
Pablo Galindo835f14f2021-01-31 22:52:56 +000027411 D(fprintf(stderr, "%*c%s _loop0_133[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080027412 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' star_target)"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027413 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027414 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027415 if (!_seq) {
27416 PyMem_Free(_children);
27417 p->error_indicator = 1;
27418 PyErr_NoMemory();
27419 D(p->level--);
27420 return NULL;
27421 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027422 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027423 PyMem_Free(_children);
Pablo Galindo835f14f2021-01-31 22:52:56 +000027424 _PyPegen_insert_memo(p, _start_mark, _loop0_133_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027425 D(p->level--);
27426 return _seq;
27427}
27428
Brandt Bucher145bf262021-02-26 14:51:55 -080027429// _loop0_135: ',' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027430static asdl_seq *
Pablo Galindo835f14f2021-01-31 22:52:56 +000027431_loop0_135_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027432{
27433 D(p->level++);
27434 if (p->error_indicator) {
27435 D(p->level--);
27436 return NULL;
27437 }
27438 void *_res = NULL;
27439 int _mark = p->mark;
27440 int _start_mark = p->mark;
27441 void **_children = PyMem_Malloc(sizeof(void *));
27442 if (!_children) {
27443 p->error_indicator = 1;
27444 PyErr_NoMemory();
27445 D(p->level--);
27446 return NULL;
27447 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027448 Py_ssize_t _children_capacity = 1;
27449 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080027450 { // ',' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027451 if (p->error_indicator) {
27452 D(p->level--);
27453 return NULL;
27454 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027455 D(fprintf(stderr, "%*c> _loop0_135[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target"));
27456 Token * _literal;
27457 expr_ty elem;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027458 while (
Brandt Bucher145bf262021-02-26 14:51:55 -080027459 (_literal = _PyPegen_expect_token(p, 12)) // token=','
27460 &&
27461 (elem = star_target_rule(p)) // star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027462 )
27463 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027464 _res = elem;
27465 if (_res == NULL && PyErr_Occurred()) {
27466 p->error_indicator = 1;
27467 PyMem_Free(_children);
27468 D(p->level--);
27469 return NULL;
27470 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027471 if (_n == _children_capacity) {
27472 _children_capacity *= 2;
27473 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27474 if (!_new_children) {
27475 p->error_indicator = 1;
27476 PyErr_NoMemory();
27477 D(p->level--);
27478 return NULL;
27479 }
27480 _children = _new_children;
27481 }
27482 _children[_n++] = _res;
27483 _mark = p->mark;
27484 }
27485 p->mark = _mark;
Pablo Galindo835f14f2021-01-31 22:52:56 +000027486 D(fprintf(stderr, "%*c%s _loop0_135[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080027487 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027488 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027489 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027490 if (!_seq) {
27491 PyMem_Free(_children);
27492 p->error_indicator = 1;
27493 PyErr_NoMemory();
27494 D(p->level--);
27495 return NULL;
27496 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027497 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027498 PyMem_Free(_children);
Pablo Galindo835f14f2021-01-31 22:52:56 +000027499 _PyPegen_insert_memo(p, _start_mark, _loop0_135_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027500 D(p->level--);
27501 return _seq;
27502}
27503
Brandt Bucher145bf262021-02-26 14:51:55 -080027504// _gather_134: star_target _loop0_135
27505static asdl_seq *
27506_gather_134_rule(Parser *p)
27507{
27508 D(p->level++);
27509 if (p->error_indicator) {
27510 D(p->level--);
27511 return NULL;
27512 }
27513 asdl_seq * _res = NULL;
27514 int _mark = p->mark;
27515 { // star_target _loop0_135
27516 if (p->error_indicator) {
27517 D(p->level--);
27518 return NULL;
27519 }
27520 D(fprintf(stderr, "%*c> _gather_134[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target _loop0_135"));
27521 expr_ty elem;
27522 asdl_seq * seq;
27523 if (
27524 (elem = star_target_rule(p)) // star_target
27525 &&
27526 (seq = _loop0_135_rule(p)) // _loop0_135
27527 )
27528 {
27529 D(fprintf(stderr, "%*c+ _gather_134[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target _loop0_135"));
27530 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
27531 goto done;
27532 }
27533 p->mark = _mark;
27534 D(fprintf(stderr, "%*c%s _gather_134[%d-%d]: %s failed!\n", p->level, ' ',
27535 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target _loop0_135"));
27536 }
27537 _res = NULL;
27538 done:
27539 D(p->level--);
27540 return _res;
27541}
27542
27543// _loop1_136: (',' star_target)
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020027544static asdl_seq *
Pablo Galindo835f14f2021-01-31 22:52:56 +000027545_loop1_136_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027546{
27547 D(p->level++);
27548 if (p->error_indicator) {
27549 D(p->level--);
27550 return NULL;
27551 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020027552 void *_res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027553 int _mark = p->mark;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020027554 int _start_mark = p->mark;
27555 void **_children = PyMem_Malloc(sizeof(void *));
27556 if (!_children) {
27557 p->error_indicator = 1;
27558 PyErr_NoMemory();
27559 D(p->level--);
27560 return NULL;
27561 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027562 Py_ssize_t _children_capacity = 1;
27563 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080027564 { // (',' star_target)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027565 if (p->error_indicator) {
27566 D(p->level--);
27567 return NULL;
27568 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027569 D(fprintf(stderr, "%*c> _loop1_136[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_target)"));
Pablo Galindoda743502021-04-15 14:06:39 +010027570 void *_tmp_180_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020027571 while (
Pablo Galindoda743502021-04-15 14:06:39 +010027572 (_tmp_180_var = _tmp_180_rule(p)) // ',' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027573 )
27574 {
Pablo Galindoda743502021-04-15 14:06:39 +010027575 _res = _tmp_180_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020027576 if (_n == _children_capacity) {
27577 _children_capacity *= 2;
27578 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27579 if (!_new_children) {
27580 p->error_indicator = 1;
27581 PyErr_NoMemory();
27582 D(p->level--);
27583 return NULL;
27584 }
27585 _children = _new_children;
27586 }
27587 _children[_n++] = _res;
27588 _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027589 }
27590 p->mark = _mark;
Pablo Galindo835f14f2021-01-31 22:52:56 +000027591 D(fprintf(stderr, "%*c%s _loop1_136[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080027592 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' star_target)"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027593 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020027594 if (_n == 0 || p->error_indicator) {
27595 PyMem_Free(_children);
27596 D(p->level--);
27597 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027598 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020027599 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
27600 if (!_seq) {
27601 PyMem_Free(_children);
27602 p->error_indicator = 1;
27603 PyErr_NoMemory();
27604 D(p->level--);
27605 return NULL;
27606 }
27607 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
27608 PyMem_Free(_children);
Pablo Galindo835f14f2021-01-31 22:52:56 +000027609 _PyPegen_insert_memo(p, _start_mark, _loop1_136_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027610 D(p->level--);
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020027611 return _seq;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027612}
27613
Brandt Bucher145bf262021-02-26 14:51:55 -080027614// _tmp_137: !'*' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027615static void *
Pablo Galindo835f14f2021-01-31 22:52:56 +000027616_tmp_137_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027617{
27618 D(p->level++);
27619 if (p->error_indicator) {
27620 D(p->level--);
27621 return NULL;
27622 }
27623 void * _res = NULL;
27624 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027625 { // !'*' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027626 if (p->error_indicator) {
27627 D(p->level--);
27628 return NULL;
27629 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027630 D(fprintf(stderr, "%*c> _tmp_137[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "!'*' star_target"));
27631 expr_ty star_target_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027632 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080027633 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 16) // token='*'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027634 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080027635 (star_target_var = star_target_rule(p)) // star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027636 )
27637 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027638 D(fprintf(stderr, "%*c+ _tmp_137[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "!'*' star_target"));
27639 _res = star_target_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027640 goto done;
27641 }
27642 p->mark = _mark;
Pablo Galindo835f14f2021-01-31 22:52:56 +000027643 D(fprintf(stderr, "%*c%s _tmp_137[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080027644 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "!'*' star_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027645 }
27646 _res = NULL;
27647 done:
27648 D(p->level--);
27649 return _res;
27650}
27651
Brandt Bucher145bf262021-02-26 14:51:55 -080027652// _loop0_139: ',' del_target
27653static asdl_seq *
27654_loop0_139_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027655{
27656 D(p->level++);
27657 if (p->error_indicator) {
27658 D(p->level--);
27659 return NULL;
27660 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027661 void *_res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027662 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027663 int _start_mark = p->mark;
27664 void **_children = PyMem_Malloc(sizeof(void *));
27665 if (!_children) {
27666 p->error_indicator = 1;
27667 PyErr_NoMemory();
27668 D(p->level--);
27669 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027670 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027671 Py_ssize_t _children_capacity = 1;
27672 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080027673 { // ',' del_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027674 if (p->error_indicator) {
27675 D(p->level--);
27676 return NULL;
27677 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027678 D(fprintf(stderr, "%*c> _loop0_139[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' del_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027679 Token * _literal;
Brandt Bucher145bf262021-02-26 14:51:55 -080027680 expr_ty elem;
27681 while (
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027682 (_literal = _PyPegen_expect_token(p, 12)) // token=','
27683 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080027684 (elem = del_target_rule(p)) // del_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027685 )
27686 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027687 _res = elem;
27688 if (_res == NULL && PyErr_Occurred()) {
27689 p->error_indicator = 1;
27690 PyMem_Free(_children);
27691 D(p->level--);
27692 return NULL;
27693 }
27694 if (_n == _children_capacity) {
27695 _children_capacity *= 2;
27696 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27697 if (!_new_children) {
27698 p->error_indicator = 1;
27699 PyErr_NoMemory();
27700 D(p->level--);
27701 return NULL;
27702 }
27703 _children = _new_children;
27704 }
27705 _children[_n++] = _res;
27706 _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027707 }
27708 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027709 D(fprintf(stderr, "%*c%s _loop0_139[%d-%d]: %s failed!\n", p->level, ' ',
27710 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' del_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027711 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027712 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
27713 if (!_seq) {
27714 PyMem_Free(_children);
27715 p->error_indicator = 1;
27716 PyErr_NoMemory();
27717 D(p->level--);
27718 return NULL;
27719 }
27720 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
27721 PyMem_Free(_children);
27722 _PyPegen_insert_memo(p, _start_mark, _loop0_139_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027723 D(p->level--);
Brandt Bucher145bf262021-02-26 14:51:55 -080027724 return _seq;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027725}
27726
Brandt Bucher145bf262021-02-26 14:51:55 -080027727// _gather_138: del_target _loop0_139
27728static asdl_seq *
27729_gather_138_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027730{
27731 D(p->level++);
27732 if (p->error_indicator) {
27733 D(p->level--);
27734 return NULL;
27735 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027736 asdl_seq * _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027737 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027738 { // del_target _loop0_139
Pablo Galindo58fb1562021-02-02 19:54:22 +000027739 if (p->error_indicator) {
27740 D(p->level--);
27741 return NULL;
27742 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027743 D(fprintf(stderr, "%*c> _gather_138[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "del_target _loop0_139"));
27744 expr_ty elem;
27745 asdl_seq * seq;
Pablo Galindo58fb1562021-02-02 19:54:22 +000027746 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080027747 (elem = del_target_rule(p)) // del_target
27748 &&
27749 (seq = _loop0_139_rule(p)) // _loop0_139
Pablo Galindo58fb1562021-02-02 19:54:22 +000027750 )
27751 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027752 D(fprintf(stderr, "%*c+ _gather_138[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "del_target _loop0_139"));
27753 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindo58fb1562021-02-02 19:54:22 +000027754 goto done;
27755 }
27756 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027757 D(fprintf(stderr, "%*c%s _gather_138[%d-%d]: %s failed!\n", p->level, ' ',
27758 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "del_target _loop0_139"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000027759 }
27760 _res = NULL;
27761 done:
27762 D(p->level--);
27763 return _res;
27764}
27765
Brandt Bucher145bf262021-02-26 14:51:55 -080027766// _loop0_141: ',' target
Pablo Galindo58fb1562021-02-02 19:54:22 +000027767static asdl_seq *
27768_loop0_141_rule(Parser *p)
27769{
27770 D(p->level++);
27771 if (p->error_indicator) {
27772 D(p->level--);
27773 return NULL;
27774 }
27775 void *_res = NULL;
27776 int _mark = p->mark;
27777 int _start_mark = p->mark;
27778 void **_children = PyMem_Malloc(sizeof(void *));
27779 if (!_children) {
27780 p->error_indicator = 1;
27781 PyErr_NoMemory();
27782 D(p->level--);
27783 return NULL;
27784 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027785 Py_ssize_t _children_capacity = 1;
27786 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080027787 { // ',' target
Pablo Galindo58fb1562021-02-02 19:54:22 +000027788 if (p->error_indicator) {
27789 D(p->level--);
27790 return NULL;
27791 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027792 D(fprintf(stderr, "%*c> _loop0_141[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' target"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000027793 Token * _literal;
Brandt Bucher145bf262021-02-26 14:51:55 -080027794 expr_ty elem;
Pablo Galindo58fb1562021-02-02 19:54:22 +000027795 while (
27796 (_literal = _PyPegen_expect_token(p, 12)) // token=','
27797 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080027798 (elem = target_rule(p)) // target
Pablo Galindo58fb1562021-02-02 19:54:22 +000027799 )
27800 {
27801 _res = elem;
27802 if (_res == NULL && PyErr_Occurred()) {
27803 p->error_indicator = 1;
27804 PyMem_Free(_children);
27805 D(p->level--);
27806 return NULL;
27807 }
27808 if (_n == _children_capacity) {
27809 _children_capacity *= 2;
27810 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27811 if (!_new_children) {
27812 p->error_indicator = 1;
27813 PyErr_NoMemory();
27814 D(p->level--);
27815 return NULL;
27816 }
27817 _children = _new_children;
27818 }
27819 _children[_n++] = _res;
27820 _mark = p->mark;
27821 }
27822 p->mark = _mark;
27823 D(fprintf(stderr, "%*c%s _loop0_141[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080027824 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' target"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000027825 }
27826 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
27827 if (!_seq) {
27828 PyMem_Free(_children);
27829 p->error_indicator = 1;
27830 PyErr_NoMemory();
27831 D(p->level--);
27832 return NULL;
27833 }
27834 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
27835 PyMem_Free(_children);
27836 _PyPegen_insert_memo(p, _start_mark, _loop0_141_type, _seq);
27837 D(p->level--);
27838 return _seq;
27839}
27840
Brandt Bucher145bf262021-02-26 14:51:55 -080027841// _gather_140: target _loop0_141
Pablo Galindo58fb1562021-02-02 19:54:22 +000027842static asdl_seq *
27843_gather_140_rule(Parser *p)
27844{
27845 D(p->level++);
27846 if (p->error_indicator) {
27847 D(p->level--);
27848 return NULL;
27849 }
27850 asdl_seq * _res = NULL;
27851 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027852 { // target _loop0_141
Pablo Galindo58fb1562021-02-02 19:54:22 +000027853 if (p->error_indicator) {
27854 D(p->level--);
27855 return NULL;
27856 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027857 D(fprintf(stderr, "%*c> _gather_140[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "target _loop0_141"));
27858 expr_ty elem;
Pablo Galindo58fb1562021-02-02 19:54:22 +000027859 asdl_seq * seq;
27860 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080027861 (elem = target_rule(p)) // target
Pablo Galindo58fb1562021-02-02 19:54:22 +000027862 &&
27863 (seq = _loop0_141_rule(p)) // _loop0_141
27864 )
27865 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027866 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 +000027867 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
27868 goto done;
27869 }
27870 p->mark = _mark;
27871 D(fprintf(stderr, "%*c%s _gather_140[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080027872 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "target _loop0_141"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000027873 }
27874 _res = NULL;
27875 done:
27876 D(p->level--);
27877 return _res;
27878}
27879
Brandt Bucher145bf262021-02-26 14:51:55 -080027880// _tmp_142: args | expression for_if_clauses
27881static void *
27882_tmp_142_rule(Parser *p)
27883{
27884 D(p->level++);
27885 if (p->error_indicator) {
27886 D(p->level--);
27887 return NULL;
27888 }
27889 void * _res = NULL;
27890 int _mark = p->mark;
27891 { // args
27892 if (p->error_indicator) {
27893 D(p->level--);
27894 return NULL;
27895 }
27896 D(fprintf(stderr, "%*c> _tmp_142[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args"));
27897 expr_ty args_var;
27898 if (
27899 (args_var = args_rule(p)) // args
27900 )
27901 {
27902 D(fprintf(stderr, "%*c+ _tmp_142[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args"));
27903 _res = args_var;
27904 goto done;
27905 }
27906 p->mark = _mark;
27907 D(fprintf(stderr, "%*c%s _tmp_142[%d-%d]: %s failed!\n", p->level, ' ',
27908 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args"));
27909 }
27910 { // expression for_if_clauses
27911 if (p->error_indicator) {
27912 D(p->level--);
27913 return NULL;
27914 }
27915 D(fprintf(stderr, "%*c> _tmp_142[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression for_if_clauses"));
27916 expr_ty expression_var;
27917 asdl_comprehension_seq* for_if_clauses_var;
27918 if (
27919 (expression_var = expression_rule(p)) // expression
27920 &&
27921 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
27922 )
27923 {
27924 D(fprintf(stderr, "%*c+ _tmp_142[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression for_if_clauses"));
27925 _res = _PyPegen_dummy_name(p, expression_var, for_if_clauses_var);
27926 goto done;
27927 }
27928 p->mark = _mark;
27929 D(fprintf(stderr, "%*c%s _tmp_142[%d-%d]: %s failed!\n", p->level, ' ',
27930 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression for_if_clauses"));
27931 }
27932 _res = NULL;
27933 done:
27934 D(p->level--);
27935 return _res;
27936}
27937
Pablo Galindob86ed8e2021-04-12 16:59:30 +010027938// _tmp_143: '=' | ':=' | ','
27939static void *
27940_tmp_143_rule(Parser *p)
27941{
27942 D(p->level++);
27943 if (p->error_indicator) {
27944 D(p->level--);
27945 return NULL;
27946 }
27947 void * _res = NULL;
27948 int _mark = p->mark;
27949 { // '='
27950 if (p->error_indicator) {
27951 D(p->level--);
27952 return NULL;
27953 }
27954 D(fprintf(stderr, "%*c> _tmp_143[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'='"));
27955 Token * _literal;
27956 if (
27957 (_literal = _PyPegen_expect_token(p, 22)) // token='='
27958 )
27959 {
27960 D(fprintf(stderr, "%*c+ _tmp_143[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'='"));
27961 _res = _literal;
27962 goto done;
27963 }
27964 p->mark = _mark;
27965 D(fprintf(stderr, "%*c%s _tmp_143[%d-%d]: %s failed!\n", p->level, ' ',
27966 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'='"));
27967 }
27968 { // ':='
27969 if (p->error_indicator) {
27970 D(p->level--);
27971 return NULL;
27972 }
27973 D(fprintf(stderr, "%*c> _tmp_143[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':='"));
27974 Token * _literal;
27975 if (
27976 (_literal = _PyPegen_expect_token(p, 53)) // token=':='
27977 )
27978 {
27979 D(fprintf(stderr, "%*c+ _tmp_143[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':='"));
27980 _res = _literal;
27981 goto done;
27982 }
27983 p->mark = _mark;
27984 D(fprintf(stderr, "%*c%s _tmp_143[%d-%d]: %s failed!\n", p->level, ' ',
27985 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':='"));
27986 }
27987 { // ','
27988 if (p->error_indicator) {
27989 D(p->level--);
27990 return NULL;
27991 }
27992 D(fprintf(stderr, "%*c> _tmp_143[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','"));
27993 Token * _literal;
27994 if (
27995 (_literal = _PyPegen_expect_token(p, 12)) // token=','
27996 )
27997 {
27998 D(fprintf(stderr, "%*c+ _tmp_143[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','"));
27999 _res = _literal;
28000 goto done;
28001 }
28002 p->mark = _mark;
28003 D(fprintf(stderr, "%*c%s _tmp_143[%d-%d]: %s failed!\n", p->level, ' ',
28004 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','"));
28005 }
28006 _res = NULL;
28007 done:
28008 D(p->level--);
28009 return _res;
28010}
28011
28012// _tmp_144: list | tuple | genexp | 'True' | 'None' | 'False'
28013static void *
28014_tmp_144_rule(Parser *p)
28015{
28016 D(p->level++);
28017 if (p->error_indicator) {
28018 D(p->level--);
28019 return NULL;
28020 }
28021 void * _res = NULL;
28022 int _mark = p->mark;
28023 { // list
28024 if (p->error_indicator) {
28025 D(p->level--);
28026 return NULL;
28027 }
28028 D(fprintf(stderr, "%*c> _tmp_144[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "list"));
28029 expr_ty list_var;
28030 if (
28031 (list_var = list_rule(p)) // list
28032 )
28033 {
28034 D(fprintf(stderr, "%*c+ _tmp_144[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "list"));
28035 _res = list_var;
28036 goto done;
28037 }
28038 p->mark = _mark;
28039 D(fprintf(stderr, "%*c%s _tmp_144[%d-%d]: %s failed!\n", p->level, ' ',
28040 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "list"));
28041 }
28042 { // tuple
28043 if (p->error_indicator) {
28044 D(p->level--);
28045 return NULL;
28046 }
28047 D(fprintf(stderr, "%*c> _tmp_144[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "tuple"));
28048 expr_ty tuple_var;
28049 if (
28050 (tuple_var = tuple_rule(p)) // tuple
28051 )
28052 {
28053 D(fprintf(stderr, "%*c+ _tmp_144[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "tuple"));
28054 _res = tuple_var;
28055 goto done;
28056 }
28057 p->mark = _mark;
28058 D(fprintf(stderr, "%*c%s _tmp_144[%d-%d]: %s failed!\n", p->level, ' ',
28059 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "tuple"));
28060 }
28061 { // genexp
28062 if (p->error_indicator) {
28063 D(p->level--);
28064 return NULL;
28065 }
28066 D(fprintf(stderr, "%*c> _tmp_144[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "genexp"));
28067 expr_ty genexp_var;
28068 if (
28069 (genexp_var = genexp_rule(p)) // genexp
28070 )
28071 {
28072 D(fprintf(stderr, "%*c+ _tmp_144[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "genexp"));
28073 _res = genexp_var;
28074 goto done;
28075 }
28076 p->mark = _mark;
28077 D(fprintf(stderr, "%*c%s _tmp_144[%d-%d]: %s failed!\n", p->level, ' ',
28078 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "genexp"));
28079 }
28080 { // 'True'
28081 if (p->error_indicator) {
28082 D(p->level--);
28083 return NULL;
28084 }
28085 D(fprintf(stderr, "%*c> _tmp_144[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'"));
28086 Token * _keyword;
28087 if (
28088 (_keyword = _PyPegen_expect_token(p, 524)) // token='True'
28089 )
28090 {
28091 D(fprintf(stderr, "%*c+ _tmp_144[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'"));
28092 _res = _keyword;
28093 goto done;
28094 }
28095 p->mark = _mark;
28096 D(fprintf(stderr, "%*c%s _tmp_144[%d-%d]: %s failed!\n", p->level, ' ',
28097 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'True'"));
28098 }
28099 { // 'None'
28100 if (p->error_indicator) {
28101 D(p->level--);
28102 return NULL;
28103 }
28104 D(fprintf(stderr, "%*c> _tmp_144[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'"));
28105 Token * _keyword;
28106 if (
28107 (_keyword = _PyPegen_expect_token(p, 523)) // token='None'
28108 )
28109 {
28110 D(fprintf(stderr, "%*c+ _tmp_144[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'"));
28111 _res = _keyword;
28112 goto done;
28113 }
28114 p->mark = _mark;
28115 D(fprintf(stderr, "%*c%s _tmp_144[%d-%d]: %s failed!\n", p->level, ' ',
28116 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'None'"));
28117 }
28118 { // 'False'
28119 if (p->error_indicator) {
28120 D(p->level--);
28121 return NULL;
28122 }
28123 D(fprintf(stderr, "%*c> _tmp_144[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'"));
28124 Token * _keyword;
28125 if (
28126 (_keyword = _PyPegen_expect_token(p, 525)) // token='False'
28127 )
28128 {
28129 D(fprintf(stderr, "%*c+ _tmp_144[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'"));
28130 _res = _keyword;
28131 goto done;
28132 }
28133 p->mark = _mark;
28134 D(fprintf(stderr, "%*c%s _tmp_144[%d-%d]: %s failed!\n", p->level, ' ',
28135 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'False'"));
28136 }
28137 _res = NULL;
28138 done:
28139 D(p->level--);
28140 return _res;
28141}
28142
28143// _tmp_145: '=' | ':=' | ','
28144static void *
28145_tmp_145_rule(Parser *p)
28146{
28147 D(p->level++);
28148 if (p->error_indicator) {
28149 D(p->level--);
28150 return NULL;
28151 }
28152 void * _res = NULL;
28153 int _mark = p->mark;
28154 { // '='
28155 if (p->error_indicator) {
28156 D(p->level--);
28157 return NULL;
28158 }
28159 D(fprintf(stderr, "%*c> _tmp_145[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'='"));
28160 Token * _literal;
28161 if (
28162 (_literal = _PyPegen_expect_token(p, 22)) // token='='
28163 )
28164 {
28165 D(fprintf(stderr, "%*c+ _tmp_145[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'='"));
28166 _res = _literal;
28167 goto done;
28168 }
28169 p->mark = _mark;
28170 D(fprintf(stderr, "%*c%s _tmp_145[%d-%d]: %s failed!\n", p->level, ' ',
28171 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'='"));
28172 }
28173 { // ':='
28174 if (p->error_indicator) {
28175 D(p->level--);
28176 return NULL;
28177 }
28178 D(fprintf(stderr, "%*c> _tmp_145[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':='"));
28179 Token * _literal;
28180 if (
28181 (_literal = _PyPegen_expect_token(p, 53)) // token=':='
28182 )
28183 {
28184 D(fprintf(stderr, "%*c+ _tmp_145[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':='"));
28185 _res = _literal;
28186 goto done;
28187 }
28188 p->mark = _mark;
28189 D(fprintf(stderr, "%*c%s _tmp_145[%d-%d]: %s failed!\n", p->level, ' ',
28190 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':='"));
28191 }
28192 { // ','
28193 if (p->error_indicator) {
28194 D(p->level--);
28195 return NULL;
28196 }
28197 D(fprintf(stderr, "%*c> _tmp_145[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','"));
28198 Token * _literal;
28199 if (
28200 (_literal = _PyPegen_expect_token(p, 12)) // token=','
28201 )
28202 {
28203 D(fprintf(stderr, "%*c+ _tmp_145[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','"));
28204 _res = _literal;
28205 goto done;
28206 }
28207 p->mark = _mark;
28208 D(fprintf(stderr, "%*c%s _tmp_145[%d-%d]: %s failed!\n", p->level, ' ',
28209 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','"));
28210 }
28211 _res = NULL;
28212 done:
28213 D(p->level--);
28214 return _res;
28215}
28216
28217// _loop0_146: star_named_expressions
Pablo Galindo58fb1562021-02-02 19:54:22 +000028218static asdl_seq *
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028219_loop0_146_rule(Parser *p)
Pablo Galindo58fb1562021-02-02 19:54:22 +000028220{
28221 D(p->level++);
28222 if (p->error_indicator) {
28223 D(p->level--);
28224 return NULL;
28225 }
28226 void *_res = NULL;
28227 int _mark = p->mark;
28228 int _start_mark = p->mark;
28229 void **_children = PyMem_Malloc(sizeof(void *));
28230 if (!_children) {
28231 p->error_indicator = 1;
28232 PyErr_NoMemory();
28233 D(p->level--);
28234 return NULL;
28235 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028236 Py_ssize_t _children_capacity = 1;
28237 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080028238 { // star_named_expressions
Pablo Galindo58fb1562021-02-02 19:54:22 +000028239 if (p->error_indicator) {
28240 D(p->level--);
28241 return NULL;
28242 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028243 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 -080028244 asdl_expr_seq* star_named_expressions_var;
28245 while (
28246 (star_named_expressions_var = star_named_expressions_rule(p)) // star_named_expressions
28247 )
28248 {
28249 _res = star_named_expressions_var;
28250 if (_n == _children_capacity) {
28251 _children_capacity *= 2;
28252 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28253 if (!_new_children) {
28254 p->error_indicator = 1;
28255 PyErr_NoMemory();
28256 D(p->level--);
28257 return NULL;
28258 }
28259 _children = _new_children;
28260 }
28261 _children[_n++] = _res;
28262 _mark = p->mark;
28263 }
28264 p->mark = _mark;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028265 D(fprintf(stderr, "%*c%s _loop0_146[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080028266 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expressions"));
28267 }
28268 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
28269 if (!_seq) {
28270 PyMem_Free(_children);
28271 p->error_indicator = 1;
28272 PyErr_NoMemory();
28273 D(p->level--);
28274 return NULL;
28275 }
28276 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
28277 PyMem_Free(_children);
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028278 _PyPegen_insert_memo(p, _start_mark, _loop0_146_type, _seq);
Brandt Bucher145bf262021-02-26 14:51:55 -080028279 D(p->level--);
28280 return _seq;
28281}
28282
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028283// _loop0_147: (star_targets '=')
Brandt Bucher145bf262021-02-26 14:51:55 -080028284static asdl_seq *
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028285_loop0_147_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080028286{
28287 D(p->level++);
28288 if (p->error_indicator) {
28289 D(p->level--);
28290 return NULL;
28291 }
28292 void *_res = NULL;
28293 int _mark = p->mark;
28294 int _start_mark = p->mark;
28295 void **_children = PyMem_Malloc(sizeof(void *));
28296 if (!_children) {
28297 p->error_indicator = 1;
28298 PyErr_NoMemory();
28299 D(p->level--);
28300 return NULL;
28301 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028302 Py_ssize_t _children_capacity = 1;
28303 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080028304 { // (star_targets '=')
28305 if (p->error_indicator) {
28306 D(p->level--);
28307 return NULL;
28308 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028309 D(fprintf(stderr, "%*c> _loop0_147[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')"));
Pablo Galindoda743502021-04-15 14:06:39 +010028310 void *_tmp_181_var;
Brandt Bucher145bf262021-02-26 14:51:55 -080028311 while (
Pablo Galindoda743502021-04-15 14:06:39 +010028312 (_tmp_181_var = _tmp_181_rule(p)) // star_targets '='
Brandt Bucher145bf262021-02-26 14:51:55 -080028313 )
28314 {
Pablo Galindoda743502021-04-15 14:06:39 +010028315 _res = _tmp_181_var;
Brandt Bucher145bf262021-02-26 14:51:55 -080028316 if (_n == _children_capacity) {
28317 _children_capacity *= 2;
28318 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28319 if (!_new_children) {
28320 p->error_indicator = 1;
28321 PyErr_NoMemory();
28322 D(p->level--);
28323 return NULL;
28324 }
28325 _children = _new_children;
28326 }
28327 _children[_n++] = _res;
28328 _mark = p->mark;
28329 }
28330 p->mark = _mark;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028331 D(fprintf(stderr, "%*c%s _loop0_147[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080028332 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(star_targets '=')"));
28333 }
28334 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
28335 if (!_seq) {
28336 PyMem_Free(_children);
28337 p->error_indicator = 1;
28338 PyErr_NoMemory();
28339 D(p->level--);
28340 return NULL;
28341 }
28342 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
28343 PyMem_Free(_children);
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028344 _PyPegen_insert_memo(p, _start_mark, _loop0_147_type, _seq);
Brandt Bucher145bf262021-02-26 14:51:55 -080028345 D(p->level--);
28346 return _seq;
28347}
28348
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028349// _loop0_148: (star_targets '=')
Brandt Bucher145bf262021-02-26 14:51:55 -080028350static asdl_seq *
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028351_loop0_148_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080028352{
28353 D(p->level++);
28354 if (p->error_indicator) {
28355 D(p->level--);
28356 return NULL;
28357 }
28358 void *_res = NULL;
28359 int _mark = p->mark;
28360 int _start_mark = p->mark;
28361 void **_children = PyMem_Malloc(sizeof(void *));
28362 if (!_children) {
28363 p->error_indicator = 1;
28364 PyErr_NoMemory();
28365 D(p->level--);
28366 return NULL;
28367 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028368 Py_ssize_t _children_capacity = 1;
28369 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080028370 { // (star_targets '=')
28371 if (p->error_indicator) {
28372 D(p->level--);
28373 return NULL;
28374 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028375 D(fprintf(stderr, "%*c> _loop0_148[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')"));
Pablo Galindoda743502021-04-15 14:06:39 +010028376 void *_tmp_182_var;
Brandt Bucher145bf262021-02-26 14:51:55 -080028377 while (
Pablo Galindoda743502021-04-15 14:06:39 +010028378 (_tmp_182_var = _tmp_182_rule(p)) // star_targets '='
Brandt Bucher145bf262021-02-26 14:51:55 -080028379 )
28380 {
Pablo Galindoda743502021-04-15 14:06:39 +010028381 _res = _tmp_182_var;
Brandt Bucher145bf262021-02-26 14:51:55 -080028382 if (_n == _children_capacity) {
28383 _children_capacity *= 2;
28384 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28385 if (!_new_children) {
28386 p->error_indicator = 1;
28387 PyErr_NoMemory();
28388 D(p->level--);
28389 return NULL;
28390 }
28391 _children = _new_children;
28392 }
28393 _children[_n++] = _res;
28394 _mark = p->mark;
28395 }
28396 p->mark = _mark;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028397 D(fprintf(stderr, "%*c%s _loop0_148[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080028398 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(star_targets '=')"));
28399 }
28400 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
28401 if (!_seq) {
28402 PyMem_Free(_children);
28403 p->error_indicator = 1;
28404 PyErr_NoMemory();
28405 D(p->level--);
28406 return NULL;
28407 }
28408 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
28409 PyMem_Free(_children);
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028410 _PyPegen_insert_memo(p, _start_mark, _loop0_148_type, _seq);
Brandt Bucher145bf262021-02-26 14:51:55 -080028411 D(p->level--);
28412 return _seq;
28413}
28414
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028415// _tmp_149: yield_expr | star_expressions
Brandt Bucher145bf262021-02-26 14:51:55 -080028416static void *
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028417_tmp_149_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080028418{
28419 D(p->level++);
28420 if (p->error_indicator) {
28421 D(p->level--);
28422 return NULL;
28423 }
28424 void * _res = NULL;
28425 int _mark = p->mark;
28426 { // yield_expr
28427 if (p->error_indicator) {
28428 D(p->level--);
28429 return NULL;
28430 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028431 D(fprintf(stderr, "%*c> _tmp_149[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
Brandt Bucher145bf262021-02-26 14:51:55 -080028432 expr_ty yield_expr_var;
28433 if (
28434 (yield_expr_var = yield_expr_rule(p)) // yield_expr
28435 )
28436 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028437 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 -080028438 _res = yield_expr_var;
28439 goto done;
28440 }
28441 p->mark = _mark;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028442 D(fprintf(stderr, "%*c%s _tmp_149[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080028443 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
28444 }
28445 { // star_expressions
28446 if (p->error_indicator) {
28447 D(p->level--);
28448 return NULL;
28449 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028450 D(fprintf(stderr, "%*c> _tmp_149[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
Brandt Bucher145bf262021-02-26 14:51:55 -080028451 expr_ty star_expressions_var;
28452 if (
28453 (star_expressions_var = star_expressions_rule(p)) // star_expressions
28454 )
28455 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028456 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 -080028457 _res = star_expressions_var;
28458 goto done;
28459 }
28460 p->mark = _mark;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028461 D(fprintf(stderr, "%*c%s _tmp_149[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080028462 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
28463 }
28464 _res = NULL;
28465 done:
28466 D(p->level--);
28467 return _res;
28468}
28469
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028470// _tmp_150: '[' | '(' | '{'
Brandt Bucher145bf262021-02-26 14:51:55 -080028471static void *
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028472_tmp_150_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080028473{
28474 D(p->level++);
28475 if (p->error_indicator) {
28476 D(p->level--);
28477 return NULL;
28478 }
28479 void * _res = NULL;
28480 int _mark = p->mark;
28481 { // '['
28482 if (p->error_indicator) {
28483 D(p->level--);
28484 return NULL;
28485 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028486 D(fprintf(stderr, "%*c> _tmp_150[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['"));
Brandt Bucher145bf262021-02-26 14:51:55 -080028487 Token * _literal;
28488 if (
28489 (_literal = _PyPegen_expect_token(p, 9)) // token='['
28490 )
28491 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028492 D(fprintf(stderr, "%*c+ _tmp_150[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['"));
Brandt Bucher145bf262021-02-26 14:51:55 -080028493 _res = _literal;
28494 goto done;
28495 }
28496 p->mark = _mark;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028497 D(fprintf(stderr, "%*c%s _tmp_150[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080028498 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['"));
28499 }
28500 { // '('
28501 if (p->error_indicator) {
28502 D(p->level--);
28503 return NULL;
28504 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028505 D(fprintf(stderr, "%*c> _tmp_150[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('"));
Brandt Bucher145bf262021-02-26 14:51:55 -080028506 Token * _literal;
28507 if (
28508 (_literal = _PyPegen_expect_token(p, 7)) // token='('
28509 )
28510 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028511 D(fprintf(stderr, "%*c+ _tmp_150[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('"));
Brandt Bucher145bf262021-02-26 14:51:55 -080028512 _res = _literal;
28513 goto done;
28514 }
28515 p->mark = _mark;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028516 D(fprintf(stderr, "%*c%s _tmp_150[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080028517 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('"));
28518 }
28519 { // '{'
28520 if (p->error_indicator) {
28521 D(p->level--);
28522 return NULL;
28523 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028524 D(fprintf(stderr, "%*c> _tmp_150[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{'"));
Brandt Bucher145bf262021-02-26 14:51:55 -080028525 Token * _literal;
28526 if (
28527 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
28528 )
28529 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028530 D(fprintf(stderr, "%*c+ _tmp_150[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{'"));
Brandt Bucher145bf262021-02-26 14:51:55 -080028531 _res = _literal;
28532 goto done;
28533 }
28534 p->mark = _mark;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028535 D(fprintf(stderr, "%*c%s _tmp_150[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080028536 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{'"));
28537 }
28538 _res = NULL;
28539 done:
28540 D(p->level--);
28541 return _res;
28542}
28543
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028544// _tmp_151: '[' | '{'
Brandt Bucher145bf262021-02-26 14:51:55 -080028545static void *
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028546_tmp_151_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080028547{
28548 D(p->level++);
28549 if (p->error_indicator) {
28550 D(p->level--);
28551 return NULL;
28552 }
28553 void * _res = NULL;
28554 int _mark = p->mark;
28555 { // '['
28556 if (p->error_indicator) {
28557 D(p->level--);
28558 return NULL;
28559 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028560 D(fprintf(stderr, "%*c> _tmp_151[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['"));
Brandt Bucher145bf262021-02-26 14:51:55 -080028561 Token * _literal;
28562 if (
28563 (_literal = _PyPegen_expect_token(p, 9)) // token='['
28564 )
28565 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028566 D(fprintf(stderr, "%*c+ _tmp_151[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['"));
Brandt Bucher145bf262021-02-26 14:51:55 -080028567 _res = _literal;
28568 goto done;
28569 }
28570 p->mark = _mark;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028571 D(fprintf(stderr, "%*c%s _tmp_151[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080028572 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['"));
28573 }
28574 { // '{'
28575 if (p->error_indicator) {
28576 D(p->level--);
28577 return NULL;
28578 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028579 D(fprintf(stderr, "%*c> _tmp_151[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{'"));
Brandt Bucher145bf262021-02-26 14:51:55 -080028580 Token * _literal;
28581 if (
28582 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
28583 )
28584 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028585 D(fprintf(stderr, "%*c+ _tmp_151[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{'"));
Brandt Bucher145bf262021-02-26 14:51:55 -080028586 _res = _literal;
28587 goto done;
28588 }
28589 p->mark = _mark;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028590 D(fprintf(stderr, "%*c%s _tmp_151[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080028591 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{'"));
28592 }
28593 _res = NULL;
28594 done:
28595 D(p->level--);
28596 return _res;
28597}
28598
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028599// _loop0_152: param_no_default
Brandt Bucher145bf262021-02-26 14:51:55 -080028600static asdl_seq *
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028601_loop0_152_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080028602{
28603 D(p->level++);
28604 if (p->error_indicator) {
28605 D(p->level--);
28606 return NULL;
28607 }
28608 void *_res = NULL;
28609 int _mark = p->mark;
28610 int _start_mark = p->mark;
28611 void **_children = PyMem_Malloc(sizeof(void *));
28612 if (!_children) {
28613 p->error_indicator = 1;
28614 PyErr_NoMemory();
28615 D(p->level--);
28616 return NULL;
28617 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028618 Py_ssize_t _children_capacity = 1;
28619 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080028620 { // param_no_default
28621 if (p->error_indicator) {
28622 D(p->level--);
28623 return NULL;
28624 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028625 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 -080028626 arg_ty param_no_default_var;
28627 while (
28628 (param_no_default_var = param_no_default_rule(p)) // param_no_default
28629 )
28630 {
28631 _res = param_no_default_var;
28632 if (_n == _children_capacity) {
28633 _children_capacity *= 2;
28634 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28635 if (!_new_children) {
28636 p->error_indicator = 1;
28637 PyErr_NoMemory();
28638 D(p->level--);
28639 return NULL;
28640 }
28641 _children = _new_children;
28642 }
28643 _children[_n++] = _res;
28644 _mark = p->mark;
28645 }
28646 p->mark = _mark;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028647 D(fprintf(stderr, "%*c%s _loop0_152[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080028648 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
28649 }
28650 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
28651 if (!_seq) {
28652 PyMem_Free(_children);
28653 p->error_indicator = 1;
28654 PyErr_NoMemory();
28655 D(p->level--);
28656 return NULL;
28657 }
28658 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
28659 PyMem_Free(_children);
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028660 _PyPegen_insert_memo(p, _start_mark, _loop0_152_type, _seq);
Brandt Bucher145bf262021-02-26 14:51:55 -080028661 D(p->level--);
28662 return _seq;
28663}
28664
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028665// _loop1_153: param_with_default
Brandt Bucher145bf262021-02-26 14:51:55 -080028666static asdl_seq *
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028667_loop1_153_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080028668{
28669 D(p->level++);
28670 if (p->error_indicator) {
28671 D(p->level--);
28672 return NULL;
28673 }
28674 void *_res = NULL;
28675 int _mark = p->mark;
28676 int _start_mark = p->mark;
28677 void **_children = PyMem_Malloc(sizeof(void *));
28678 if (!_children) {
28679 p->error_indicator = 1;
28680 PyErr_NoMemory();
28681 D(p->level--);
28682 return NULL;
28683 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028684 Py_ssize_t _children_capacity = 1;
28685 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080028686 { // param_with_default
28687 if (p->error_indicator) {
28688 D(p->level--);
28689 return NULL;
28690 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028691 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 -080028692 NameDefaultPair* param_with_default_var;
28693 while (
28694 (param_with_default_var = param_with_default_rule(p)) // param_with_default
28695 )
28696 {
28697 _res = param_with_default_var;
28698 if (_n == _children_capacity) {
28699 _children_capacity *= 2;
28700 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28701 if (!_new_children) {
28702 p->error_indicator = 1;
28703 PyErr_NoMemory();
28704 D(p->level--);
28705 return NULL;
28706 }
28707 _children = _new_children;
28708 }
28709 _children[_n++] = _res;
28710 _mark = p->mark;
28711 }
28712 p->mark = _mark;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028713 D(fprintf(stderr, "%*c%s _loop1_153[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080028714 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
28715 }
28716 if (_n == 0 || p->error_indicator) {
28717 PyMem_Free(_children);
28718 D(p->level--);
28719 return NULL;
28720 }
28721 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
28722 if (!_seq) {
28723 PyMem_Free(_children);
28724 p->error_indicator = 1;
28725 PyErr_NoMemory();
28726 D(p->level--);
28727 return NULL;
28728 }
28729 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
28730 PyMem_Free(_children);
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028731 _PyPegen_insert_memo(p, _start_mark, _loop1_153_type, _seq);
Brandt Bucher145bf262021-02-26 14:51:55 -080028732 D(p->level--);
28733 return _seq;
28734}
28735
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028736// _loop0_154: lambda_param_no_default
Brandt Bucher145bf262021-02-26 14:51:55 -080028737static asdl_seq *
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028738_loop0_154_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080028739{
28740 D(p->level++);
28741 if (p->error_indicator) {
28742 D(p->level--);
28743 return NULL;
28744 }
28745 void *_res = NULL;
28746 int _mark = p->mark;
28747 int _start_mark = p->mark;
28748 void **_children = PyMem_Malloc(sizeof(void *));
28749 if (!_children) {
28750 p->error_indicator = 1;
28751 PyErr_NoMemory();
28752 D(p->level--);
28753 return NULL;
28754 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028755 Py_ssize_t _children_capacity = 1;
28756 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080028757 { // lambda_param_no_default
28758 if (p->error_indicator) {
28759 D(p->level--);
28760 return NULL;
28761 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028762 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 -080028763 arg_ty lambda_param_no_default_var;
28764 while (
28765 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
28766 )
28767 {
28768 _res = lambda_param_no_default_var;
28769 if (_n == _children_capacity) {
28770 _children_capacity *= 2;
28771 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28772 if (!_new_children) {
28773 p->error_indicator = 1;
28774 PyErr_NoMemory();
28775 D(p->level--);
28776 return NULL;
28777 }
28778 _children = _new_children;
28779 }
28780 _children[_n++] = _res;
28781 _mark = p->mark;
28782 }
28783 p->mark = _mark;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028784 D(fprintf(stderr, "%*c%s _loop0_154[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080028785 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
28786 }
28787 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
28788 if (!_seq) {
28789 PyMem_Free(_children);
28790 p->error_indicator = 1;
28791 PyErr_NoMemory();
28792 D(p->level--);
28793 return NULL;
28794 }
28795 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
28796 PyMem_Free(_children);
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028797 _PyPegen_insert_memo(p, _start_mark, _loop0_154_type, _seq);
Brandt Bucher145bf262021-02-26 14:51:55 -080028798 D(p->level--);
28799 return _seq;
28800}
28801
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028802// _loop1_155: lambda_param_with_default
Brandt Bucher145bf262021-02-26 14:51:55 -080028803static asdl_seq *
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028804_loop1_155_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080028805{
28806 D(p->level++);
28807 if (p->error_indicator) {
28808 D(p->level--);
28809 return NULL;
28810 }
28811 void *_res = NULL;
28812 int _mark = p->mark;
28813 int _start_mark = p->mark;
28814 void **_children = PyMem_Malloc(sizeof(void *));
28815 if (!_children) {
28816 p->error_indicator = 1;
28817 PyErr_NoMemory();
28818 D(p->level--);
28819 return NULL;
28820 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028821 Py_ssize_t _children_capacity = 1;
28822 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080028823 { // lambda_param_with_default
28824 if (p->error_indicator) {
28825 D(p->level--);
28826 return NULL;
28827 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028828 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 -080028829 NameDefaultPair* lambda_param_with_default_var;
28830 while (
28831 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
28832 )
28833 {
28834 _res = lambda_param_with_default_var;
28835 if (_n == _children_capacity) {
28836 _children_capacity *= 2;
28837 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28838 if (!_new_children) {
28839 p->error_indicator = 1;
28840 PyErr_NoMemory();
28841 D(p->level--);
28842 return NULL;
28843 }
28844 _children = _new_children;
28845 }
28846 _children[_n++] = _res;
28847 _mark = p->mark;
28848 }
28849 p->mark = _mark;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028850 D(fprintf(stderr, "%*c%s _loop1_155[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080028851 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
28852 }
28853 if (_n == 0 || p->error_indicator) {
28854 PyMem_Free(_children);
28855 D(p->level--);
28856 return NULL;
28857 }
28858 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
28859 if (!_seq) {
28860 PyMem_Free(_children);
28861 p->error_indicator = 1;
28862 PyErr_NoMemory();
28863 D(p->level--);
28864 return NULL;
28865 }
28866 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
28867 PyMem_Free(_children);
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028868 _PyPegen_insert_memo(p, _start_mark, _loop1_155_type, _seq);
Brandt Bucher145bf262021-02-26 14:51:55 -080028869 D(p->level--);
28870 return _seq;
28871}
28872
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028873// _tmp_156: ')' | ',' (')' | '**')
Brandt Bucher145bf262021-02-26 14:51:55 -080028874static void *
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028875_tmp_156_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080028876{
28877 D(p->level++);
28878 if (p->error_indicator) {
28879 D(p->level--);
28880 return NULL;
28881 }
28882 void * _res = NULL;
28883 int _mark = p->mark;
28884 { // ')'
28885 if (p->error_indicator) {
28886 D(p->level--);
28887 return NULL;
28888 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028889 D(fprintf(stderr, "%*c> _tmp_156[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
Brandt Bucher145bf262021-02-26 14:51:55 -080028890 Token * _literal;
28891 if (
28892 (_literal = _PyPegen_expect_token(p, 8)) // token=')'
28893 )
28894 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028895 D(fprintf(stderr, "%*c+ _tmp_156[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
Brandt Bucher145bf262021-02-26 14:51:55 -080028896 _res = _literal;
28897 goto done;
28898 }
28899 p->mark = _mark;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028900 D(fprintf(stderr, "%*c%s _tmp_156[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080028901 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
28902 }
28903 { // ',' (')' | '**')
28904 if (p->error_indicator) {
28905 D(p->level--);
28906 return NULL;
28907 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028908 D(fprintf(stderr, "%*c> _tmp_156[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (')' | '**')"));
Brandt Bucher145bf262021-02-26 14:51:55 -080028909 Token * _literal;
Pablo Galindoda743502021-04-15 14:06:39 +010028910 void *_tmp_183_var;
Brandt Bucher145bf262021-02-26 14:51:55 -080028911 if (
28912 (_literal = _PyPegen_expect_token(p, 12)) // token=','
28913 &&
Pablo Galindoda743502021-04-15 14:06:39 +010028914 (_tmp_183_var = _tmp_183_rule(p)) // ')' | '**'
Brandt Bucher145bf262021-02-26 14:51:55 -080028915 )
28916 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028917 D(fprintf(stderr, "%*c+ _tmp_156[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' (')' | '**')"));
Pablo Galindoda743502021-04-15 14:06:39 +010028918 _res = _PyPegen_dummy_name(p, _literal, _tmp_183_var);
Brandt Bucher145bf262021-02-26 14:51:55 -080028919 goto done;
28920 }
28921 p->mark = _mark;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028922 D(fprintf(stderr, "%*c%s _tmp_156[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080028923 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (')' | '**')"));
28924 }
28925 _res = NULL;
28926 done:
28927 D(p->level--);
28928 return _res;
28929}
28930
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028931// _tmp_157: ':' | ',' (':' | '**')
Brandt Bucher145bf262021-02-26 14:51:55 -080028932static void *
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028933_tmp_157_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080028934{
28935 D(p->level++);
28936 if (p->error_indicator) {
28937 D(p->level--);
28938 return NULL;
28939 }
28940 void * _res = NULL;
28941 int _mark = p->mark;
28942 { // ':'
28943 if (p->error_indicator) {
28944 D(p->level--);
28945 return NULL;
28946 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028947 D(fprintf(stderr, "%*c> _tmp_157[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
Brandt Bucher145bf262021-02-26 14:51:55 -080028948 Token * _literal;
28949 if (
28950 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
28951 )
28952 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028953 D(fprintf(stderr, "%*c+ _tmp_157[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
Brandt Bucher145bf262021-02-26 14:51:55 -080028954 _res = _literal;
28955 goto done;
28956 }
28957 p->mark = _mark;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028958 D(fprintf(stderr, "%*c%s _tmp_157[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080028959 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
28960 }
28961 { // ',' (':' | '**')
28962 if (p->error_indicator) {
28963 D(p->level--);
28964 return NULL;
28965 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028966 D(fprintf(stderr, "%*c> _tmp_157[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (':' | '**')"));
Brandt Bucher145bf262021-02-26 14:51:55 -080028967 Token * _literal;
Pablo Galindoda743502021-04-15 14:06:39 +010028968 void *_tmp_184_var;
Brandt Bucher145bf262021-02-26 14:51:55 -080028969 if (
28970 (_literal = _PyPegen_expect_token(p, 12)) // token=','
28971 &&
Pablo Galindoda743502021-04-15 14:06:39 +010028972 (_tmp_184_var = _tmp_184_rule(p)) // ':' | '**'
Brandt Bucher145bf262021-02-26 14:51:55 -080028973 )
28974 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028975 D(fprintf(stderr, "%*c+ _tmp_157[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' (':' | '**')"));
Pablo Galindoda743502021-04-15 14:06:39 +010028976 _res = _PyPegen_dummy_name(p, _literal, _tmp_184_var);
Brandt Bucher145bf262021-02-26 14:51:55 -080028977 goto done;
28978 }
28979 p->mark = _mark;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028980 D(fprintf(stderr, "%*c%s _tmp_157[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080028981 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (':' | '**')"));
28982 }
28983 _res = NULL;
28984 done:
28985 D(p->level--);
28986 return _res;
28987}
28988
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028989// _tmp_158: ',' | ')' | ':'
Brandt Bucher145bf262021-02-26 14:51:55 -080028990static void *
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028991_tmp_158_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080028992{
28993 D(p->level++);
28994 if (p->error_indicator) {
28995 D(p->level--);
28996 return NULL;
28997 }
28998 void * _res = NULL;
28999 int _mark = p->mark;
29000 { // ','
29001 if (p->error_indicator) {
29002 D(p->level--);
29003 return NULL;
29004 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029005 D(fprintf(stderr, "%*c> _tmp_158[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029006 Token * _literal;
29007 if (
29008 (_literal = _PyPegen_expect_token(p, 12)) // token=','
29009 )
29010 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029011 D(fprintf(stderr, "%*c+ _tmp_158[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029012 _res = _literal;
29013 goto done;
29014 }
29015 p->mark = _mark;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029016 D(fprintf(stderr, "%*c%s _tmp_158[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080029017 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','"));
29018 }
29019 { // ')'
29020 if (p->error_indicator) {
29021 D(p->level--);
29022 return NULL;
29023 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029024 D(fprintf(stderr, "%*c> _tmp_158[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029025 Token * _literal;
29026 if (
29027 (_literal = _PyPegen_expect_token(p, 8)) // token=')'
29028 )
29029 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029030 D(fprintf(stderr, "%*c+ _tmp_158[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029031 _res = _literal;
29032 goto done;
29033 }
29034 p->mark = _mark;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029035 D(fprintf(stderr, "%*c%s _tmp_158[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080029036 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
29037 }
29038 { // ':'
29039 if (p->error_indicator) {
29040 D(p->level--);
29041 return NULL;
29042 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029043 D(fprintf(stderr, "%*c> _tmp_158[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029044 Token * _literal;
29045 if (
29046 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
29047 )
29048 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029049 D(fprintf(stderr, "%*c+ _tmp_158[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029050 _res = _literal;
29051 goto done;
29052 }
29053 p->mark = _mark;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029054 D(fprintf(stderr, "%*c%s _tmp_158[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080029055 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
29056 }
29057 _res = NULL;
29058 done:
29059 D(p->level--);
29060 return _res;
29061}
29062
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029063// _loop0_160: ',' (expression ['as' star_target])
Brandt Bucher145bf262021-02-26 14:51:55 -080029064static asdl_seq *
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029065_loop0_160_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080029066{
29067 D(p->level++);
29068 if (p->error_indicator) {
29069 D(p->level--);
29070 return NULL;
29071 }
29072 void *_res = NULL;
29073 int _mark = p->mark;
29074 int _start_mark = p->mark;
29075 void **_children = PyMem_Malloc(sizeof(void *));
29076 if (!_children) {
29077 p->error_indicator = 1;
29078 PyErr_NoMemory();
29079 D(p->level--);
29080 return NULL;
29081 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010029082 Py_ssize_t _children_capacity = 1;
29083 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080029084 { // ',' (expression ['as' star_target])
29085 if (p->error_indicator) {
29086 D(p->level--);
29087 return NULL;
29088 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029089 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 +000029090 Token * _literal;
29091 void *elem;
29092 while (
29093 (_literal = _PyPegen_expect_token(p, 12)) // token=','
29094 &&
Pablo Galindoda743502021-04-15 14:06:39 +010029095 (elem = _tmp_185_rule(p)) // expression ['as' star_target]
Pablo Galindo58fb1562021-02-02 19:54:22 +000029096 )
29097 {
29098 _res = elem;
29099 if (_res == NULL && PyErr_Occurred()) {
29100 p->error_indicator = 1;
29101 PyMem_Free(_children);
29102 D(p->level--);
29103 return NULL;
29104 }
29105 if (_n == _children_capacity) {
29106 _children_capacity *= 2;
29107 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
29108 if (!_new_children) {
29109 p->error_indicator = 1;
29110 PyErr_NoMemory();
29111 D(p->level--);
29112 return NULL;
29113 }
29114 _children = _new_children;
29115 }
29116 _children[_n++] = _res;
29117 _mark = p->mark;
29118 }
29119 p->mark = _mark;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029120 D(fprintf(stderr, "%*c%s _loop0_160[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080029121 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (expression ['as' star_target])"));
29122 }
29123 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
29124 if (!_seq) {
29125 PyMem_Free(_children);
29126 p->error_indicator = 1;
29127 PyErr_NoMemory();
29128 D(p->level--);
29129 return NULL;
29130 }
29131 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
29132 PyMem_Free(_children);
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029133 _PyPegen_insert_memo(p, _start_mark, _loop0_160_type, _seq);
Brandt Bucher145bf262021-02-26 14:51:55 -080029134 D(p->level--);
29135 return _seq;
29136}
29137
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029138// _gather_159: (expression ['as' star_target]) _loop0_160
Brandt Bucher145bf262021-02-26 14:51:55 -080029139static asdl_seq *
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029140_gather_159_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080029141{
29142 D(p->level++);
29143 if (p->error_indicator) {
29144 D(p->level--);
29145 return NULL;
29146 }
29147 asdl_seq * _res = NULL;
29148 int _mark = p->mark;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029149 { // (expression ['as' star_target]) _loop0_160
Brandt Bucher145bf262021-02-26 14:51:55 -080029150 if (p->error_indicator) {
29151 D(p->level--);
29152 return NULL;
29153 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029154 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 -080029155 void *elem;
29156 asdl_seq * seq;
29157 if (
Pablo Galindoda743502021-04-15 14:06:39 +010029158 (elem = _tmp_185_rule(p)) // expression ['as' star_target]
Brandt Bucher145bf262021-02-26 14:51:55 -080029159 &&
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029160 (seq = _loop0_160_rule(p)) // _loop0_160
Brandt Bucher145bf262021-02-26 14:51:55 -080029161 )
29162 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029163 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 -080029164 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
29165 goto done;
29166 }
29167 p->mark = _mark;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029168 D(fprintf(stderr, "%*c%s _gather_159[%d-%d]: %s failed!\n", p->level, ' ',
29169 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expression ['as' star_target]) _loop0_160"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029170 }
29171 _res = NULL;
29172 done:
29173 D(p->level--);
29174 return _res;
29175}
29176
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029177// _loop0_162: ',' (expressions ['as' star_target])
Brandt Bucher145bf262021-02-26 14:51:55 -080029178static asdl_seq *
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029179_loop0_162_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080029180{
29181 D(p->level++);
29182 if (p->error_indicator) {
29183 D(p->level--);
29184 return NULL;
29185 }
29186 void *_res = NULL;
29187 int _mark = p->mark;
29188 int _start_mark = p->mark;
29189 void **_children = PyMem_Malloc(sizeof(void *));
29190 if (!_children) {
29191 p->error_indicator = 1;
29192 PyErr_NoMemory();
29193 D(p->level--);
29194 return NULL;
29195 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010029196 Py_ssize_t _children_capacity = 1;
29197 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080029198 { // ',' (expressions ['as' star_target])
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> _loop0_162[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (expressions ['as' star_target])"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029204 Token * _literal;
29205 void *elem;
29206 while (
29207 (_literal = _PyPegen_expect_token(p, 12)) // token=','
29208 &&
Pablo Galindoda743502021-04-15 14:06:39 +010029209 (elem = _tmp_186_rule(p)) // expressions ['as' star_target]
Brandt Bucher145bf262021-02-26 14:51:55 -080029210 )
29211 {
29212 _res = elem;
29213 if (_res == NULL && PyErr_Occurred()) {
29214 p->error_indicator = 1;
29215 PyMem_Free(_children);
29216 D(p->level--);
29217 return NULL;
29218 }
29219 if (_n == _children_capacity) {
29220 _children_capacity *= 2;
29221 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
29222 if (!_new_children) {
29223 p->error_indicator = 1;
29224 PyErr_NoMemory();
29225 D(p->level--);
29226 return NULL;
29227 }
29228 _children = _new_children;
29229 }
29230 _children[_n++] = _res;
29231 _mark = p->mark;
29232 }
29233 p->mark = _mark;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029234 D(fprintf(stderr, "%*c%s _loop0_162[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +000029235 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (expressions ['as' star_target])"));
29236 }
29237 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
29238 if (!_seq) {
29239 PyMem_Free(_children);
29240 p->error_indicator = 1;
29241 PyErr_NoMemory();
29242 D(p->level--);
29243 return NULL;
29244 }
29245 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
29246 PyMem_Free(_children);
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029247 _PyPegen_insert_memo(p, _start_mark, _loop0_162_type, _seq);
Pablo Galindo58fb1562021-02-02 19:54:22 +000029248 D(p->level--);
29249 return _seq;
29250}
29251
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029252// _gather_161: (expressions ['as' star_target]) _loop0_162
Pablo Galindo58fb1562021-02-02 19:54:22 +000029253static asdl_seq *
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029254_gather_161_rule(Parser *p)
Pablo Galindo58fb1562021-02-02 19:54:22 +000029255{
29256 D(p->level++);
29257 if (p->error_indicator) {
29258 D(p->level--);
29259 return NULL;
29260 }
29261 asdl_seq * _res = NULL;
29262 int _mark = p->mark;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029263 { // (expressions ['as' star_target]) _loop0_162
Pablo Galindo58fb1562021-02-02 19:54:22 +000029264 if (p->error_indicator) {
29265 D(p->level--);
29266 return NULL;
29267 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029268 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 +000029269 void *elem;
29270 asdl_seq * seq;
29271 if (
Pablo Galindoda743502021-04-15 14:06:39 +010029272 (elem = _tmp_186_rule(p)) // expressions ['as' star_target]
Pablo Galindo58fb1562021-02-02 19:54:22 +000029273 &&
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029274 (seq = _loop0_162_rule(p)) // _loop0_162
Pablo Galindo58fb1562021-02-02 19:54:22 +000029275 )
29276 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029277 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 +000029278 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
29279 goto done;
29280 }
29281 p->mark = _mark;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029282 D(fprintf(stderr, "%*c%s _gather_161[%d-%d]: %s failed!\n", p->level, ' ',
29283 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expressions ['as' star_target]) _loop0_162"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000029284 }
29285 _res = NULL;
29286 done:
29287 D(p->level--);
29288 return _res;
29289}
29290
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029291// _tmp_163: 'as' NAME
Pablo Galindo58fb1562021-02-02 19:54:22 +000029292static void *
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029293_tmp_163_rule(Parser *p)
Pablo Galindo58fb1562021-02-02 19:54:22 +000029294{
29295 D(p->level++);
29296 if (p->error_indicator) {
29297 D(p->level--);
29298 return NULL;
29299 }
29300 void * _res = NULL;
29301 int _mark = p->mark;
Pablo Galindo206cbda2021-02-07 18:42:21 +000029302 { // 'as' NAME
29303 if (p->error_indicator) {
29304 D(p->level--);
29305 return NULL;
29306 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029307 D(fprintf(stderr, "%*c> _tmp_163[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000029308 Token * _keyword;
29309 expr_ty name_var;
29310 if (
29311 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
29312 &&
29313 (name_var = _PyPegen_name_token(p)) // NAME
29314 )
29315 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029316 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 +000029317 _res = _PyPegen_dummy_name(p, _keyword, name_var);
29318 goto done;
29319 }
29320 p->mark = _mark;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029321 D(fprintf(stderr, "%*c%s _tmp_163[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo206cbda2021-02-07 18:42:21 +000029322 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
29323 }
29324 _res = NULL;
29325 done:
29326 D(p->level--);
29327 return _res;
29328}
29329
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029330// _tmp_164: 'as' NAME
Pablo Galindo206cbda2021-02-07 18:42:21 +000029331static void *
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029332_tmp_164_rule(Parser *p)
Pablo Galindo206cbda2021-02-07 18:42:21 +000029333{
29334 D(p->level++);
29335 if (p->error_indicator) {
29336 D(p->level--);
29337 return NULL;
29338 }
29339 void * _res = NULL;
29340 int _mark = p->mark;
29341 { // 'as' NAME
29342 if (p->error_indicator) {
29343 D(p->level--);
29344 return NULL;
29345 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029346 D(fprintf(stderr, "%*c> _tmp_164[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000029347 Token * _keyword;
29348 expr_ty name_var;
29349 if (
29350 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
29351 &&
29352 (name_var = _PyPegen_name_token(p)) // NAME
29353 )
29354 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029355 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 +000029356 _res = _PyPegen_dummy_name(p, _keyword, name_var);
29357 goto done;
29358 }
29359 p->mark = _mark;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029360 D(fprintf(stderr, "%*c%s _tmp_164[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo206cbda2021-02-07 18:42:21 +000029361 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
29362 }
29363 _res = NULL;
29364 done:
29365 D(p->level--);
29366 return _res;
29367}
29368
Pablo Galindoda743502021-04-15 14:06:39 +010029369// _loop0_166: ',' double_starred_kvpair
29370static asdl_seq *
29371_loop0_166_rule(Parser *p)
29372{
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 int _start_mark = p->mark;
29381 void **_children = PyMem_Malloc(sizeof(void *));
29382 if (!_children) {
29383 p->error_indicator = 1;
29384 PyErr_NoMemory();
29385 D(p->level--);
29386 return NULL;
29387 }
29388 Py_ssize_t _children_capacity = 1;
29389 Py_ssize_t _n = 0;
29390 { // ',' double_starred_kvpair
29391 if (p->error_indicator) {
29392 D(p->level--);
29393 return NULL;
29394 }
29395 D(fprintf(stderr, "%*c> _loop0_166[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' double_starred_kvpair"));
29396 Token * _literal;
29397 KeyValuePair* elem;
29398 while (
29399 (_literal = _PyPegen_expect_token(p, 12)) // token=','
29400 &&
29401 (elem = double_starred_kvpair_rule(p)) // double_starred_kvpair
29402 )
29403 {
29404 _res = elem;
29405 if (_res == NULL && PyErr_Occurred()) {
29406 p->error_indicator = 1;
29407 PyMem_Free(_children);
29408 D(p->level--);
29409 return NULL;
29410 }
29411 if (_n == _children_capacity) {
29412 _children_capacity *= 2;
29413 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
29414 if (!_new_children) {
29415 p->error_indicator = 1;
29416 PyErr_NoMemory();
29417 D(p->level--);
29418 return NULL;
29419 }
29420 _children = _new_children;
29421 }
29422 _children[_n++] = _res;
29423 _mark = p->mark;
29424 }
29425 p->mark = _mark;
29426 D(fprintf(stderr, "%*c%s _loop0_166[%d-%d]: %s failed!\n", p->level, ' ',
29427 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' double_starred_kvpair"));
29428 }
29429 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
29430 if (!_seq) {
29431 PyMem_Free(_children);
29432 p->error_indicator = 1;
29433 PyErr_NoMemory();
29434 D(p->level--);
29435 return NULL;
29436 }
29437 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
29438 PyMem_Free(_children);
29439 _PyPegen_insert_memo(p, _start_mark, _loop0_166_type, _seq);
29440 D(p->level--);
29441 return _seq;
29442}
29443
29444// _gather_165: double_starred_kvpair _loop0_166
29445static asdl_seq *
29446_gather_165_rule(Parser *p)
29447{
29448 D(p->level++);
29449 if (p->error_indicator) {
29450 D(p->level--);
29451 return NULL;
29452 }
29453 asdl_seq * _res = NULL;
29454 int _mark = p->mark;
29455 { // double_starred_kvpair _loop0_166
29456 if (p->error_indicator) {
29457 D(p->level--);
29458 return NULL;
29459 }
29460 D(fprintf(stderr, "%*c> _gather_165[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "double_starred_kvpair _loop0_166"));
29461 KeyValuePair* elem;
29462 asdl_seq * seq;
29463 if (
29464 (elem = double_starred_kvpair_rule(p)) // double_starred_kvpair
29465 &&
29466 (seq = _loop0_166_rule(p)) // _loop0_166
29467 )
29468 {
29469 D(fprintf(stderr, "%*c+ _gather_165[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "double_starred_kvpair _loop0_166"));
29470 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
29471 goto done;
29472 }
29473 p->mark = _mark;
29474 D(fprintf(stderr, "%*c%s _gather_165[%d-%d]: %s failed!\n", p->level, ' ',
29475 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "double_starred_kvpair _loop0_166"));
29476 }
29477 _res = NULL;
29478 done:
29479 D(p->level--);
29480 return _res;
29481}
29482
29483// _tmp_167: '}' | ','
Pablo Galindo206cbda2021-02-07 18:42:21 +000029484static void *
Pablo Galindoda743502021-04-15 14:06:39 +010029485_tmp_167_rule(Parser *p)
29486{
29487 D(p->level++);
29488 if (p->error_indicator) {
29489 D(p->level--);
29490 return NULL;
29491 }
29492 void * _res = NULL;
29493 int _mark = p->mark;
29494 { // '}'
29495 if (p->error_indicator) {
29496 D(p->level--);
29497 return NULL;
29498 }
29499 D(fprintf(stderr, "%*c> _tmp_167[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'}'"));
29500 Token * _literal;
29501 if (
29502 (_literal = _PyPegen_expect_token(p, 26)) // token='}'
29503 )
29504 {
29505 D(fprintf(stderr, "%*c+ _tmp_167[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'}'"));
29506 _res = _literal;
29507 goto done;
29508 }
29509 p->mark = _mark;
29510 D(fprintf(stderr, "%*c%s _tmp_167[%d-%d]: %s failed!\n", p->level, ' ',
29511 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'}'"));
29512 }
29513 { // ','
29514 if (p->error_indicator) {
29515 D(p->level--);
29516 return NULL;
29517 }
29518 D(fprintf(stderr, "%*c> _tmp_167[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','"));
29519 Token * _literal;
29520 if (
29521 (_literal = _PyPegen_expect_token(p, 12)) // token=','
29522 )
29523 {
29524 D(fprintf(stderr, "%*c+ _tmp_167[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','"));
29525 _res = _literal;
29526 goto done;
29527 }
29528 p->mark = _mark;
29529 D(fprintf(stderr, "%*c%s _tmp_167[%d-%d]: %s failed!\n", p->level, ' ',
29530 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','"));
29531 }
29532 _res = NULL;
29533 done:
29534 D(p->level--);
29535 return _res;
29536}
29537
29538// _tmp_168: star_targets '='
29539static void *
29540_tmp_168_rule(Parser *p)
Pablo Galindo206cbda2021-02-07 18:42:21 +000029541{
29542 D(p->level++);
29543 if (p->error_indicator) {
29544 D(p->level--);
29545 return NULL;
29546 }
29547 void * _res = NULL;
29548 int _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029549 { // star_targets '='
29550 if (p->error_indicator) {
29551 D(p->level--);
29552 return NULL;
29553 }
Pablo Galindoda743502021-04-15 14:06:39 +010029554 D(fprintf(stderr, "%*c> _tmp_168[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029555 Token * _literal;
29556 expr_ty z;
29557 if (
29558 (z = star_targets_rule(p)) // star_targets
29559 &&
29560 (_literal = _PyPegen_expect_token(p, 22)) // token='='
29561 )
29562 {
Pablo Galindoda743502021-04-15 14:06:39 +010029563 D(fprintf(stderr, "%*c+ _tmp_168[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029564 _res = z;
29565 if (_res == NULL && PyErr_Occurred()) {
29566 p->error_indicator = 1;
29567 D(p->level--);
29568 return NULL;
29569 }
29570 goto done;
29571 }
29572 p->mark = _mark;
Pablo Galindoda743502021-04-15 14:06:39 +010029573 D(fprintf(stderr, "%*c%s _tmp_168[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029574 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='"));
29575 }
29576 _res = NULL;
29577 done:
29578 D(p->level--);
29579 return _res;
29580}
29581
Pablo Galindoda743502021-04-15 14:06:39 +010029582// _tmp_169: '.' | '...'
Pablo Galindo835f14f2021-01-31 22:52:56 +000029583static void *
Pablo Galindoda743502021-04-15 14:06:39 +010029584_tmp_169_rule(Parser *p)
Pablo Galindo835f14f2021-01-31 22:52:56 +000029585{
29586 D(p->level++);
29587 if (p->error_indicator) {
29588 D(p->level--);
29589 return NULL;
29590 }
29591 void * _res = NULL;
29592 int _mark = p->mark;
Pablo Galindo206cbda2021-02-07 18:42:21 +000029593 { // '.'
29594 if (p->error_indicator) {
29595 D(p->level--);
29596 return NULL;
29597 }
Pablo Galindoda743502021-04-15 14:06:39 +010029598 D(fprintf(stderr, "%*c> _tmp_169[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000029599 Token * _literal;
29600 if (
29601 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
29602 )
29603 {
Pablo Galindoda743502021-04-15 14:06:39 +010029604 D(fprintf(stderr, "%*c+ _tmp_169[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000029605 _res = _literal;
29606 goto done;
29607 }
29608 p->mark = _mark;
Pablo Galindoda743502021-04-15 14:06:39 +010029609 D(fprintf(stderr, "%*c%s _tmp_169[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo206cbda2021-02-07 18:42:21 +000029610 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
29611 }
29612 { // '...'
29613 if (p->error_indicator) {
29614 D(p->level--);
29615 return NULL;
29616 }
Pablo Galindoda743502021-04-15 14:06:39 +010029617 D(fprintf(stderr, "%*c> _tmp_169[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000029618 Token * _literal;
29619 if (
29620 (_literal = _PyPegen_expect_token(p, 52)) // token='...'
29621 )
29622 {
Pablo Galindoda743502021-04-15 14:06:39 +010029623 D(fprintf(stderr, "%*c+ _tmp_169[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000029624 _res = _literal;
29625 goto done;
29626 }
29627 p->mark = _mark;
Pablo Galindoda743502021-04-15 14:06:39 +010029628 D(fprintf(stderr, "%*c%s _tmp_169[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo206cbda2021-02-07 18:42:21 +000029629 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'"));
29630 }
29631 _res = NULL;
29632 done:
29633 D(p->level--);
29634 return _res;
29635}
29636
Pablo Galindoda743502021-04-15 14:06:39 +010029637// _tmp_170: '.' | '...'
Pablo Galindo206cbda2021-02-07 18:42:21 +000029638static void *
Pablo Galindoda743502021-04-15 14:06:39 +010029639_tmp_170_rule(Parser *p)
Pablo Galindo206cbda2021-02-07 18:42:21 +000029640{
29641 D(p->level++);
29642 if (p->error_indicator) {
29643 D(p->level--);
29644 return NULL;
29645 }
29646 void * _res = NULL;
29647 int _mark = p->mark;
29648 { // '.'
29649 if (p->error_indicator) {
29650 D(p->level--);
29651 return NULL;
29652 }
Pablo Galindoda743502021-04-15 14:06:39 +010029653 D(fprintf(stderr, "%*c> _tmp_170[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000029654 Token * _literal;
29655 if (
29656 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
29657 )
29658 {
Pablo Galindoda743502021-04-15 14:06:39 +010029659 D(fprintf(stderr, "%*c+ _tmp_170[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000029660 _res = _literal;
29661 goto done;
29662 }
29663 p->mark = _mark;
Pablo Galindoda743502021-04-15 14:06:39 +010029664 D(fprintf(stderr, "%*c%s _tmp_170[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo206cbda2021-02-07 18:42:21 +000029665 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
29666 }
29667 { // '...'
29668 if (p->error_indicator) {
29669 D(p->level--);
29670 return NULL;
29671 }
Pablo Galindoda743502021-04-15 14:06:39 +010029672 D(fprintf(stderr, "%*c> _tmp_170[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000029673 Token * _literal;
29674 if (
29675 (_literal = _PyPegen_expect_token(p, 52)) // token='...'
29676 )
29677 {
Pablo Galindoda743502021-04-15 14:06:39 +010029678 D(fprintf(stderr, "%*c+ _tmp_170[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000029679 _res = _literal;
29680 goto done;
29681 }
29682 p->mark = _mark;
Pablo Galindoda743502021-04-15 14:06:39 +010029683 D(fprintf(stderr, "%*c%s _tmp_170[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo206cbda2021-02-07 18:42:21 +000029684 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'"));
29685 }
29686 _res = NULL;
29687 done:
29688 D(p->level--);
29689 return _res;
29690}
29691
Pablo Galindoda743502021-04-15 14:06:39 +010029692// _tmp_171: '@' named_expression NEWLINE
Pablo Galindo206cbda2021-02-07 18:42:21 +000029693static void *
Pablo Galindoda743502021-04-15 14:06:39 +010029694_tmp_171_rule(Parser *p)
Pablo Galindo206cbda2021-02-07 18:42:21 +000029695{
29696 D(p->level++);
29697 if (p->error_indicator) {
29698 D(p->level--);
29699 return NULL;
29700 }
29701 void * _res = NULL;
29702 int _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029703 { // '@' named_expression NEWLINE
29704 if (p->error_indicator) {
29705 D(p->level--);
29706 return NULL;
29707 }
Pablo Galindoda743502021-04-15 14:06:39 +010029708 D(fprintf(stderr, "%*c> _tmp_171[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@' named_expression NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029709 Token * _literal;
29710 expr_ty f;
29711 Token * newline_var;
29712 if (
29713 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
29714 &&
29715 (f = named_expression_rule(p)) // named_expression
29716 &&
29717 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
29718 )
29719 {
Pablo Galindoda743502021-04-15 14:06:39 +010029720 D(fprintf(stderr, "%*c+ _tmp_171[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@' named_expression NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029721 _res = f;
29722 if (_res == NULL && PyErr_Occurred()) {
29723 p->error_indicator = 1;
29724 D(p->level--);
29725 return NULL;
29726 }
29727 goto done;
29728 }
29729 p->mark = _mark;
Pablo Galindoda743502021-04-15 14:06:39 +010029730 D(fprintf(stderr, "%*c%s _tmp_171[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029731 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@' named_expression NEWLINE"));
29732 }
29733 _res = NULL;
29734 done:
29735 D(p->level--);
29736 return _res;
29737}
29738
Pablo Galindoda743502021-04-15 14:06:39 +010029739// _tmp_172: ',' star_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029740static void *
Pablo Galindoda743502021-04-15 14:06:39 +010029741_tmp_172_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029742{
29743 D(p->level++);
29744 if (p->error_indicator) {
29745 D(p->level--);
29746 return NULL;
29747 }
29748 void * _res = NULL;
29749 int _mark = p->mark;
29750 { // ',' star_expression
29751 if (p->error_indicator) {
29752 D(p->level--);
29753 return NULL;
29754 }
Pablo Galindoda743502021-04-15 14:06:39 +010029755 D(fprintf(stderr, "%*c> _tmp_172[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029756 Token * _literal;
29757 expr_ty c;
29758 if (
29759 (_literal = _PyPegen_expect_token(p, 12)) // token=','
29760 &&
29761 (c = star_expression_rule(p)) // star_expression
29762 )
29763 {
Pablo Galindoda743502021-04-15 14:06:39 +010029764 D(fprintf(stderr, "%*c+ _tmp_172[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029765 _res = c;
29766 if (_res == NULL && PyErr_Occurred()) {
29767 p->error_indicator = 1;
29768 D(p->level--);
29769 return NULL;
29770 }
29771 goto done;
29772 }
29773 p->mark = _mark;
Pablo Galindoda743502021-04-15 14:06:39 +010029774 D(fprintf(stderr, "%*c%s _tmp_172[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029775 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_expression"));
29776 }
29777 _res = NULL;
29778 done:
29779 D(p->level--);
29780 return _res;
29781}
29782
Pablo Galindoda743502021-04-15 14:06:39 +010029783// _tmp_173: ',' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029784static void *
Pablo Galindoda743502021-04-15 14:06:39 +010029785_tmp_173_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029786{
29787 D(p->level++);
29788 if (p->error_indicator) {
29789 D(p->level--);
29790 return NULL;
29791 }
29792 void * _res = NULL;
29793 int _mark = p->mark;
29794 { // ',' expression
29795 if (p->error_indicator) {
29796 D(p->level--);
29797 return NULL;
29798 }
Pablo Galindoda743502021-04-15 14:06:39 +010029799 D(fprintf(stderr, "%*c> _tmp_173[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029800 Token * _literal;
29801 expr_ty c;
29802 if (
29803 (_literal = _PyPegen_expect_token(p, 12)) // token=','
29804 &&
29805 (c = expression_rule(p)) // expression
29806 )
29807 {
Pablo Galindoda743502021-04-15 14:06:39 +010029808 D(fprintf(stderr, "%*c+ _tmp_173[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029809 _res = c;
29810 if (_res == NULL && PyErr_Occurred()) {
29811 p->error_indicator = 1;
29812 D(p->level--);
29813 return NULL;
29814 }
29815 goto done;
29816 }
29817 p->mark = _mark;
Pablo Galindoda743502021-04-15 14:06:39 +010029818 D(fprintf(stderr, "%*c%s _tmp_173[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029819 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
29820 }
29821 _res = NULL;
29822 done:
29823 D(p->level--);
29824 return _res;
29825}
29826
Pablo Galindoda743502021-04-15 14:06:39 +010029827// _tmp_174: 'or' conjunction
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029828static void *
Pablo Galindoda743502021-04-15 14:06:39 +010029829_tmp_174_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029830{
29831 D(p->level++);
29832 if (p->error_indicator) {
29833 D(p->level--);
29834 return NULL;
29835 }
29836 void * _res = NULL;
29837 int _mark = p->mark;
29838 { // 'or' conjunction
29839 if (p->error_indicator) {
29840 D(p->level--);
29841 return NULL;
29842 }
Pablo Galindoda743502021-04-15 14:06:39 +010029843 D(fprintf(stderr, "%*c> _tmp_174[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'or' conjunction"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029844 Token * _keyword;
29845 expr_ty c;
29846 if (
29847 (_keyword = _PyPegen_expect_token(p, 531)) // token='or'
29848 &&
29849 (c = conjunction_rule(p)) // conjunction
29850 )
29851 {
Pablo Galindoda743502021-04-15 14:06:39 +010029852 D(fprintf(stderr, "%*c+ _tmp_174[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'or' conjunction"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029853 _res = c;
29854 if (_res == NULL && PyErr_Occurred()) {
29855 p->error_indicator = 1;
29856 D(p->level--);
29857 return NULL;
29858 }
29859 goto done;
29860 }
29861 p->mark = _mark;
Pablo Galindoda743502021-04-15 14:06:39 +010029862 D(fprintf(stderr, "%*c%s _tmp_174[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029863 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'or' conjunction"));
29864 }
29865 _res = NULL;
29866 done:
29867 D(p->level--);
29868 return _res;
29869}
29870
Pablo Galindoda743502021-04-15 14:06:39 +010029871// _tmp_175: 'and' inversion
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029872static void *
Pablo Galindoda743502021-04-15 14:06:39 +010029873_tmp_175_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029874{
29875 D(p->level++);
29876 if (p->error_indicator) {
29877 D(p->level--);
29878 return NULL;
29879 }
29880 void * _res = NULL;
29881 int _mark = p->mark;
29882 { // 'and' inversion
29883 if (p->error_indicator) {
29884 D(p->level--);
29885 return NULL;
29886 }
Pablo Galindoda743502021-04-15 14:06:39 +010029887 D(fprintf(stderr, "%*c> _tmp_175[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'and' inversion"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029888 Token * _keyword;
29889 expr_ty c;
29890 if (
29891 (_keyword = _PyPegen_expect_token(p, 532)) // token='and'
29892 &&
29893 (c = inversion_rule(p)) // inversion
29894 )
29895 {
Pablo Galindoda743502021-04-15 14:06:39 +010029896 D(fprintf(stderr, "%*c+ _tmp_175[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'and' inversion"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029897 _res = c;
29898 if (_res == NULL && PyErr_Occurred()) {
29899 p->error_indicator = 1;
29900 D(p->level--);
29901 return NULL;
29902 }
29903 goto done;
29904 }
29905 p->mark = _mark;
Pablo Galindoda743502021-04-15 14:06:39 +010029906 D(fprintf(stderr, "%*c%s _tmp_175[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo835f14f2021-01-31 22:52:56 +000029907 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'and' inversion"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000029908 }
29909 _res = NULL;
29910 done:
29911 D(p->level--);
29912 return _res;
29913}
29914
Pablo Galindoda743502021-04-15 14:06:39 +010029915// _tmp_176: 'if' disjunction
Pablo Galindo835f14f2021-01-31 22:52:56 +000029916static void *
Pablo Galindoda743502021-04-15 14:06:39 +010029917_tmp_176_rule(Parser *p)
Pablo Galindo835f14f2021-01-31 22:52:56 +000029918{
29919 D(p->level++);
29920 if (p->error_indicator) {
29921 D(p->level--);
29922 return NULL;
29923 }
29924 void * _res = NULL;
29925 int _mark = p->mark;
Pablo Galindo206cbda2021-02-07 18:42:21 +000029926 { // 'if' disjunction
29927 if (p->error_indicator) {
29928 D(p->level--);
29929 return NULL;
29930 }
Pablo Galindoda743502021-04-15 14:06:39 +010029931 D(fprintf(stderr, "%*c> _tmp_176[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000029932 Token * _keyword;
29933 expr_ty z;
29934 if (
29935 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
29936 &&
29937 (z = disjunction_rule(p)) // disjunction
29938 )
29939 {
Pablo Galindoda743502021-04-15 14:06:39 +010029940 D(fprintf(stderr, "%*c+ _tmp_176[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000029941 _res = z;
29942 if (_res == NULL && PyErr_Occurred()) {
29943 p->error_indicator = 1;
29944 D(p->level--);
29945 return NULL;
29946 }
29947 goto done;
29948 }
29949 p->mark = _mark;
Pablo Galindoda743502021-04-15 14:06:39 +010029950 D(fprintf(stderr, "%*c%s _tmp_176[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo206cbda2021-02-07 18:42:21 +000029951 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' disjunction"));
29952 }
29953 _res = NULL;
29954 done:
29955 D(p->level--);
29956 return _res;
29957}
29958
Pablo Galindoda743502021-04-15 14:06:39 +010029959// _tmp_177: 'if' disjunction
Pablo Galindo206cbda2021-02-07 18:42:21 +000029960static void *
Pablo Galindoda743502021-04-15 14:06:39 +010029961_tmp_177_rule(Parser *p)
Pablo Galindo206cbda2021-02-07 18:42:21 +000029962{
29963 D(p->level++);
29964 if (p->error_indicator) {
29965 D(p->level--);
29966 return NULL;
29967 }
29968 void * _res = NULL;
29969 int _mark = p->mark;
29970 { // 'if' disjunction
29971 if (p->error_indicator) {
29972 D(p->level--);
29973 return NULL;
29974 }
Pablo Galindoda743502021-04-15 14:06:39 +010029975 D(fprintf(stderr, "%*c> _tmp_177[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000029976 Token * _keyword;
29977 expr_ty z;
29978 if (
29979 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
29980 &&
29981 (z = disjunction_rule(p)) // disjunction
29982 )
29983 {
Pablo Galindoda743502021-04-15 14:06:39 +010029984 D(fprintf(stderr, "%*c+ _tmp_177[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000029985 _res = z;
29986 if (_res == NULL && PyErr_Occurred()) {
29987 p->error_indicator = 1;
29988 D(p->level--);
29989 return NULL;
29990 }
29991 goto done;
29992 }
29993 p->mark = _mark;
Pablo Galindoda743502021-04-15 14:06:39 +010029994 D(fprintf(stderr, "%*c%s _tmp_177[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo206cbda2021-02-07 18:42:21 +000029995 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' disjunction"));
29996 }
29997 _res = NULL;
29998 done:
29999 D(p->level--);
30000 return _res;
30001}
30002
Pablo Galindoda743502021-04-15 14:06:39 +010030003// _tmp_178: starred_expression | direct_named_expression !'='
Pablo Galindo206cbda2021-02-07 18:42:21 +000030004static void *
Pablo Galindoda743502021-04-15 14:06:39 +010030005_tmp_178_rule(Parser *p)
Pablo Galindo206cbda2021-02-07 18:42:21 +000030006{
30007 D(p->level++);
30008 if (p->error_indicator) {
30009 D(p->level--);
30010 return NULL;
30011 }
30012 void * _res = NULL;
30013 int _mark = p->mark;
Pablo Galindo4a97b152020-09-02 17:44:19 +010030014 { // starred_expression
30015 if (p->error_indicator) {
30016 D(p->level--);
30017 return NULL;
30018 }
Pablo Galindoda743502021-04-15 14:06:39 +010030019 D(fprintf(stderr, "%*c> _tmp_178[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "starred_expression"));
Pablo Galindo4a97b152020-09-02 17:44:19 +010030020 expr_ty starred_expression_var;
30021 if (
30022 (starred_expression_var = starred_expression_rule(p)) // starred_expression
30023 )
30024 {
Pablo Galindoda743502021-04-15 14:06:39 +010030025 D(fprintf(stderr, "%*c+ _tmp_178[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "starred_expression"));
Pablo Galindo4a97b152020-09-02 17:44:19 +010030026 _res = starred_expression_var;
30027 goto done;
30028 }
30029 p->mark = _mark;
Pablo Galindoda743502021-04-15 14:06:39 +010030030 D(fprintf(stderr, "%*c%s _tmp_178[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo4a97b152020-09-02 17:44:19 +010030031 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "starred_expression"));
30032 }
Pablo Galindod9151cb2021-04-13 02:32:33 +010030033 { // direct_named_expression !'='
Pablo Galindo4a97b152020-09-02 17:44:19 +010030034 if (p->error_indicator) {
30035 D(p->level--);
30036 return NULL;
30037 }
Pablo Galindoda743502021-04-15 14:06:39 +010030038 D(fprintf(stderr, "%*c> _tmp_178[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "direct_named_expression !'='"));
Pablo Galindod9151cb2021-04-13 02:32:33 +010030039 expr_ty direct_named_expression_var;
Pablo Galindo4a97b152020-09-02 17:44:19 +010030040 if (
Pablo Galindod9151cb2021-04-13 02:32:33 +010030041 (direct_named_expression_var = direct_named_expression_rule(p)) // direct_named_expression
Pablo Galindo4a97b152020-09-02 17:44:19 +010030042 &&
30043 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 22) // token='='
30044 )
30045 {
Pablo Galindoda743502021-04-15 14:06:39 +010030046 D(fprintf(stderr, "%*c+ _tmp_178[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "direct_named_expression !'='"));
Pablo Galindod9151cb2021-04-13 02:32:33 +010030047 _res = direct_named_expression_var;
Pablo Galindo4a97b152020-09-02 17:44:19 +010030048 goto done;
30049 }
30050 p->mark = _mark;
Pablo Galindoda743502021-04-15 14:06:39 +010030051 D(fprintf(stderr, "%*c%s _tmp_178[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindod9151cb2021-04-13 02:32:33 +010030052 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "direct_named_expression !'='"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010030053 }
30054 _res = NULL;
30055 done:
30056 D(p->level--);
30057 return _res;
30058}
30059
Pablo Galindoda743502021-04-15 14:06:39 +010030060// _tmp_179: ',' star_target
Pablo Galindo206cbda2021-02-07 18:42:21 +000030061static void *
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030062_tmp_179_rule(Parser *p)
30063{
30064 D(p->level++);
30065 if (p->error_indicator) {
30066 D(p->level--);
30067 return NULL;
30068 }
30069 void * _res = NULL;
30070 int _mark = p->mark;
Pablo Galindoda743502021-04-15 14:06:39 +010030071 { // ',' star_target
30072 if (p->error_indicator) {
30073 D(p->level--);
30074 return NULL;
30075 }
30076 D(fprintf(stderr, "%*c> _tmp_179[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target"));
30077 Token * _literal;
30078 expr_ty c;
30079 if (
30080 (_literal = _PyPegen_expect_token(p, 12)) // token=','
30081 &&
30082 (c = star_target_rule(p)) // star_target
30083 )
30084 {
30085 D(fprintf(stderr, "%*c+ _tmp_179[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_target"));
30086 _res = c;
30087 if (_res == NULL && PyErr_Occurred()) {
30088 p->error_indicator = 1;
30089 D(p->level--);
30090 return NULL;
30091 }
30092 goto done;
30093 }
30094 p->mark = _mark;
30095 D(fprintf(stderr, "%*c%s _tmp_179[%d-%d]: %s failed!\n", p->level, ' ',
30096 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_target"));
30097 }
30098 _res = NULL;
30099 done:
30100 D(p->level--);
30101 return _res;
30102}
30103
30104// _tmp_180: ',' star_target
30105static void *
30106_tmp_180_rule(Parser *p)
30107{
30108 D(p->level++);
30109 if (p->error_indicator) {
30110 D(p->level--);
30111 return NULL;
30112 }
30113 void * _res = NULL;
30114 int _mark = p->mark;
30115 { // ',' star_target
30116 if (p->error_indicator) {
30117 D(p->level--);
30118 return NULL;
30119 }
30120 D(fprintf(stderr, "%*c> _tmp_180[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target"));
30121 Token * _literal;
30122 expr_ty c;
30123 if (
30124 (_literal = _PyPegen_expect_token(p, 12)) // token=','
30125 &&
30126 (c = star_target_rule(p)) // star_target
30127 )
30128 {
30129 D(fprintf(stderr, "%*c+ _tmp_180[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_target"));
30130 _res = c;
30131 if (_res == NULL && PyErr_Occurred()) {
30132 p->error_indicator = 1;
30133 D(p->level--);
30134 return NULL;
30135 }
30136 goto done;
30137 }
30138 p->mark = _mark;
30139 D(fprintf(stderr, "%*c%s _tmp_180[%d-%d]: %s failed!\n", p->level, ' ',
30140 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_target"));
30141 }
30142 _res = NULL;
30143 done:
30144 D(p->level--);
30145 return _res;
30146}
30147
30148// _tmp_181: star_targets '='
30149static void *
30150_tmp_181_rule(Parser *p)
30151{
30152 D(p->level++);
30153 if (p->error_indicator) {
30154 D(p->level--);
30155 return NULL;
30156 }
30157 void * _res = NULL;
30158 int _mark = p->mark;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030159 { // star_targets '='
30160 if (p->error_indicator) {
30161 D(p->level--);
30162 return NULL;
30163 }
Pablo Galindoda743502021-04-15 14:06:39 +010030164 D(fprintf(stderr, "%*c> _tmp_181[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030165 Token * _literal;
30166 expr_ty star_targets_var;
30167 if (
30168 (star_targets_var = star_targets_rule(p)) // star_targets
30169 &&
30170 (_literal = _PyPegen_expect_token(p, 22)) // token='='
30171 )
30172 {
Pablo Galindoda743502021-04-15 14:06:39 +010030173 D(fprintf(stderr, "%*c+ _tmp_181[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030174 _res = _PyPegen_dummy_name(p, star_targets_var, _literal);
30175 goto done;
30176 }
30177 p->mark = _mark;
Pablo Galindoda743502021-04-15 14:06:39 +010030178 D(fprintf(stderr, "%*c%s _tmp_181[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030179 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='"));
30180 }
30181 _res = NULL;
30182 done:
30183 D(p->level--);
30184 return _res;
30185}
30186
Pablo Galindoda743502021-04-15 14:06:39 +010030187// _tmp_182: star_targets '='
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030188static void *
Pablo Galindoda743502021-04-15 14:06:39 +010030189_tmp_182_rule(Parser *p)
30190{
30191 D(p->level++);
30192 if (p->error_indicator) {
30193 D(p->level--);
30194 return NULL;
30195 }
30196 void * _res = NULL;
30197 int _mark = p->mark;
30198 { // star_targets '='
30199 if (p->error_indicator) {
30200 D(p->level--);
30201 return NULL;
30202 }
30203 D(fprintf(stderr, "%*c> _tmp_182[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
30204 Token * _literal;
30205 expr_ty star_targets_var;
30206 if (
30207 (star_targets_var = star_targets_rule(p)) // star_targets
30208 &&
30209 (_literal = _PyPegen_expect_token(p, 22)) // token='='
30210 )
30211 {
30212 D(fprintf(stderr, "%*c+ _tmp_182[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
30213 _res = _PyPegen_dummy_name(p, star_targets_var, _literal);
30214 goto done;
30215 }
30216 p->mark = _mark;
30217 D(fprintf(stderr, "%*c%s _tmp_182[%d-%d]: %s failed!\n", p->level, ' ',
30218 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='"));
30219 }
30220 _res = NULL;
30221 done:
30222 D(p->level--);
30223 return _res;
30224}
30225
30226// _tmp_183: ')' | '**'
30227static void *
30228_tmp_183_rule(Parser *p)
Pablo Galindo835f14f2021-01-31 22:52:56 +000030229{
30230 D(p->level++);
30231 if (p->error_indicator) {
30232 D(p->level--);
30233 return NULL;
30234 }
30235 void * _res = NULL;
30236 int _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010030237 { // ')'
30238 if (p->error_indicator) {
30239 D(p->level--);
30240 return NULL;
30241 }
Pablo Galindoda743502021-04-15 14:06:39 +010030242 D(fprintf(stderr, "%*c> _tmp_183[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010030243 Token * _literal;
30244 if (
30245 (_literal = _PyPegen_expect_token(p, 8)) // token=')'
30246 )
30247 {
Pablo Galindoda743502021-04-15 14:06:39 +010030248 D(fprintf(stderr, "%*c+ _tmp_183[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010030249 _res = _literal;
30250 goto done;
30251 }
30252 p->mark = _mark;
Pablo Galindoda743502021-04-15 14:06:39 +010030253 D(fprintf(stderr, "%*c%s _tmp_183[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo835f14f2021-01-31 22:52:56 +000030254 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010030255 }
30256 { // '**'
30257 if (p->error_indicator) {
30258 D(p->level--);
30259 return NULL;
30260 }
Pablo Galindoda743502021-04-15 14:06:39 +010030261 D(fprintf(stderr, "%*c> _tmp_183[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010030262 Token * _literal;
30263 if (
30264 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
30265 )
30266 {
Pablo Galindoda743502021-04-15 14:06:39 +010030267 D(fprintf(stderr, "%*c+ _tmp_183[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010030268 _res = _literal;
30269 goto done;
30270 }
30271 p->mark = _mark;
Pablo Galindoda743502021-04-15 14:06:39 +010030272 D(fprintf(stderr, "%*c%s _tmp_183[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010030273 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**'"));
30274 }
30275 _res = NULL;
30276 done:
30277 D(p->level--);
30278 return _res;
30279}
30280
Pablo Galindoda743502021-04-15 14:06:39 +010030281// _tmp_184: ':' | '**'
Pablo Galindo835f14f2021-01-31 22:52:56 +000030282static void *
Pablo Galindoda743502021-04-15 14:06:39 +010030283_tmp_184_rule(Parser *p)
Pablo Galindo835f14f2021-01-31 22:52:56 +000030284{
30285 D(p->level++);
30286 if (p->error_indicator) {
30287 D(p->level--);
30288 return NULL;
30289 }
30290 void * _res = NULL;
30291 int _mark = p->mark;
30292 { // ':'
30293 if (p->error_indicator) {
30294 D(p->level--);
30295 return NULL;
30296 }
Pablo Galindoda743502021-04-15 14:06:39 +010030297 D(fprintf(stderr, "%*c> _tmp_184[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
Pablo Galindo835f14f2021-01-31 22:52:56 +000030298 Token * _literal;
30299 if (
30300 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
30301 )
30302 {
Pablo Galindoda743502021-04-15 14:06:39 +010030303 D(fprintf(stderr, "%*c+ _tmp_184[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
Pablo Galindo835f14f2021-01-31 22:52:56 +000030304 _res = _literal;
30305 goto done;
30306 }
30307 p->mark = _mark;
Pablo Galindoda743502021-04-15 14:06:39 +010030308 D(fprintf(stderr, "%*c%s _tmp_184[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo835f14f2021-01-31 22:52:56 +000030309 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
30310 }
30311 { // '**'
30312 if (p->error_indicator) {
30313 D(p->level--);
30314 return NULL;
30315 }
Pablo Galindoda743502021-04-15 14:06:39 +010030316 D(fprintf(stderr, "%*c> _tmp_184[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**'"));
Pablo Galindo835f14f2021-01-31 22:52:56 +000030317 Token * _literal;
30318 if (
30319 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
30320 )
30321 {
Pablo Galindoda743502021-04-15 14:06:39 +010030322 D(fprintf(stderr, "%*c+ _tmp_184[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**'"));
Pablo Galindo835f14f2021-01-31 22:52:56 +000030323 _res = _literal;
30324 goto done;
30325 }
30326 p->mark = _mark;
Pablo Galindoda743502021-04-15 14:06:39 +010030327 D(fprintf(stderr, "%*c%s _tmp_184[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo835f14f2021-01-31 22:52:56 +000030328 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**'"));
30329 }
30330 _res = NULL;
30331 done:
30332 D(p->level--);
30333 return _res;
30334}
30335
Pablo Galindoda743502021-04-15 14:06:39 +010030336// _tmp_185: expression ['as' star_target]
Pablo Galindo58fb1562021-02-02 19:54:22 +000030337static void *
Pablo Galindoda743502021-04-15 14:06:39 +010030338_tmp_185_rule(Parser *p)
Pablo Galindo58fb1562021-02-02 19:54:22 +000030339{
30340 D(p->level++);
30341 if (p->error_indicator) {
30342 D(p->level--);
30343 return NULL;
30344 }
30345 void * _res = NULL;
30346 int _mark = p->mark;
30347 { // expression ['as' star_target]
30348 if (p->error_indicator) {
30349 D(p->level--);
30350 return NULL;
30351 }
Pablo Galindoda743502021-04-15 14:06:39 +010030352 D(fprintf(stderr, "%*c> _tmp_185[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000030353 void *_opt_var;
30354 UNUSED(_opt_var); // Silence compiler warnings
30355 expr_ty expression_var;
30356 if (
30357 (expression_var = expression_rule(p)) // expression
30358 &&
Pablo Galindoda743502021-04-15 14:06:39 +010030359 (_opt_var = _tmp_187_rule(p), 1) // ['as' star_target]
Pablo Galindo58fb1562021-02-02 19:54:22 +000030360 )
30361 {
Pablo Galindoda743502021-04-15 14:06:39 +010030362 D(fprintf(stderr, "%*c+ _tmp_185[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000030363 _res = _PyPegen_dummy_name(p, expression_var, _opt_var);
30364 goto done;
30365 }
30366 p->mark = _mark;
Pablo Galindoda743502021-04-15 14:06:39 +010030367 D(fprintf(stderr, "%*c%s _tmp_185[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +000030368 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ['as' star_target]"));
30369 }
30370 _res = NULL;
30371 done:
30372 D(p->level--);
30373 return _res;
30374}
30375
Pablo Galindoda743502021-04-15 14:06:39 +010030376// _tmp_186: expressions ['as' star_target]
Pablo Galindo58fb1562021-02-02 19:54:22 +000030377static void *
Pablo Galindoda743502021-04-15 14:06:39 +010030378_tmp_186_rule(Parser *p)
Pablo Galindo58fb1562021-02-02 19:54:22 +000030379{
30380 D(p->level++);
30381 if (p->error_indicator) {
30382 D(p->level--);
30383 return NULL;
30384 }
30385 void * _res = NULL;
30386 int _mark = p->mark;
30387 { // expressions ['as' star_target]
30388 if (p->error_indicator) {
30389 D(p->level--);
30390 return NULL;
30391 }
Pablo Galindoda743502021-04-15 14:06:39 +010030392 D(fprintf(stderr, "%*c> _tmp_186[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000030393 void *_opt_var;
30394 UNUSED(_opt_var); // Silence compiler warnings
30395 expr_ty expressions_var;
30396 if (
30397 (expressions_var = expressions_rule(p)) // expressions
30398 &&
Pablo Galindoda743502021-04-15 14:06:39 +010030399 (_opt_var = _tmp_188_rule(p), 1) // ['as' star_target]
Pablo Galindo58fb1562021-02-02 19:54:22 +000030400 )
30401 {
Pablo Galindoda743502021-04-15 14:06:39 +010030402 D(fprintf(stderr, "%*c+ _tmp_186[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000030403 _res = _PyPegen_dummy_name(p, expressions_var, _opt_var);
30404 goto done;
30405 }
30406 p->mark = _mark;
Pablo Galindoda743502021-04-15 14:06:39 +010030407 D(fprintf(stderr, "%*c%s _tmp_186[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +000030408 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expressions ['as' star_target]"));
30409 }
30410 _res = NULL;
30411 done:
30412 D(p->level--);
30413 return _res;
30414}
30415
Pablo Galindoda743502021-04-15 14:06:39 +010030416// _tmp_187: 'as' star_target
Pablo Galindo58fb1562021-02-02 19:54:22 +000030417static void *
Pablo Galindoda743502021-04-15 14:06:39 +010030418_tmp_187_rule(Parser *p)
Pablo Galindo58fb1562021-02-02 19:54:22 +000030419{
30420 D(p->level++);
30421 if (p->error_indicator) {
30422 D(p->level--);
30423 return NULL;
30424 }
30425 void * _res = NULL;
30426 int _mark = p->mark;
30427 { // 'as' star_target
30428 if (p->error_indicator) {
30429 D(p->level--);
30430 return NULL;
30431 }
Pablo Galindoda743502021-04-15 14:06:39 +010030432 D(fprintf(stderr, "%*c> _tmp_187[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000030433 Token * _keyword;
30434 expr_ty star_target_var;
30435 if (
30436 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
30437 &&
30438 (star_target_var = star_target_rule(p)) // star_target
30439 )
30440 {
Pablo Galindoda743502021-04-15 14:06:39 +010030441 D(fprintf(stderr, "%*c+ _tmp_187[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000030442 _res = _PyPegen_dummy_name(p, _keyword, star_target_var);
30443 goto done;
30444 }
30445 p->mark = _mark;
Pablo Galindoda743502021-04-15 14:06:39 +010030446 D(fprintf(stderr, "%*c%s _tmp_187[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +000030447 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' star_target"));
30448 }
30449 _res = NULL;
30450 done:
30451 D(p->level--);
30452 return _res;
30453}
30454
Pablo Galindoda743502021-04-15 14:06:39 +010030455// _tmp_188: 'as' star_target
Pablo Galindo58fb1562021-02-02 19:54:22 +000030456static void *
Pablo Galindoda743502021-04-15 14:06:39 +010030457_tmp_188_rule(Parser *p)
Pablo Galindo58fb1562021-02-02 19:54:22 +000030458{
30459 D(p->level++);
30460 if (p->error_indicator) {
30461 D(p->level--);
30462 return NULL;
30463 }
30464 void * _res = NULL;
30465 int _mark = p->mark;
30466 { // 'as' star_target
30467 if (p->error_indicator) {
30468 D(p->level--);
30469 return NULL;
30470 }
Pablo Galindoda743502021-04-15 14:06:39 +010030471 D(fprintf(stderr, "%*c> _tmp_188[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000030472 Token * _keyword;
30473 expr_ty star_target_var;
30474 if (
30475 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
30476 &&
30477 (star_target_var = star_target_rule(p)) // star_target
30478 )
30479 {
Pablo Galindoda743502021-04-15 14:06:39 +010030480 D(fprintf(stderr, "%*c+ _tmp_188[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000030481 _res = _PyPegen_dummy_name(p, _keyword, star_target_var);
30482 goto done;
30483 }
30484 p->mark = _mark;
Pablo Galindoda743502021-04-15 14:06:39 +010030485 D(fprintf(stderr, "%*c%s _tmp_188[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +000030486 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' star_target"));
30487 }
30488 _res = NULL;
30489 done:
30490 D(p->level--);
30491 return _res;
30492}
30493
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010030494void *
30495_PyPegen_parse(Parser *p)
30496{
30497 // Initialize keywords
30498 p->keywords = reserved_keywords;
30499 p->n_keyword_lists = n_keyword_lists;
30500
30501 // Run parser
30502 void *result = NULL;
30503 if (p->start_rule == Py_file_input) {
30504 result = file_rule(p);
30505 } else if (p->start_rule == Py_single_input) {
30506 result = interactive_rule(p);
30507 } else if (p->start_rule == Py_eval_input) {
30508 result = eval_rule(p);
30509 } else if (p->start_rule == Py_func_type_input) {
30510 result = func_type_rule(p);
30511 } else if (p->start_rule == Py_fstring_input) {
30512 result = fstring_rule(p);
30513 }
30514
30515 return result;
30516}
30517
30518// The end