blob: e8328cee2755268ddd3502d928b14b7f18174714 [file] [log] [blame]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001// @generated by pegen.py from ./Grammar/python.gram
2#include "pegen.h"
Guido van Rossumf70e43a1991-02-19 12:39:46 +00003
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004#if defined(Py_DEBUG) && defined(Py_BUILD_CORE)
Victor Stinner6af528b2021-03-18 09:54:13 +01005# define D(x) if (Py_DebugFlag) x;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +00006#else
Victor Stinner6af528b2021-03-18 09:54:13 +01007# define D(x)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +00008#endif
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009static const int n_keyword_lists = 9;
10static KeywordToken *reserved_keywords[] = {
Pablo Galindo1ac0cbc2020-07-06 20:31:16 +010011 (KeywordToken[]) {{NULL, -1}},
12 (KeywordToken[]) {{NULL, -1}},
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013 (KeywordToken[]) {
14 {"if", 510},
15 {"in", 518},
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016 {"as", 520},
Brandt Bucher145bf262021-02-26 14:51:55 -080017 {"is", 530},
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018 {"or", 531},
19 {NULL, -1},
20 },
21 (KeywordToken[]) {
22 {"del", 503},
23 {"try", 511},
24 {"for", 517},
Brandt Bucher145bf262021-02-26 14:51:55 -080025 {"def", 526},
26 {"not", 529},
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027 {"and", 532},
28 {NULL, -1},
29 },
30 (KeywordToken[]) {
31 {"pass", 502},
32 {"from", 514},
33 {"elif", 515},
34 {"else", 516},
35 {"with", 519},
Brandt Bucher145bf262021-02-26 14:51:55 -080036 {"None", 523},
37 {"True", 524},
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010038 {NULL, -1},
39 },
40 (KeywordToken[]) {
41 {"raise", 501},
42 {"yield", 504},
43 {"break", 506},
44 {"while", 512},
Brandt Bucher145bf262021-02-26 14:51:55 -080045 {"False", 525},
46 {"class", 527},
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010047 {NULL, -1},
48 },
49 (KeywordToken[]) {
50 {"return", 500},
51 {"assert", 505},
52 {"global", 508},
53 {"import", 513},
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030054 {"except", 521},
Brandt Bucher145bf262021-02-26 14:51:55 -080055 {"lambda", 528},
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010056 {NULL, -1},
57 },
58 (KeywordToken[]) {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030059 {"finally", 522},
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010060 {NULL, -1},
61 },
62 (KeywordToken[]) {
63 {"continue", 507},
64 {"nonlocal", 509},
65 {NULL, -1},
66 },
67};
Pablo Galindob2802482021-04-15 21:38:45 +010068static char *soft_keywords[] = {
69 "_",
70 "case",
71 "match",
72 NULL,
73};
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010074#define file_type 1000
75#define interactive_type 1001
76#define eval_type 1002
77#define func_type_type 1003
78#define fstring_type 1004
79#define type_expressions_type 1005
80#define statements_type 1006
81#define statement_type 1007
82#define statement_newline_type 1008
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000083#define simple_stmts_type 1009
84#define simple_stmt_type 1010
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010085#define compound_stmt_type 1011
86#define assignment_type 1012
87#define augassign_type 1013
88#define global_stmt_type 1014
89#define nonlocal_stmt_type 1015
90#define yield_stmt_type 1016
91#define assert_stmt_type 1017
92#define del_stmt_type 1018
93#define import_stmt_type 1019
94#define import_name_type 1020
95#define import_from_type 1021
96#define import_from_targets_type 1022
97#define import_from_as_names_type 1023
98#define import_from_as_name_type 1024
99#define dotted_as_names_type 1025
100#define dotted_as_name_type 1026
101#define dotted_name_type 1027 // Left-recursive
102#define if_stmt_type 1028
103#define elif_stmt_type 1029
104#define else_block_type 1030
105#define while_stmt_type 1031
106#define for_stmt_type 1032
107#define with_stmt_type 1033
108#define with_item_type 1034
109#define try_stmt_type 1035
110#define except_block_type 1036
111#define finally_block_type 1037
Brandt Bucher145bf262021-02-26 14:51:55 -0800112#define match_stmt_type 1038
113#define subject_expr_type 1039
114#define case_block_type 1040
115#define guard_type 1041
116#define patterns_type 1042
117#define pattern_type 1043
118#define as_pattern_type 1044
119#define or_pattern_type 1045
120#define closed_pattern_type 1046
121#define literal_pattern_type 1047
122#define signed_number_type 1048
123#define capture_pattern_type 1049
124#define wildcard_pattern_type 1050
125#define value_pattern_type 1051
126#define attr_type 1052 // Left-recursive
127#define name_or_attr_type 1053 // Left-recursive
128#define group_pattern_type 1054
129#define sequence_pattern_type 1055
130#define open_sequence_pattern_type 1056
131#define maybe_sequence_pattern_type 1057
132#define maybe_star_pattern_type 1058
133#define star_pattern_type 1059
134#define mapping_pattern_type 1060
135#define items_pattern_type 1061
136#define key_value_pattern_type 1062
137#define double_star_pattern_type 1063
138#define class_pattern_type 1064
139#define positional_patterns_type 1065
140#define keyword_patterns_type 1066
141#define keyword_pattern_type 1067
142#define return_stmt_type 1068
143#define raise_stmt_type 1069
144#define function_def_type 1070
145#define function_def_raw_type 1071
146#define func_type_comment_type 1072
147#define params_type 1073
148#define parameters_type 1074
149#define slash_no_default_type 1075
150#define slash_with_default_type 1076
151#define star_etc_type 1077
152#define kwds_type 1078
153#define param_no_default_type 1079
154#define param_with_default_type 1080
155#define param_maybe_default_type 1081
156#define param_type 1082
157#define annotation_type 1083
158#define default_type 1084
159#define decorators_type 1085
160#define class_def_type 1086
161#define class_def_raw_type 1087
162#define block_type 1088
163#define star_expressions_type 1089
164#define star_expression_type 1090
165#define star_named_expressions_type 1091
166#define star_named_expression_type 1092
167#define named_expression_type 1093
Pablo Galindod9151cb2021-04-13 02:32:33 +0100168#define direct_named_expression_type 1094
169#define annotated_rhs_type 1095
170#define expressions_type 1096
171#define expression_type 1097
172#define lambdef_type 1098
173#define lambda_params_type 1099
174#define lambda_parameters_type 1100
175#define lambda_slash_no_default_type 1101
176#define lambda_slash_with_default_type 1102
177#define lambda_star_etc_type 1103
178#define lambda_kwds_type 1104
179#define lambda_param_no_default_type 1105
180#define lambda_param_with_default_type 1106
181#define lambda_param_maybe_default_type 1107
182#define lambda_param_type 1108
183#define disjunction_type 1109
184#define conjunction_type 1110
185#define inversion_type 1111
186#define comparison_type 1112
187#define compare_op_bitwise_or_pair_type 1113
188#define eq_bitwise_or_type 1114
189#define noteq_bitwise_or_type 1115
190#define lte_bitwise_or_type 1116
191#define lt_bitwise_or_type 1117
192#define gte_bitwise_or_type 1118
193#define gt_bitwise_or_type 1119
194#define notin_bitwise_or_type 1120
195#define in_bitwise_or_type 1121
196#define isnot_bitwise_or_type 1122
197#define is_bitwise_or_type 1123
198#define bitwise_or_type 1124 // Left-recursive
199#define bitwise_xor_type 1125 // Left-recursive
200#define bitwise_and_type 1126 // Left-recursive
201#define shift_expr_type 1127 // Left-recursive
202#define sum_type 1128 // Left-recursive
203#define term_type 1129 // Left-recursive
204#define factor_type 1130
205#define power_type 1131
206#define await_primary_type 1132
207#define primary_type 1133 // Left-recursive
208#define slices_type 1134
209#define slice_type 1135
210#define atom_type 1136
211#define strings_type 1137
212#define list_type 1138
213#define listcomp_type 1139
214#define tuple_type 1140
215#define group_type 1141
216#define genexp_type 1142
217#define set_type 1143
218#define setcomp_type 1144
219#define dict_type 1145
220#define dictcomp_type 1146
221#define double_starred_kvpairs_type 1147
222#define double_starred_kvpair_type 1148
223#define kvpair_type 1149
224#define for_if_clauses_type 1150
225#define for_if_clause_type 1151
226#define yield_expr_type 1152
227#define arguments_type 1153
228#define args_type 1154
229#define kwargs_type 1155
230#define starred_expression_type 1156
231#define kwarg_or_starred_type 1157
232#define kwarg_or_double_starred_type 1158
233#define star_targets_type 1159
234#define star_targets_list_seq_type 1160
235#define star_targets_tuple_seq_type 1161
236#define star_target_type 1162
237#define target_with_star_atom_type 1163
238#define star_atom_type 1164
239#define single_target_type 1165
240#define single_subscript_attribute_target_type 1166
241#define del_targets_type 1167
242#define del_target_type 1168
243#define del_t_atom_type 1169
244#define targets_type 1170
245#define target_type 1171
246#define t_primary_type 1172 // Left-recursive
247#define t_lookahead_type 1173
248#define t_atom_type 1174
249#define invalid_arguments_type 1175
250#define invalid_kwarg_type 1176
Pablo Galindob2802482021-04-15 21:38:45 +0100251#define invalid_expression_type 1177
252#define invalid_named_expression_type 1178
253#define invalid_assignment_type 1179
254#define invalid_ann_assign_target_type 1180
255#define invalid_del_stmt_type 1181
256#define invalid_block_type 1182
257#define invalid_primary_type 1183 // Left-recursive
258#define invalid_comprehension_type 1184
259#define invalid_dict_comprehension_type 1185
260#define invalid_parameters_type 1186
261#define invalid_parameters_helper_type 1187
262#define invalid_lambda_parameters_type 1188
263#define invalid_lambda_parameters_helper_type 1189
264#define invalid_star_etc_type 1190
265#define invalid_lambda_star_etc_type 1191
266#define invalid_double_type_comments_type 1192
267#define invalid_with_item_type 1193
268#define invalid_for_target_type 1194
269#define invalid_group_type 1195
270#define invalid_import_from_targets_type 1196
271#define invalid_with_stmt_type 1197
Pablo Galindo56c95df2021-04-21 15:28:21 +0100272#define invalid_with_stmt_indent_type 1198
273#define invalid_try_stmt_type 1199
274#define invalid_except_stmt_type 1200
275#define invalid_finally_stmt_type 1201
276#define invalid_except_stmt_indent_type 1202
277#define invalid_match_stmt_type 1203
278#define invalid_case_block_type 1204
279#define invalid_if_stmt_type 1205
280#define invalid_elif_stmt_type 1206
281#define invalid_else_stmt_type 1207
282#define invalid_while_stmt_type 1208
283#define invalid_for_stmt_type 1209
284#define invalid_def_raw_type 1210
285#define invalid_class_def_raw_type 1211
286#define invalid_double_starred_kvpairs_type 1212
287#define invalid_kvpair_type 1213
288#define _loop0_1_type 1214
289#define _loop0_2_type 1215
290#define _loop0_4_type 1216
291#define _gather_3_type 1217
292#define _loop0_6_type 1218
293#define _gather_5_type 1219
294#define _loop0_8_type 1220
295#define _gather_7_type 1221
296#define _loop0_10_type 1222
297#define _gather_9_type 1223
298#define _loop1_11_type 1224
299#define _loop0_13_type 1225
300#define _gather_12_type 1226
301#define _tmp_14_type 1227
302#define _tmp_15_type 1228
303#define _tmp_16_type 1229
304#define _tmp_17_type 1230
305#define _tmp_18_type 1231
306#define _tmp_19_type 1232
307#define _tmp_20_type 1233
308#define _tmp_21_type 1234
309#define _loop1_22_type 1235
310#define _tmp_23_type 1236
311#define _tmp_24_type 1237
312#define _loop0_26_type 1238
313#define _gather_25_type 1239
314#define _loop0_28_type 1240
315#define _gather_27_type 1241
316#define _tmp_29_type 1242
317#define _tmp_30_type 1243
318#define _loop0_31_type 1244
319#define _loop1_32_type 1245
320#define _loop0_34_type 1246
321#define _gather_33_type 1247
322#define _tmp_35_type 1248
323#define _loop0_37_type 1249
324#define _gather_36_type 1250
325#define _tmp_38_type 1251
326#define _loop0_40_type 1252
327#define _gather_39_type 1253
328#define _loop0_42_type 1254
329#define _gather_41_type 1255
330#define _loop0_44_type 1256
331#define _gather_43_type 1257
332#define _loop0_46_type 1258
333#define _gather_45_type 1259
334#define _tmp_47_type 1260
335#define _loop1_48_type 1261
336#define _tmp_49_type 1262
337#define _loop1_50_type 1263
338#define _loop0_52_type 1264
339#define _gather_51_type 1265
340#define _tmp_53_type 1266
341#define _tmp_54_type 1267
342#define _tmp_55_type 1268
343#define _loop0_57_type 1269
344#define _gather_56_type 1270
345#define _tmp_58_type 1271
346#define _loop0_60_type 1272
347#define _gather_59_type 1273
348#define _tmp_61_type 1274
349#define _loop0_63_type 1275
350#define _gather_62_type 1276
351#define _loop0_65_type 1277
352#define _gather_64_type 1278
353#define _tmp_66_type 1279
354#define _tmp_67_type 1280
355#define _tmp_68_type 1281
356#define _tmp_69_type 1282
357#define _loop0_70_type 1283
358#define _loop0_71_type 1284
359#define _loop0_72_type 1285
360#define _loop1_73_type 1286
361#define _loop0_74_type 1287
362#define _loop1_75_type 1288
363#define _loop1_76_type 1289
364#define _loop1_77_type 1290
365#define _loop0_78_type 1291
366#define _loop1_79_type 1292
367#define _loop0_80_type 1293
368#define _loop1_81_type 1294
369#define _loop0_82_type 1295
370#define _loop1_83_type 1296
371#define _loop1_84_type 1297
372#define _tmp_85_type 1298
373#define _loop1_86_type 1299
374#define _loop0_88_type 1300
375#define _gather_87_type 1301
376#define _loop1_89_type 1302
377#define _loop0_90_type 1303
378#define _loop0_91_type 1304
379#define _loop0_92_type 1305
380#define _loop1_93_type 1306
381#define _loop0_94_type 1307
382#define _loop1_95_type 1308
383#define _loop1_96_type 1309
384#define _loop1_97_type 1310
385#define _loop0_98_type 1311
386#define _loop1_99_type 1312
387#define _loop0_100_type 1313
388#define _loop1_101_type 1314
389#define _loop0_102_type 1315
390#define _loop1_103_type 1316
391#define _loop1_104_type 1317
392#define _loop1_105_type 1318
393#define _loop1_106_type 1319
394#define _tmp_107_type 1320
395#define _loop0_109_type 1321
396#define _gather_108_type 1322
397#define _tmp_110_type 1323
398#define _tmp_111_type 1324
399#define _tmp_112_type 1325
400#define _tmp_113_type 1326
401#define _loop1_114_type 1327
402#define _tmp_115_type 1328
403#define _tmp_116_type 1329
404#define _loop0_118_type 1330
405#define _gather_117_type 1331
406#define _loop1_119_type 1332
407#define _loop0_120_type 1333
408#define _loop0_121_type 1334
409#define _loop0_123_type 1335
410#define _gather_122_type 1336
411#define _tmp_124_type 1337
412#define _loop0_126_type 1338
413#define _gather_125_type 1339
414#define _loop0_128_type 1340
415#define _gather_127_type 1341
416#define _loop0_130_type 1342
417#define _gather_129_type 1343
418#define _loop0_132_type 1344
419#define _gather_131_type 1345
420#define _loop0_133_type 1346
421#define _loop0_135_type 1347
422#define _gather_134_type 1348
423#define _loop1_136_type 1349
424#define _tmp_137_type 1350
425#define _loop0_139_type 1351
426#define _gather_138_type 1352
427#define _loop0_141_type 1353
428#define _gather_140_type 1354
429#define _tmp_142_type 1355
430#define _tmp_143_type 1356
431#define _tmp_144_type 1357
432#define _tmp_145_type 1358
433#define _tmp_146_type 1359
434#define _loop0_147_type 1360
435#define _loop0_148_type 1361
436#define _loop0_149_type 1362
437#define _tmp_150_type 1363
438#define _tmp_151_type 1364
439#define _tmp_152_type 1365
Pablo Galindoa77aac42021-04-23 14:27:05 +0100440#define _tmp_153_type 1366
441#define _loop0_154_type 1367
442#define _loop1_155_type 1368
443#define _loop0_156_type 1369
444#define _loop1_157_type 1370
Pablo Galindo56c95df2021-04-21 15:28:21 +0100445#define _tmp_158_type 1371
446#define _tmp_159_type 1372
Pablo Galindoa77aac42021-04-23 14:27:05 +0100447#define _tmp_160_type 1373
448#define _loop0_162_type 1374
449#define _gather_161_type 1375
450#define _loop0_164_type 1376
451#define _gather_163_type 1377
452#define _loop0_166_type 1378
453#define _gather_165_type 1379
454#define _loop0_168_type 1380
455#define _gather_167_type 1381
Pablo Galindo56c95df2021-04-21 15:28:21 +0100456#define _tmp_169_type 1382
457#define _tmp_170_type 1383
458#define _tmp_171_type 1384
459#define _tmp_172_type 1385
Pablo Galindoa77aac42021-04-23 14:27:05 +0100460#define _tmp_173_type 1386
461#define _loop0_175_type 1387
462#define _gather_174_type 1388
Pablo Galindo56c95df2021-04-21 15:28:21 +0100463#define _tmp_176_type 1389
464#define _tmp_177_type 1390
465#define _tmp_178_type 1391
466#define _tmp_179_type 1392
467#define _tmp_180_type 1393
468#define _tmp_181_type 1394
469#define _tmp_182_type 1395
470#define _tmp_183_type 1396
471#define _tmp_184_type 1397
472#define _tmp_185_type 1398
473#define _tmp_186_type 1399
474#define _tmp_187_type 1400
475#define _tmp_188_type 1401
476#define _tmp_189_type 1402
477#define _tmp_190_type 1403
478#define _tmp_191_type 1404
479#define _tmp_192_type 1405
480#define _tmp_193_type 1406
481#define _tmp_194_type 1407
482#define _tmp_195_type 1408
483#define _tmp_196_type 1409
484#define _tmp_197_type 1410
485#define _tmp_198_type 1411
486#define _tmp_199_type 1412
487#define _tmp_200_type 1413
Pablo Galindoa77aac42021-04-23 14:27:05 +0100488#define _tmp_201_type 1414
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100489
490static mod_ty file_rule(Parser *p);
491static mod_ty interactive_rule(Parser *p);
492static mod_ty eval_rule(Parser *p);
493static mod_ty func_type_rule(Parser *p);
494static expr_ty fstring_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100495static asdl_expr_seq* type_expressions_rule(Parser *p);
496static asdl_stmt_seq* statements_rule(Parser *p);
497static asdl_stmt_seq* statement_rule(Parser *p);
498static asdl_stmt_seq* statement_newline_rule(Parser *p);
Pablo Galindo9bdc40e2020-11-30 19:42:38 +0000499static asdl_stmt_seq* simple_stmts_rule(Parser *p);
500static stmt_ty simple_stmt_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100501static stmt_ty compound_stmt_rule(Parser *p);
502static stmt_ty assignment_rule(Parser *p);
503static AugOperator* augassign_rule(Parser *p);
504static stmt_ty global_stmt_rule(Parser *p);
505static stmt_ty nonlocal_stmt_rule(Parser *p);
506static stmt_ty yield_stmt_rule(Parser *p);
507static stmt_ty assert_stmt_rule(Parser *p);
508static stmt_ty del_stmt_rule(Parser *p);
509static stmt_ty import_stmt_rule(Parser *p);
510static stmt_ty import_name_rule(Parser *p);
511static stmt_ty import_from_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100512static asdl_alias_seq* import_from_targets_rule(Parser *p);
513static asdl_alias_seq* import_from_as_names_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100514static alias_ty import_from_as_name_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100515static asdl_alias_seq* dotted_as_names_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100516static alias_ty dotted_as_name_rule(Parser *p);
517static expr_ty dotted_name_rule(Parser *p);
518static stmt_ty if_stmt_rule(Parser *p);
519static stmt_ty elif_stmt_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100520static asdl_stmt_seq* else_block_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100521static stmt_ty while_stmt_rule(Parser *p);
522static stmt_ty for_stmt_rule(Parser *p);
523static stmt_ty with_stmt_rule(Parser *p);
524static withitem_ty with_item_rule(Parser *p);
525static stmt_ty try_stmt_rule(Parser *p);
526static excepthandler_ty except_block_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100527static asdl_stmt_seq* finally_block_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800528static stmt_ty match_stmt_rule(Parser *p);
529static expr_ty subject_expr_rule(Parser *p);
530static match_case_ty case_block_rule(Parser *p);
531static expr_ty guard_rule(Parser *p);
532static expr_ty patterns_rule(Parser *p);
533static expr_ty pattern_rule(Parser *p);
534static expr_ty as_pattern_rule(Parser *p);
535static expr_ty or_pattern_rule(Parser *p);
536static expr_ty closed_pattern_rule(Parser *p);
537static expr_ty literal_pattern_rule(Parser *p);
538static expr_ty signed_number_rule(Parser *p);
539static expr_ty capture_pattern_rule(Parser *p);
540static expr_ty wildcard_pattern_rule(Parser *p);
541static expr_ty value_pattern_rule(Parser *p);
542static expr_ty attr_rule(Parser *p);
543static expr_ty name_or_attr_rule(Parser *p);
544static expr_ty group_pattern_rule(Parser *p);
545static expr_ty sequence_pattern_rule(Parser *p);
546static asdl_seq* open_sequence_pattern_rule(Parser *p);
547static asdl_seq* maybe_sequence_pattern_rule(Parser *p);
548static expr_ty maybe_star_pattern_rule(Parser *p);
549static expr_ty star_pattern_rule(Parser *p);
550static expr_ty mapping_pattern_rule(Parser *p);
551static asdl_seq* items_pattern_rule(Parser *p);
552static KeyValuePair* key_value_pattern_rule(Parser *p);
553static KeyValuePair* double_star_pattern_rule(Parser *p);
554static expr_ty class_pattern_rule(Parser *p);
555static asdl_expr_seq* positional_patterns_rule(Parser *p);
556static asdl_keyword_seq* keyword_patterns_rule(Parser *p);
557static keyword_ty keyword_pattern_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100558static stmt_ty return_stmt_rule(Parser *p);
559static stmt_ty raise_stmt_rule(Parser *p);
560static stmt_ty function_def_rule(Parser *p);
561static stmt_ty function_def_raw_rule(Parser *p);
562static Token* func_type_comment_rule(Parser *p);
563static arguments_ty params_rule(Parser *p);
564static arguments_ty parameters_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100565static asdl_arg_seq* slash_no_default_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100566static SlashWithDefault* slash_with_default_rule(Parser *p);
567static StarEtc* star_etc_rule(Parser *p);
568static arg_ty kwds_rule(Parser *p);
569static arg_ty param_no_default_rule(Parser *p);
570static NameDefaultPair* param_with_default_rule(Parser *p);
571static NameDefaultPair* param_maybe_default_rule(Parser *p);
572static arg_ty param_rule(Parser *p);
573static expr_ty annotation_rule(Parser *p);
574static expr_ty default_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100575static asdl_expr_seq* decorators_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100576static stmt_ty class_def_rule(Parser *p);
577static stmt_ty class_def_raw_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100578static asdl_stmt_seq* block_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100579static expr_ty star_expressions_rule(Parser *p);
580static expr_ty star_expression_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100581static asdl_expr_seq* star_named_expressions_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100582static expr_ty star_named_expression_rule(Parser *p);
583static expr_ty named_expression_rule(Parser *p);
Pablo Galindod9151cb2021-04-13 02:32:33 +0100584static expr_ty direct_named_expression_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100585static expr_ty annotated_rhs_rule(Parser *p);
586static expr_ty expressions_rule(Parser *p);
587static expr_ty expression_rule(Parser *p);
588static expr_ty lambdef_rule(Parser *p);
589static arguments_ty lambda_params_rule(Parser *p);
590static arguments_ty lambda_parameters_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100591static asdl_arg_seq* lambda_slash_no_default_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100592static SlashWithDefault* lambda_slash_with_default_rule(Parser *p);
593static StarEtc* lambda_star_etc_rule(Parser *p);
594static arg_ty lambda_kwds_rule(Parser *p);
595static arg_ty lambda_param_no_default_rule(Parser *p);
596static NameDefaultPair* lambda_param_with_default_rule(Parser *p);
597static NameDefaultPair* lambda_param_maybe_default_rule(Parser *p);
598static arg_ty lambda_param_rule(Parser *p);
599static expr_ty disjunction_rule(Parser *p);
600static expr_ty conjunction_rule(Parser *p);
601static expr_ty inversion_rule(Parser *p);
602static expr_ty comparison_rule(Parser *p);
603static CmpopExprPair* compare_op_bitwise_or_pair_rule(Parser *p);
604static CmpopExprPair* eq_bitwise_or_rule(Parser *p);
605static CmpopExprPair* noteq_bitwise_or_rule(Parser *p);
606static CmpopExprPair* lte_bitwise_or_rule(Parser *p);
607static CmpopExprPair* lt_bitwise_or_rule(Parser *p);
608static CmpopExprPair* gte_bitwise_or_rule(Parser *p);
609static CmpopExprPair* gt_bitwise_or_rule(Parser *p);
610static CmpopExprPair* notin_bitwise_or_rule(Parser *p);
611static CmpopExprPair* in_bitwise_or_rule(Parser *p);
612static CmpopExprPair* isnot_bitwise_or_rule(Parser *p);
613static CmpopExprPair* is_bitwise_or_rule(Parser *p);
614static expr_ty bitwise_or_rule(Parser *p);
615static expr_ty bitwise_xor_rule(Parser *p);
616static expr_ty bitwise_and_rule(Parser *p);
617static expr_ty shift_expr_rule(Parser *p);
618static expr_ty sum_rule(Parser *p);
619static expr_ty term_rule(Parser *p);
620static expr_ty factor_rule(Parser *p);
621static expr_ty power_rule(Parser *p);
622static expr_ty await_primary_rule(Parser *p);
623static expr_ty primary_rule(Parser *p);
624static expr_ty slices_rule(Parser *p);
625static expr_ty slice_rule(Parser *p);
626static expr_ty atom_rule(Parser *p);
627static expr_ty strings_rule(Parser *p);
628static expr_ty list_rule(Parser *p);
629static expr_ty listcomp_rule(Parser *p);
630static expr_ty tuple_rule(Parser *p);
631static expr_ty group_rule(Parser *p);
632static expr_ty genexp_rule(Parser *p);
633static expr_ty set_rule(Parser *p);
634static expr_ty setcomp_rule(Parser *p);
635static expr_ty dict_rule(Parser *p);
636static expr_ty dictcomp_rule(Parser *p);
637static asdl_seq* double_starred_kvpairs_rule(Parser *p);
638static KeyValuePair* double_starred_kvpair_rule(Parser *p);
639static KeyValuePair* kvpair_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100640static asdl_comprehension_seq* for_if_clauses_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100641static comprehension_ty for_if_clause_rule(Parser *p);
642static expr_ty yield_expr_rule(Parser *p);
643static expr_ty arguments_rule(Parser *p);
644static expr_ty args_rule(Parser *p);
645static asdl_seq* kwargs_rule(Parser *p);
646static expr_ty starred_expression_rule(Parser *p);
647static KeywordOrStarred* kwarg_or_starred_rule(Parser *p);
648static KeywordOrStarred* kwarg_or_double_starred_rule(Parser *p);
649static expr_ty star_targets_rule(Parser *p);
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +0200650static asdl_expr_seq* star_targets_list_seq_rule(Parser *p);
651static asdl_expr_seq* star_targets_tuple_seq_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100652static expr_ty star_target_rule(Parser *p);
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +0200653static expr_ty target_with_star_atom_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100654static expr_ty star_atom_rule(Parser *p);
655static expr_ty single_target_rule(Parser *p);
656static expr_ty single_subscript_attribute_target_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100657static asdl_expr_seq* del_targets_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100658static expr_ty del_target_rule(Parser *p);
659static expr_ty del_t_atom_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100660static asdl_expr_seq* targets_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100661static expr_ty target_rule(Parser *p);
662static expr_ty t_primary_rule(Parser *p);
663static void *t_lookahead_rule(Parser *p);
664static expr_ty t_atom_rule(Parser *p);
Lysandros Nikolaoubca70142020-10-27 00:42:04 +0200665static void *invalid_arguments_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100666static void *invalid_kwarg_rule(Parser *p);
Pablo Galindob2802482021-04-15 21:38:45 +0100667static void *invalid_expression_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100668static void *invalid_named_expression_rule(Parser *p);
669static void *invalid_assignment_rule(Parser *p);
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +0300670static expr_ty invalid_ann_assign_target_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300671static void *invalid_del_stmt_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100672static void *invalid_block_rule(Parser *p);
Lysandros Nikolaou15acc4e2020-10-27 20:54:20 +0200673static void *invalid_primary_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100674static void *invalid_comprehension_rule(Parser *p);
675static void *invalid_dict_comprehension_rule(Parser *p);
676static void *invalid_parameters_rule(Parser *p);
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +0200677static void *invalid_parameters_helper_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100678static void *invalid_lambda_parameters_rule(Parser *p);
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +0200679static void *invalid_lambda_parameters_helper_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100680static void *invalid_star_etc_rule(Parser *p);
681static void *invalid_lambda_star_etc_rule(Parser *p);
682static void *invalid_double_type_comments_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300683static void *invalid_with_item_rule(Parser *p);
684static void *invalid_for_target_rule(Parser *p);
685static void *invalid_group_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100686static void *invalid_import_from_targets_rule(Parser *p);
Pablo Galindo58fb1562021-02-02 19:54:22 +0000687static void *invalid_with_stmt_rule(Parser *p);
Pablo Galindo56c95df2021-04-21 15:28:21 +0100688static void *invalid_with_stmt_indent_rule(Parser *p);
689static void *invalid_try_stmt_rule(Parser *p);
690static void *invalid_except_stmt_rule(Parser *p);
691static void *invalid_finally_stmt_rule(Parser *p);
692static void *invalid_except_stmt_indent_rule(Parser *p);
Pablo Galindo08fb8ac2021-03-18 01:03:11 +0000693static void *invalid_match_stmt_rule(Parser *p);
694static void *invalid_case_block_rule(Parser *p);
Pablo Galindob86ed8e2021-04-12 16:59:30 +0100695static void *invalid_if_stmt_rule(Parser *p);
696static void *invalid_elif_stmt_rule(Parser *p);
Pablo Galindo56c95df2021-04-21 15:28:21 +0100697static void *invalid_else_stmt_rule(Parser *p);
Pablo Galindob86ed8e2021-04-12 16:59:30 +0100698static void *invalid_while_stmt_rule(Parser *p);
Pablo Galindo56c95df2021-04-21 15:28:21 +0100699static void *invalid_for_stmt_rule(Parser *p);
700static void *invalid_def_raw_rule(Parser *p);
701static void *invalid_class_def_raw_rule(Parser *p);
Pablo Galindoda743502021-04-15 14:06:39 +0100702static void *invalid_double_starred_kvpairs_rule(Parser *p);
703static void *invalid_kvpair_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100704static asdl_seq *_loop0_1_rule(Parser *p);
705static asdl_seq *_loop0_2_rule(Parser *p);
706static asdl_seq *_loop0_4_rule(Parser *p);
707static asdl_seq *_gather_3_rule(Parser *p);
708static asdl_seq *_loop0_6_rule(Parser *p);
709static asdl_seq *_gather_5_rule(Parser *p);
710static asdl_seq *_loop0_8_rule(Parser *p);
711static asdl_seq *_gather_7_rule(Parser *p);
712static asdl_seq *_loop0_10_rule(Parser *p);
713static asdl_seq *_gather_9_rule(Parser *p);
714static asdl_seq *_loop1_11_rule(Parser *p);
715static asdl_seq *_loop0_13_rule(Parser *p);
716static asdl_seq *_gather_12_rule(Parser *p);
717static void *_tmp_14_rule(Parser *p);
718static void *_tmp_15_rule(Parser *p);
719static void *_tmp_16_rule(Parser *p);
720static void *_tmp_17_rule(Parser *p);
721static void *_tmp_18_rule(Parser *p);
722static void *_tmp_19_rule(Parser *p);
723static void *_tmp_20_rule(Parser *p);
724static void *_tmp_21_rule(Parser *p);
725static asdl_seq *_loop1_22_rule(Parser *p);
726static void *_tmp_23_rule(Parser *p);
727static void *_tmp_24_rule(Parser *p);
728static asdl_seq *_loop0_26_rule(Parser *p);
729static asdl_seq *_gather_25_rule(Parser *p);
730static asdl_seq *_loop0_28_rule(Parser *p);
731static asdl_seq *_gather_27_rule(Parser *p);
732static void *_tmp_29_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300733static void *_tmp_30_rule(Parser *p);
734static asdl_seq *_loop0_31_rule(Parser *p);
735static asdl_seq *_loop1_32_rule(Parser *p);
736static asdl_seq *_loop0_34_rule(Parser *p);
737static asdl_seq *_gather_33_rule(Parser *p);
738static void *_tmp_35_rule(Parser *p);
739static asdl_seq *_loop0_37_rule(Parser *p);
740static asdl_seq *_gather_36_rule(Parser *p);
741static void *_tmp_38_rule(Parser *p);
742static asdl_seq *_loop0_40_rule(Parser *p);
743static asdl_seq *_gather_39_rule(Parser *p);
744static asdl_seq *_loop0_42_rule(Parser *p);
745static asdl_seq *_gather_41_rule(Parser *p);
746static asdl_seq *_loop0_44_rule(Parser *p);
747static asdl_seq *_gather_43_rule(Parser *p);
748static asdl_seq *_loop0_46_rule(Parser *p);
749static asdl_seq *_gather_45_rule(Parser *p);
750static void *_tmp_47_rule(Parser *p);
751static asdl_seq *_loop1_48_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100752static void *_tmp_49_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800753static asdl_seq *_loop1_50_rule(Parser *p);
754static asdl_seq *_loop0_52_rule(Parser *p);
755static asdl_seq *_gather_51_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300756static void *_tmp_53_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800757static void *_tmp_54_rule(Parser *p);
758static void *_tmp_55_rule(Parser *p);
759static asdl_seq *_loop0_57_rule(Parser *p);
760static asdl_seq *_gather_56_rule(Parser *p);
761static void *_tmp_58_rule(Parser *p);
762static asdl_seq *_loop0_60_rule(Parser *p);
763static asdl_seq *_gather_59_rule(Parser *p);
764static void *_tmp_61_rule(Parser *p);
765static asdl_seq *_loop0_63_rule(Parser *p);
766static asdl_seq *_gather_62_rule(Parser *p);
767static asdl_seq *_loop0_65_rule(Parser *p);
768static asdl_seq *_gather_64_rule(Parser *p);
769static void *_tmp_66_rule(Parser *p);
770static void *_tmp_67_rule(Parser *p);
771static void *_tmp_68_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300772static void *_tmp_69_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800773static asdl_seq *_loop0_70_rule(Parser *p);
774static asdl_seq *_loop0_71_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000775static asdl_seq *_loop0_72_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000776static asdl_seq *_loop1_73_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300777static asdl_seq *_loop0_74_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800778static asdl_seq *_loop1_75_rule(Parser *p);
779static asdl_seq *_loop1_76_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000780static asdl_seq *_loop1_77_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300781static asdl_seq *_loop0_78_rule(Parser *p);
782static asdl_seq *_loop1_79_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800783static asdl_seq *_loop0_80_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100784static asdl_seq *_loop1_81_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000785static asdl_seq *_loop0_82_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300786static asdl_seq *_loop1_83_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800787static asdl_seq *_loop1_84_rule(Parser *p);
788static void *_tmp_85_rule(Parser *p);
789static asdl_seq *_loop1_86_rule(Parser *p);
790static asdl_seq *_loop0_88_rule(Parser *p);
791static asdl_seq *_gather_87_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100792static asdl_seq *_loop1_89_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800793static asdl_seq *_loop0_90_rule(Parser *p);
794static asdl_seq *_loop0_91_rule(Parser *p);
795static asdl_seq *_loop0_92_rule(Parser *p);
796static asdl_seq *_loop1_93_rule(Parser *p);
797static asdl_seq *_loop0_94_rule(Parser *p);
798static asdl_seq *_loop1_95_rule(Parser *p);
799static asdl_seq *_loop1_96_rule(Parser *p);
800static asdl_seq *_loop1_97_rule(Parser *p);
801static asdl_seq *_loop0_98_rule(Parser *p);
802static asdl_seq *_loop1_99_rule(Parser *p);
803static asdl_seq *_loop0_100_rule(Parser *p);
804static asdl_seq *_loop1_101_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000805static asdl_seq *_loop0_102_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000806static asdl_seq *_loop1_103_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800807static asdl_seq *_loop1_104_rule(Parser *p);
808static asdl_seq *_loop1_105_rule(Parser *p);
809static asdl_seq *_loop1_106_rule(Parser *p);
810static void *_tmp_107_rule(Parser *p);
811static asdl_seq *_loop0_109_rule(Parser *p);
812static asdl_seq *_gather_108_rule(Parser *p);
813static void *_tmp_110_rule(Parser *p);
814static void *_tmp_111_rule(Parser *p);
815static void *_tmp_112_rule(Parser *p);
816static void *_tmp_113_rule(Parser *p);
817static asdl_seq *_loop1_114_rule(Parser *p);
818static void *_tmp_115_rule(Parser *p);
819static void *_tmp_116_rule(Parser *p);
820static asdl_seq *_loop0_118_rule(Parser *p);
821static asdl_seq *_gather_117_rule(Parser *p);
822static asdl_seq *_loop1_119_rule(Parser *p);
823static asdl_seq *_loop0_120_rule(Parser *p);
824static asdl_seq *_loop0_121_rule(Parser *p);
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +0200825static asdl_seq *_loop0_123_rule(Parser *p);
826static asdl_seq *_gather_122_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800827static void *_tmp_124_rule(Parser *p);
828static asdl_seq *_loop0_126_rule(Parser *p);
829static asdl_seq *_gather_125_rule(Parser *p);
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +0300830static asdl_seq *_loop0_128_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800831static asdl_seq *_gather_127_rule(Parser *p);
832static asdl_seq *_loop0_130_rule(Parser *p);
833static asdl_seq *_gather_129_rule(Parser *p);
834static asdl_seq *_loop0_132_rule(Parser *p);
835static asdl_seq *_gather_131_rule(Parser *p);
Pablo Galindo835f14f2021-01-31 22:52:56 +0000836static asdl_seq *_loop0_133_rule(Parser *p);
Pablo Galindo835f14f2021-01-31 22:52:56 +0000837static asdl_seq *_loop0_135_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800838static asdl_seq *_gather_134_rule(Parser *p);
Pablo Galindo835f14f2021-01-31 22:52:56 +0000839static asdl_seq *_loop1_136_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100840static void *_tmp_137_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800841static asdl_seq *_loop0_139_rule(Parser *p);
842static asdl_seq *_gather_138_rule(Parser *p);
Pablo Galindo58fb1562021-02-02 19:54:22 +0000843static asdl_seq *_loop0_141_rule(Parser *p);
844static asdl_seq *_gather_140_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800845static void *_tmp_142_rule(Parser *p);
Pablo Galindob86ed8e2021-04-12 16:59:30 +0100846static void *_tmp_143_rule(Parser *p);
847static void *_tmp_144_rule(Parser *p);
848static void *_tmp_145_rule(Parser *p);
Pablo Galindob2802482021-04-15 21:38:45 +0100849static void *_tmp_146_rule(Parser *p);
Pablo Galindob86ed8e2021-04-12 16:59:30 +0100850static asdl_seq *_loop0_147_rule(Parser *p);
851static asdl_seq *_loop0_148_rule(Parser *p);
Pablo Galindob2802482021-04-15 21:38:45 +0100852static asdl_seq *_loop0_149_rule(Parser *p);
Pablo Galindob86ed8e2021-04-12 16:59:30 +0100853static void *_tmp_150_rule(Parser *p);
854static void *_tmp_151_rule(Parser *p);
Pablo Galindob2802482021-04-15 21:38:45 +0100855static void *_tmp_152_rule(Parser *p);
Pablo Galindoa77aac42021-04-23 14:27:05 +0100856static void *_tmp_153_rule(Parser *p);
857static asdl_seq *_loop0_154_rule(Parser *p);
858static asdl_seq *_loop1_155_rule(Parser *p);
859static asdl_seq *_loop0_156_rule(Parser *p);
860static asdl_seq *_loop1_157_rule(Parser *p);
Pablo Galindob86ed8e2021-04-12 16:59:30 +0100861static void *_tmp_158_rule(Parser *p);
Pablo Galindob2802482021-04-15 21:38:45 +0100862static void *_tmp_159_rule(Parser *p);
Pablo Galindoa77aac42021-04-23 14:27:05 +0100863static void *_tmp_160_rule(Parser *p);
864static asdl_seq *_loop0_162_rule(Parser *p);
865static asdl_seq *_gather_161_rule(Parser *p);
866static asdl_seq *_loop0_164_rule(Parser *p);
867static asdl_seq *_gather_163_rule(Parser *p);
868static asdl_seq *_loop0_166_rule(Parser *p);
869static asdl_seq *_gather_165_rule(Parser *p);
870static asdl_seq *_loop0_168_rule(Parser *p);
871static asdl_seq *_gather_167_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800872static void *_tmp_169_rule(Parser *p);
873static void *_tmp_170_rule(Parser *p);
874static void *_tmp_171_rule(Parser *p);
875static void *_tmp_172_rule(Parser *p);
Pablo Galindoa77aac42021-04-23 14:27:05 +0100876static void *_tmp_173_rule(Parser *p);
877static asdl_seq *_loop0_175_rule(Parser *p);
878static asdl_seq *_gather_174_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800879static void *_tmp_176_rule(Parser *p);
880static void *_tmp_177_rule(Parser *p);
881static void *_tmp_178_rule(Parser *p);
882static void *_tmp_179_rule(Parser *p);
883static void *_tmp_180_rule(Parser *p);
884static void *_tmp_181_rule(Parser *p);
885static void *_tmp_182_rule(Parser *p);
Pablo Galindob86ed8e2021-04-12 16:59:30 +0100886static void *_tmp_183_rule(Parser *p);
887static void *_tmp_184_rule(Parser *p);
888static void *_tmp_185_rule(Parser *p);
Pablo Galindoda743502021-04-15 14:06:39 +0100889static void *_tmp_186_rule(Parser *p);
890static void *_tmp_187_rule(Parser *p);
891static void *_tmp_188_rule(Parser *p);
Pablo Galindob2802482021-04-15 21:38:45 +0100892static void *_tmp_189_rule(Parser *p);
Pablo Galindo56c95df2021-04-21 15:28:21 +0100893static void *_tmp_190_rule(Parser *p);
894static void *_tmp_191_rule(Parser *p);
895static void *_tmp_192_rule(Parser *p);
896static void *_tmp_193_rule(Parser *p);
897static void *_tmp_194_rule(Parser *p);
898static void *_tmp_195_rule(Parser *p);
899static void *_tmp_196_rule(Parser *p);
900static void *_tmp_197_rule(Parser *p);
901static void *_tmp_198_rule(Parser *p);
902static void *_tmp_199_rule(Parser *p);
903static void *_tmp_200_rule(Parser *p);
Pablo Galindoa77aac42021-04-23 14:27:05 +0100904static void *_tmp_201_rule(Parser *p);
Guido van Rossum85a5fbb1990-10-14 12:07:46 +0000905
906
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100907// file: statements? $
908static mod_ty
909file_rule(Parser *p)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +0000910{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100911 D(p->level++);
912 if (p->error_indicator) {
913 D(p->level--);
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000914 return NULL;
915 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100916 mod_ty _res = NULL;
917 int _mark = p->mark;
918 { // statements? $
919 if (p->error_indicator) {
920 D(p->level--);
921 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000922 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100923 D(fprintf(stderr, "%*c> file[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statements? $"));
924 void *a;
925 Token * endmarker_var;
926 if (
927 (a = statements_rule(p), 1) // statements?
928 &&
929 (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
930 )
931 {
932 D(fprintf(stderr, "%*c+ file[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "statements? $"));
933 _res = _PyPegen_make_module ( p , a );
934 if (_res == NULL && PyErr_Occurred()) {
935 p->error_indicator = 1;
936 D(p->level--);
937 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000938 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100939 goto done;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000940 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100941 p->mark = _mark;
942 D(fprintf(stderr, "%*c%s file[%d-%d]: %s failed!\n", p->level, ' ',
943 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statements? $"));
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000944 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100945 _res = NULL;
946 done:
947 D(p->level--);
948 return _res;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +0000949}
950
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100951// interactive: statement_newline
952static mod_ty
953interactive_rule(Parser *p)
Guido van Rossumb09f7ed2001-07-15 21:08:29 +0000954{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100955 D(p->level++);
956 if (p->error_indicator) {
957 D(p->level--);
958 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000959 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100960 mod_ty _res = NULL;
961 int _mark = p->mark;
962 { // statement_newline
963 if (p->error_indicator) {
964 D(p->level--);
965 return NULL;
966 }
967 D(fprintf(stderr, "%*c> interactive[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statement_newline"));
Pablo Galindoa5634c42020-09-16 19:42:00 +0100968 asdl_stmt_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100969 if (
970 (a = statement_newline_rule(p)) // statement_newline
971 )
972 {
973 D(fprintf(stderr, "%*c+ interactive[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "statement_newline"));
Victor Stinnerd27f8d22021-04-07 21:34:22 +0200974 _res = _PyAST_Interactive ( a , p -> arena );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100975 if (_res == NULL && PyErr_Occurred()) {
976 p->error_indicator = 1;
977 D(p->level--);
978 return NULL;
979 }
980 goto done;
981 }
982 p->mark = _mark;
983 D(fprintf(stderr, "%*c%s interactive[%d-%d]: %s failed!\n", p->level, ' ',
984 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statement_newline"));
985 }
986 _res = NULL;
987 done:
988 D(p->level--);
989 return _res;
Guido van Rossumb09f7ed2001-07-15 21:08:29 +0000990}
991
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100992// eval: expressions NEWLINE* $
993static mod_ty
994eval_rule(Parser *p)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +0000995{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100996 D(p->level++);
997 if (p->error_indicator) {
998 D(p->level--);
999 return NULL;
1000 }
1001 mod_ty _res = NULL;
1002 int _mark = p->mark;
1003 { // expressions NEWLINE* $
1004 if (p->error_indicator) {
1005 D(p->level--);
1006 return NULL;
1007 }
1008 D(fprintf(stderr, "%*c> eval[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expressions NEWLINE* $"));
1009 asdl_seq * _loop0_1_var;
1010 expr_ty a;
1011 Token * endmarker_var;
1012 if (
1013 (a = expressions_rule(p)) // expressions
1014 &&
1015 (_loop0_1_var = _loop0_1_rule(p)) // NEWLINE*
1016 &&
1017 (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
1018 )
1019 {
1020 D(fprintf(stderr, "%*c+ eval[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expressions NEWLINE* $"));
Victor Stinnerd27f8d22021-04-07 21:34:22 +02001021 _res = _PyAST_Expression ( a , p -> arena );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001022 if (_res == NULL && PyErr_Occurred()) {
1023 p->error_indicator = 1;
1024 D(p->level--);
1025 return NULL;
1026 }
1027 goto done;
1028 }
1029 p->mark = _mark;
1030 D(fprintf(stderr, "%*c%s eval[%d-%d]: %s failed!\n", p->level, ' ',
1031 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expressions NEWLINE* $"));
1032 }
1033 _res = NULL;
1034 done:
1035 D(p->level--);
1036 return _res;
1037}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +00001038
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001039// func_type: '(' type_expressions? ')' '->' expression NEWLINE* $
1040static mod_ty
1041func_type_rule(Parser *p)
1042{
1043 D(p->level++);
1044 if (p->error_indicator) {
1045 D(p->level--);
1046 return NULL;
1047 }
1048 mod_ty _res = NULL;
1049 int _mark = p->mark;
1050 { // '(' type_expressions? ')' '->' expression NEWLINE* $
1051 if (p->error_indicator) {
1052 D(p->level--);
1053 return NULL;
1054 }
1055 D(fprintf(stderr, "%*c> func_type[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' type_expressions? ')' '->' expression NEWLINE* $"));
1056 Token * _literal;
1057 Token * _literal_1;
1058 Token * _literal_2;
1059 asdl_seq * _loop0_2_var;
1060 void *a;
1061 expr_ty b;
1062 Token * endmarker_var;
1063 if (
1064 (_literal = _PyPegen_expect_token(p, 7)) // token='('
1065 &&
1066 (a = type_expressions_rule(p), 1) // type_expressions?
1067 &&
1068 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
1069 &&
1070 (_literal_2 = _PyPegen_expect_token(p, 51)) // token='->'
1071 &&
1072 (b = expression_rule(p)) // expression
1073 &&
1074 (_loop0_2_var = _loop0_2_rule(p)) // NEWLINE*
1075 &&
1076 (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
1077 )
1078 {
1079 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 +02001080 _res = _PyAST_FunctionType ( a , b , p -> arena );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001081 if (_res == NULL && PyErr_Occurred()) {
1082 p->error_indicator = 1;
1083 D(p->level--);
1084 return NULL;
1085 }
1086 goto done;
1087 }
1088 p->mark = _mark;
1089 D(fprintf(stderr, "%*c%s func_type[%d-%d]: %s failed!\n", p->level, ' ',
1090 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' type_expressions? ')' '->' expression NEWLINE* $"));
1091 }
1092 _res = NULL;
1093 done:
1094 D(p->level--);
1095 return _res;
1096}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +00001097
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001098// fstring: star_expressions
1099static expr_ty
1100fstring_rule(Parser *p)
1101{
1102 D(p->level++);
1103 if (p->error_indicator) {
1104 D(p->level--);
1105 return NULL;
1106 }
1107 expr_ty _res = NULL;
1108 int _mark = p->mark;
1109 { // star_expressions
1110 if (p->error_indicator) {
1111 D(p->level--);
1112 return NULL;
1113 }
1114 D(fprintf(stderr, "%*c> fstring[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
1115 expr_ty star_expressions_var;
1116 if (
1117 (star_expressions_var = star_expressions_rule(p)) // star_expressions
1118 )
1119 {
1120 D(fprintf(stderr, "%*c+ fstring[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
1121 _res = star_expressions_var;
1122 goto done;
1123 }
1124 p->mark = _mark;
1125 D(fprintf(stderr, "%*c%s fstring[%d-%d]: %s failed!\n", p->level, ' ',
1126 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
1127 }
1128 _res = NULL;
1129 done:
1130 D(p->level--);
1131 return _res;
1132}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +00001133
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001134// type_expressions:
1135// | ','.expression+ ',' '*' expression ',' '**' expression
1136// | ','.expression+ ',' '*' expression
1137// | ','.expression+ ',' '**' expression
1138// | '*' expression ',' '**' expression
1139// | '*' expression
1140// | '**' expression
1141// | ','.expression+
Pablo Galindoa5634c42020-09-16 19:42:00 +01001142static asdl_expr_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001143type_expressions_rule(Parser *p)
1144{
1145 D(p->level++);
1146 if (p->error_indicator) {
1147 D(p->level--);
1148 return NULL;
1149 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01001150 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001151 int _mark = p->mark;
1152 { // ','.expression+ ',' '*' expression ',' '**' expression
1153 if (p->error_indicator) {
1154 D(p->level--);
1155 return NULL;
1156 }
1157 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '*' expression ',' '**' expression"));
1158 Token * _literal;
1159 Token * _literal_1;
1160 Token * _literal_2;
1161 Token * _literal_3;
1162 asdl_seq * a;
1163 expr_ty b;
1164 expr_ty c;
1165 if (
1166 (a = _gather_3_rule(p)) // ','.expression+
1167 &&
1168 (_literal = _PyPegen_expect_token(p, 12)) // token=','
1169 &&
1170 (_literal_1 = _PyPegen_expect_token(p, 16)) // token='*'
1171 &&
1172 (b = expression_rule(p)) // expression
1173 &&
1174 (_literal_2 = _PyPegen_expect_token(p, 12)) // token=','
1175 &&
1176 (_literal_3 = _PyPegen_expect_token(p, 35)) // token='**'
1177 &&
1178 (c = expression_rule(p)) // expression
1179 )
1180 {
1181 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 +03001182 _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 +01001183 if (_res == NULL && PyErr_Occurred()) {
1184 p->error_indicator = 1;
1185 D(p->level--);
1186 return NULL;
1187 }
1188 goto done;
1189 }
1190 p->mark = _mark;
1191 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1192 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+ ',' '*' expression ',' '**' expression"));
1193 }
1194 { // ','.expression+ ',' '*' expression
1195 if (p->error_indicator) {
1196 D(p->level--);
1197 return NULL;
1198 }
1199 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '*' expression"));
1200 Token * _literal;
1201 Token * _literal_1;
1202 asdl_seq * a;
1203 expr_ty b;
1204 if (
1205 (a = _gather_5_rule(p)) // ','.expression+
1206 &&
1207 (_literal = _PyPegen_expect_token(p, 12)) // token=','
1208 &&
1209 (_literal_1 = _PyPegen_expect_token(p, 16)) // token='*'
1210 &&
1211 (b = expression_rule(p)) // expression
1212 )
1213 {
1214 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 +01001215 _res = ( asdl_expr_seq * ) _PyPegen_seq_append_to_end ( p , a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001216 if (_res == NULL && PyErr_Occurred()) {
1217 p->error_indicator = 1;
1218 D(p->level--);
1219 return NULL;
1220 }
1221 goto done;
1222 }
1223 p->mark = _mark;
1224 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1225 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+ ',' '*' expression"));
1226 }
1227 { // ','.expression+ ',' '**' expression
1228 if (p->error_indicator) {
1229 D(p->level--);
1230 return NULL;
1231 }
1232 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '**' expression"));
1233 Token * _literal;
1234 Token * _literal_1;
1235 asdl_seq * a;
1236 expr_ty b;
1237 if (
1238 (a = _gather_7_rule(p)) // ','.expression+
1239 &&
1240 (_literal = _PyPegen_expect_token(p, 12)) // token=','
1241 &&
1242 (_literal_1 = _PyPegen_expect_token(p, 35)) // token='**'
1243 &&
1244 (b = expression_rule(p)) // expression
1245 )
1246 {
1247 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 +01001248 _res = ( asdl_expr_seq * ) _PyPegen_seq_append_to_end ( p , a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001249 if (_res == NULL && PyErr_Occurred()) {
1250 p->error_indicator = 1;
1251 D(p->level--);
1252 return NULL;
1253 }
1254 goto done;
1255 }
1256 p->mark = _mark;
1257 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1258 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+ ',' '**' expression"));
1259 }
1260 { // '*' expression ',' '**' expression
1261 if (p->error_indicator) {
1262 D(p->level--);
1263 return NULL;
1264 }
1265 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' expression ',' '**' expression"));
1266 Token * _literal;
1267 Token * _literal_1;
1268 Token * _literal_2;
1269 expr_ty a;
1270 expr_ty b;
1271 if (
1272 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
1273 &&
1274 (a = expression_rule(p)) // expression
1275 &&
1276 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
1277 &&
1278 (_literal_2 = _PyPegen_expect_token(p, 35)) // token='**'
1279 &&
1280 (b = expression_rule(p)) // expression
1281 )
1282 {
1283 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 +03001284 _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 +01001285 if (_res == NULL && PyErr_Occurred()) {
1286 p->error_indicator = 1;
1287 D(p->level--);
1288 return NULL;
1289 }
1290 goto done;
1291 }
1292 p->mark = _mark;
1293 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1294 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' expression ',' '**' expression"));
1295 }
1296 { // '*' expression
1297 if (p->error_indicator) {
1298 D(p->level--);
1299 return NULL;
1300 }
1301 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' expression"));
1302 Token * _literal;
1303 expr_ty a;
1304 if (
1305 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
1306 &&
1307 (a = expression_rule(p)) // expression
1308 )
1309 {
1310 D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' expression"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001311 _res = ( asdl_expr_seq * ) _PyPegen_singleton_seq ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001312 if (_res == NULL && PyErr_Occurred()) {
1313 p->error_indicator = 1;
1314 D(p->level--);
1315 return NULL;
1316 }
1317 goto done;
1318 }
1319 p->mark = _mark;
1320 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1321 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' expression"));
1322 }
1323 { // '**' expression
1324 if (p->error_indicator) {
1325 D(p->level--);
1326 return NULL;
1327 }
1328 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' expression"));
1329 Token * _literal;
1330 expr_ty a;
1331 if (
1332 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
1333 &&
1334 (a = expression_rule(p)) // expression
1335 )
1336 {
1337 D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' expression"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001338 _res = ( asdl_expr_seq * ) _PyPegen_singleton_seq ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001339 if (_res == NULL && PyErr_Occurred()) {
1340 p->error_indicator = 1;
1341 D(p->level--);
1342 return NULL;
1343 }
1344 goto done;
1345 }
1346 p->mark = _mark;
1347 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1348 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' expression"));
1349 }
1350 { // ','.expression+
1351 if (p->error_indicator) {
1352 D(p->level--);
1353 return NULL;
1354 }
1355 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001356 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001357 if (
Pablo Galindoa5634c42020-09-16 19:42:00 +01001358 (a = (asdl_expr_seq*)_gather_9_rule(p)) // ','.expression+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001359 )
1360 {
1361 D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.expression+"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001362 _res = a;
1363 if (_res == NULL && PyErr_Occurred()) {
1364 p->error_indicator = 1;
1365 D(p->level--);
1366 return NULL;
1367 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001368 goto done;
1369 }
1370 p->mark = _mark;
1371 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1372 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+"));
1373 }
1374 _res = NULL;
1375 done:
1376 D(p->level--);
1377 return _res;
1378}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +00001379
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001380// statements: statement+
Pablo Galindoa5634c42020-09-16 19:42:00 +01001381static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001382statements_rule(Parser *p)
1383{
1384 D(p->level++);
1385 if (p->error_indicator) {
1386 D(p->level--);
1387 return NULL;
1388 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01001389 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001390 int _mark = p->mark;
1391 { // statement+
1392 if (p->error_indicator) {
1393 D(p->level--);
1394 return NULL;
1395 }
1396 D(fprintf(stderr, "%*c> statements[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statement+"));
1397 asdl_seq * a;
1398 if (
1399 (a = _loop1_11_rule(p)) // statement+
1400 )
1401 {
1402 D(fprintf(stderr, "%*c+ statements[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "statement+"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001403 _res = ( asdl_stmt_seq * ) _PyPegen_seq_flatten ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001404 if (_res == NULL && PyErr_Occurred()) {
1405 p->error_indicator = 1;
1406 D(p->level--);
1407 return NULL;
1408 }
1409 goto done;
1410 }
1411 p->mark = _mark;
1412 D(fprintf(stderr, "%*c%s statements[%d-%d]: %s failed!\n", p->level, ' ',
1413 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statement+"));
1414 }
1415 _res = NULL;
1416 done:
1417 D(p->level--);
1418 return _res;
1419}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +00001420
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001421// statement: compound_stmt | simple_stmts
Pablo Galindoa5634c42020-09-16 19:42:00 +01001422static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001423statement_rule(Parser *p)
1424{
1425 D(p->level++);
1426 if (p->error_indicator) {
1427 D(p->level--);
1428 return NULL;
1429 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01001430 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001431 int _mark = p->mark;
1432 { // compound_stmt
1433 if (p->error_indicator) {
1434 D(p->level--);
1435 return NULL;
1436 }
1437 D(fprintf(stderr, "%*c> statement[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "compound_stmt"));
1438 stmt_ty a;
1439 if (
1440 (a = compound_stmt_rule(p)) // compound_stmt
1441 )
1442 {
1443 D(fprintf(stderr, "%*c+ statement[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "compound_stmt"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001444 _res = ( asdl_stmt_seq * ) _PyPegen_singleton_seq ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001445 if (_res == NULL && PyErr_Occurred()) {
1446 p->error_indicator = 1;
1447 D(p->level--);
1448 return NULL;
1449 }
1450 goto done;
1451 }
1452 p->mark = _mark;
1453 D(fprintf(stderr, "%*c%s statement[%d-%d]: %s failed!\n", p->level, ' ',
1454 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "compound_stmt"));
1455 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001456 { // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001457 if (p->error_indicator) {
1458 D(p->level--);
1459 return NULL;
1460 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001461 D(fprintf(stderr, "%*c> statement[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001462 asdl_stmt_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001463 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001464 (a = (asdl_stmt_seq*)simple_stmts_rule(p)) // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001465 )
1466 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001467 D(fprintf(stderr, "%*c+ statement[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001468 _res = a;
1469 if (_res == NULL && PyErr_Occurred()) {
1470 p->error_indicator = 1;
1471 D(p->level--);
1472 return NULL;
1473 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001474 goto done;
1475 }
1476 p->mark = _mark;
1477 D(fprintf(stderr, "%*c%s statement[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001478 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmts"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001479 }
1480 _res = NULL;
1481 done:
1482 D(p->level--);
1483 return _res;
1484}
1485
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001486// statement_newline: compound_stmt NEWLINE | simple_stmts | NEWLINE | $
Pablo Galindoa5634c42020-09-16 19:42:00 +01001487static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001488statement_newline_rule(Parser *p)
1489{
1490 D(p->level++);
1491 if (p->error_indicator) {
1492 D(p->level--);
1493 return NULL;
1494 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01001495 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001496 int _mark = p->mark;
1497 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
1498 p->error_indicator = 1;
1499 D(p->level--);
1500 return NULL;
1501 }
1502 int _start_lineno = p->tokens[_mark]->lineno;
1503 UNUSED(_start_lineno); // Only used by EXTRA macro
1504 int _start_col_offset = p->tokens[_mark]->col_offset;
1505 UNUSED(_start_col_offset); // Only used by EXTRA macro
1506 { // compound_stmt NEWLINE
1507 if (p->error_indicator) {
1508 D(p->level--);
1509 return NULL;
1510 }
1511 D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "compound_stmt NEWLINE"));
1512 stmt_ty a;
1513 Token * newline_var;
1514 if (
1515 (a = compound_stmt_rule(p)) // compound_stmt
1516 &&
1517 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
1518 )
1519 {
1520 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 +01001521 _res = ( asdl_stmt_seq * ) _PyPegen_singleton_seq ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001522 if (_res == NULL && PyErr_Occurred()) {
1523 p->error_indicator = 1;
1524 D(p->level--);
1525 return NULL;
1526 }
1527 goto done;
1528 }
1529 p->mark = _mark;
1530 D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
1531 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "compound_stmt NEWLINE"));
1532 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001533 { // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001534 if (p->error_indicator) {
1535 D(p->level--);
1536 return NULL;
1537 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001538 D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
1539 asdl_stmt_seq* simple_stmts_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001540 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001541 (simple_stmts_var = simple_stmts_rule(p)) // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001542 )
1543 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001544 D(fprintf(stderr, "%*c+ statement_newline[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
1545 _res = simple_stmts_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001546 goto done;
1547 }
1548 p->mark = _mark;
1549 D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001550 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmts"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001551 }
1552 { // NEWLINE
1553 if (p->error_indicator) {
1554 D(p->level--);
1555 return NULL;
1556 }
1557 D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
1558 Token * newline_var;
1559 if (
1560 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
1561 )
1562 {
1563 D(fprintf(stderr, "%*c+ statement_newline[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
1564 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1565 if (_token == NULL) {
1566 D(p->level--);
1567 return NULL;
1568 }
1569 int _end_lineno = _token->end_lineno;
1570 UNUSED(_end_lineno); // Only used by EXTRA macro
1571 int _end_col_offset = _token->end_col_offset;
1572 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02001573 _res = ( asdl_stmt_seq * ) _PyPegen_singleton_seq ( p , CHECK ( stmt_ty , _PyAST_Pass ( EXTRA ) ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001574 if (_res == NULL && PyErr_Occurred()) {
1575 p->error_indicator = 1;
1576 D(p->level--);
1577 return NULL;
1578 }
1579 goto done;
1580 }
1581 p->mark = _mark;
1582 D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
1583 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
1584 }
1585 { // $
1586 if (p->error_indicator) {
1587 D(p->level--);
1588 return NULL;
1589 }
1590 D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "$"));
1591 Token * endmarker_var;
1592 if (
1593 (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
1594 )
1595 {
1596 D(fprintf(stderr, "%*c+ statement_newline[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "$"));
1597 _res = _PyPegen_interactive_exit ( p );
1598 if (_res == NULL && PyErr_Occurred()) {
1599 p->error_indicator = 1;
1600 D(p->level--);
1601 return NULL;
1602 }
1603 goto done;
1604 }
1605 p->mark = _mark;
1606 D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
1607 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "$"));
1608 }
1609 _res = NULL;
1610 done:
1611 D(p->level--);
1612 return _res;
1613}
1614
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001615// simple_stmts: simple_stmt !';' NEWLINE | ';'.simple_stmt+ ';'? NEWLINE
Pablo Galindoa5634c42020-09-16 19:42:00 +01001616static asdl_stmt_seq*
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001617simple_stmts_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001618{
1619 D(p->level++);
1620 if (p->error_indicator) {
1621 D(p->level--);
1622 return NULL;
1623 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01001624 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001625 int _mark = p->mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001626 { // simple_stmt !';' NEWLINE
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001627 if (p->error_indicator) {
1628 D(p->level--);
1629 return NULL;
1630 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001631 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 +01001632 stmt_ty a;
1633 Token * newline_var;
1634 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001635 (a = simple_stmt_rule(p)) // simple_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001636 &&
1637 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 13) // token=';'
1638 &&
1639 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
1640 )
1641 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001642 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 +01001643 _res = ( asdl_stmt_seq * ) _PyPegen_singleton_seq ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001644 if (_res == NULL && PyErr_Occurred()) {
1645 p->error_indicator = 1;
1646 D(p->level--);
1647 return NULL;
1648 }
1649 goto done;
1650 }
1651 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001652 D(fprintf(stderr, "%*c%s simple_stmts[%d-%d]: %s failed!\n", p->level, ' ',
1653 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmt !';' NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001654 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001655 { // ';'.simple_stmt+ ';'? NEWLINE
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001656 if (p->error_indicator) {
1657 D(p->level--);
1658 return NULL;
1659 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001660 D(fprintf(stderr, "%*c> simple_stmts[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "';'.simple_stmt+ ';'? NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001661 void *_opt_var;
1662 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +01001663 asdl_stmt_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001664 Token * newline_var;
1665 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001666 (a = (asdl_stmt_seq*)_gather_12_rule(p)) // ';'.simple_stmt+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001667 &&
1668 (_opt_var = _PyPegen_expect_token(p, 13), 1) // ';'?
1669 &&
1670 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
1671 )
1672 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001673 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 +01001674 _res = a;
1675 if (_res == NULL && PyErr_Occurred()) {
1676 p->error_indicator = 1;
1677 D(p->level--);
1678 return NULL;
1679 }
1680 goto done;
1681 }
1682 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001683 D(fprintf(stderr, "%*c%s simple_stmts[%d-%d]: %s failed!\n", p->level, ' ',
1684 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "';'.simple_stmt+ ';'? NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001685 }
1686 _res = NULL;
1687 done:
1688 D(p->level--);
1689 return _res;
1690}
1691
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001692// simple_stmt:
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001693// | assignment
1694// | star_expressions
1695// | &'return' return_stmt
1696// | &('import' | 'from') import_stmt
1697// | &'raise' raise_stmt
1698// | 'pass'
1699// | &'del' del_stmt
1700// | &'yield' yield_stmt
1701// | &'assert' assert_stmt
1702// | 'break'
1703// | 'continue'
1704// | &'global' global_stmt
1705// | &'nonlocal' nonlocal_stmt
1706static stmt_ty
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001707simple_stmt_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001708{
1709 D(p->level++);
1710 if (p->error_indicator) {
1711 D(p->level--);
1712 return NULL;
1713 }
1714 stmt_ty _res = NULL;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001715 if (_PyPegen_is_memoized(p, simple_stmt_type, &_res)) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001716 D(p->level--);
1717 return _res;
1718 }
1719 int _mark = p->mark;
1720 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
1721 p->error_indicator = 1;
1722 D(p->level--);
1723 return NULL;
1724 }
1725 int _start_lineno = p->tokens[_mark]->lineno;
1726 UNUSED(_start_lineno); // Only used by EXTRA macro
1727 int _start_col_offset = p->tokens[_mark]->col_offset;
1728 UNUSED(_start_col_offset); // Only used by EXTRA macro
1729 { // assignment
1730 if (p->error_indicator) {
1731 D(p->level--);
1732 return NULL;
1733 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001734 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "assignment"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001735 stmt_ty assignment_var;
1736 if (
1737 (assignment_var = assignment_rule(p)) // assignment
1738 )
1739 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001740 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "assignment"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001741 _res = assignment_var;
1742 goto done;
1743 }
1744 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001745 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001746 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "assignment"));
1747 }
1748 { // star_expressions
1749 if (p->error_indicator) {
1750 D(p->level--);
1751 return NULL;
1752 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001753 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001754 expr_ty e;
1755 if (
1756 (e = star_expressions_rule(p)) // star_expressions
1757 )
1758 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001759 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 +01001760 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1761 if (_token == NULL) {
1762 D(p->level--);
1763 return NULL;
1764 }
1765 int _end_lineno = _token->end_lineno;
1766 UNUSED(_end_lineno); // Only used by EXTRA macro
1767 int _end_col_offset = _token->end_col_offset;
1768 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02001769 _res = _PyAST_Expr ( e , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001770 if (_res == NULL && PyErr_Occurred()) {
1771 p->error_indicator = 1;
1772 D(p->level--);
1773 return NULL;
1774 }
1775 goto done;
1776 }
1777 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001778 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001779 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
1780 }
1781 { // &'return' return_stmt
1782 if (p->error_indicator) {
1783 D(p->level--);
1784 return NULL;
1785 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001786 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 +01001787 stmt_ty return_stmt_var;
1788 if (
1789 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 500) // token='return'
1790 &&
1791 (return_stmt_var = return_stmt_rule(p)) // return_stmt
1792 )
1793 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001794 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 +01001795 _res = return_stmt_var;
1796 goto done;
1797 }
1798 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001799 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001800 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'return' return_stmt"));
1801 }
1802 { // &('import' | 'from') import_stmt
1803 if (p->error_indicator) {
1804 D(p->level--);
1805 return NULL;
1806 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001807 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 +01001808 stmt_ty import_stmt_var;
1809 if (
1810 _PyPegen_lookahead(1, _tmp_14_rule, p)
1811 &&
1812 (import_stmt_var = import_stmt_rule(p)) // import_stmt
1813 )
1814 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001815 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('import' | 'from') import_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001816 _res = import_stmt_var;
1817 goto done;
1818 }
1819 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001820 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001821 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('import' | 'from') import_stmt"));
1822 }
1823 { // &'raise' raise_stmt
1824 if (p->error_indicator) {
1825 D(p->level--);
1826 return NULL;
1827 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001828 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 +01001829 stmt_ty raise_stmt_var;
1830 if (
1831 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 501) // token='raise'
1832 &&
1833 (raise_stmt_var = raise_stmt_rule(p)) // raise_stmt
1834 )
1835 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001836 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 +01001837 _res = raise_stmt_var;
1838 goto done;
1839 }
1840 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001841 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001842 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'raise' raise_stmt"));
1843 }
1844 { // 'pass'
1845 if (p->error_indicator) {
1846 D(p->level--);
1847 return NULL;
1848 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001849 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'pass'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001850 Token * _keyword;
1851 if (
1852 (_keyword = _PyPegen_expect_token(p, 502)) // token='pass'
1853 )
1854 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001855 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'pass'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001856 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1857 if (_token == NULL) {
1858 D(p->level--);
1859 return NULL;
1860 }
1861 int _end_lineno = _token->end_lineno;
1862 UNUSED(_end_lineno); // Only used by EXTRA macro
1863 int _end_col_offset = _token->end_col_offset;
1864 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02001865 _res = _PyAST_Pass ( EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001866 if (_res == NULL && PyErr_Occurred()) {
1867 p->error_indicator = 1;
1868 D(p->level--);
1869 return NULL;
1870 }
1871 goto done;
1872 }
1873 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001874 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001875 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'pass'"));
1876 }
1877 { // &'del' del_stmt
1878 if (p->error_indicator) {
1879 D(p->level--);
1880 return NULL;
1881 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001882 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 +01001883 stmt_ty del_stmt_var;
1884 if (
1885 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 503) // token='del'
1886 &&
1887 (del_stmt_var = del_stmt_rule(p)) // del_stmt
1888 )
1889 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001890 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 +01001891 _res = del_stmt_var;
1892 goto done;
1893 }
1894 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001895 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001896 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'del' del_stmt"));
1897 }
1898 { // &'yield' yield_stmt
1899 if (p->error_indicator) {
1900 D(p->level--);
1901 return NULL;
1902 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001903 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 +01001904 stmt_ty yield_stmt_var;
1905 if (
1906 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 504) // token='yield'
1907 &&
1908 (yield_stmt_var = yield_stmt_rule(p)) // yield_stmt
1909 )
1910 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001911 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'yield' yield_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001912 _res = yield_stmt_var;
1913 goto done;
1914 }
1915 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001916 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001917 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'yield' yield_stmt"));
1918 }
1919 { // &'assert' assert_stmt
1920 if (p->error_indicator) {
1921 D(p->level--);
1922 return NULL;
1923 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001924 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 +01001925 stmt_ty assert_stmt_var;
1926 if (
1927 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 505) // token='assert'
1928 &&
1929 (assert_stmt_var = assert_stmt_rule(p)) // assert_stmt
1930 )
1931 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001932 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 +01001933 _res = assert_stmt_var;
1934 goto done;
1935 }
1936 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001937 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001938 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'assert' assert_stmt"));
1939 }
1940 { // 'break'
1941 if (p->error_indicator) {
1942 D(p->level--);
1943 return NULL;
1944 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001945 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'break'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001946 Token * _keyword;
1947 if (
1948 (_keyword = _PyPegen_expect_token(p, 506)) // token='break'
1949 )
1950 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001951 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'break'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001952 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1953 if (_token == NULL) {
1954 D(p->level--);
1955 return NULL;
1956 }
1957 int _end_lineno = _token->end_lineno;
1958 UNUSED(_end_lineno); // Only used by EXTRA macro
1959 int _end_col_offset = _token->end_col_offset;
1960 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02001961 _res = _PyAST_Break ( EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001962 if (_res == NULL && PyErr_Occurred()) {
1963 p->error_indicator = 1;
1964 D(p->level--);
1965 return NULL;
1966 }
1967 goto done;
1968 }
1969 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001970 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001971 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'break'"));
1972 }
1973 { // 'continue'
1974 if (p->error_indicator) {
1975 D(p->level--);
1976 return NULL;
1977 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001978 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'continue'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001979 Token * _keyword;
1980 if (
1981 (_keyword = _PyPegen_expect_token(p, 507)) // token='continue'
1982 )
1983 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001984 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'continue'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001985 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1986 if (_token == NULL) {
1987 D(p->level--);
1988 return NULL;
1989 }
1990 int _end_lineno = _token->end_lineno;
1991 UNUSED(_end_lineno); // Only used by EXTRA macro
1992 int _end_col_offset = _token->end_col_offset;
1993 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02001994 _res = _PyAST_Continue ( EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001995 if (_res == NULL && PyErr_Occurred()) {
1996 p->error_indicator = 1;
1997 D(p->level--);
1998 return NULL;
1999 }
2000 goto done;
2001 }
2002 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00002003 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002004 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'continue'"));
2005 }
2006 { // &'global' global_stmt
2007 if (p->error_indicator) {
2008 D(p->level--);
2009 return NULL;
2010 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00002011 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 +01002012 stmt_ty global_stmt_var;
2013 if (
2014 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 508) // token='global'
2015 &&
2016 (global_stmt_var = global_stmt_rule(p)) // global_stmt
2017 )
2018 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00002019 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 +01002020 _res = global_stmt_var;
2021 goto done;
2022 }
2023 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00002024 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002025 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'global' global_stmt"));
2026 }
2027 { // &'nonlocal' nonlocal_stmt
2028 if (p->error_indicator) {
2029 D(p->level--);
2030 return NULL;
2031 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00002032 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 +01002033 stmt_ty nonlocal_stmt_var;
2034 if (
2035 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 509) // token='nonlocal'
2036 &&
2037 (nonlocal_stmt_var = nonlocal_stmt_rule(p)) // nonlocal_stmt
2038 )
2039 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00002040 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 +01002041 _res = nonlocal_stmt_var;
2042 goto done;
2043 }
2044 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00002045 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002046 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'nonlocal' nonlocal_stmt"));
2047 }
2048 _res = NULL;
2049 done:
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00002050 _PyPegen_insert_memo(p, _mark, simple_stmt_type, _res);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002051 D(p->level--);
2052 return _res;
2053}
2054
2055// compound_stmt:
2056// | &('def' | '@' | ASYNC) function_def
2057// | &'if' if_stmt
2058// | &('class' | '@') class_def
2059// | &('with' | ASYNC) with_stmt
2060// | &('for' | ASYNC) for_stmt
2061// | &'try' try_stmt
2062// | &'while' while_stmt
Brandt Bucher145bf262021-02-26 14:51:55 -08002063// | match_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002064static stmt_ty
2065compound_stmt_rule(Parser *p)
2066{
2067 D(p->level++);
2068 if (p->error_indicator) {
2069 D(p->level--);
2070 return NULL;
2071 }
2072 stmt_ty _res = NULL;
2073 int _mark = p->mark;
2074 { // &('def' | '@' | ASYNC) function_def
2075 if (p->error_indicator) {
2076 D(p->level--);
2077 return NULL;
2078 }
2079 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('def' | '@' | ASYNC) function_def"));
2080 stmt_ty function_def_var;
2081 if (
2082 _PyPegen_lookahead(1, _tmp_15_rule, p)
2083 &&
2084 (function_def_var = function_def_rule(p)) // function_def
2085 )
2086 {
2087 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('def' | '@' | ASYNC) function_def"));
2088 _res = function_def_var;
2089 goto done;
2090 }
2091 p->mark = _mark;
2092 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2093 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('def' | '@' | ASYNC) function_def"));
2094 }
2095 { // &'if' if_stmt
2096 if (p->error_indicator) {
2097 D(p->level--);
2098 return NULL;
2099 }
2100 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'if' if_stmt"));
2101 stmt_ty if_stmt_var;
2102 if (
2103 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 510) // token='if'
2104 &&
2105 (if_stmt_var = if_stmt_rule(p)) // if_stmt
2106 )
2107 {
2108 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'if' if_stmt"));
2109 _res = if_stmt_var;
2110 goto done;
2111 }
2112 p->mark = _mark;
2113 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2114 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'if' if_stmt"));
2115 }
2116 { // &('class' | '@') class_def
2117 if (p->error_indicator) {
2118 D(p->level--);
2119 return NULL;
2120 }
2121 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('class' | '@') class_def"));
2122 stmt_ty class_def_var;
2123 if (
2124 _PyPegen_lookahead(1, _tmp_16_rule, p)
2125 &&
2126 (class_def_var = class_def_rule(p)) // class_def
2127 )
2128 {
2129 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('class' | '@') class_def"));
2130 _res = class_def_var;
2131 goto done;
2132 }
2133 p->mark = _mark;
2134 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2135 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('class' | '@') class_def"));
2136 }
2137 { // &('with' | ASYNC) with_stmt
2138 if (p->error_indicator) {
2139 D(p->level--);
2140 return NULL;
2141 }
2142 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('with' | ASYNC) with_stmt"));
2143 stmt_ty with_stmt_var;
2144 if (
2145 _PyPegen_lookahead(1, _tmp_17_rule, p)
2146 &&
2147 (with_stmt_var = with_stmt_rule(p)) // with_stmt
2148 )
2149 {
2150 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('with' | ASYNC) with_stmt"));
2151 _res = with_stmt_var;
2152 goto done;
2153 }
2154 p->mark = _mark;
2155 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2156 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('with' | ASYNC) with_stmt"));
2157 }
2158 { // &('for' | ASYNC) for_stmt
2159 if (p->error_indicator) {
2160 D(p->level--);
2161 return NULL;
2162 }
2163 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('for' | ASYNC) for_stmt"));
2164 stmt_ty for_stmt_var;
2165 if (
2166 _PyPegen_lookahead(1, _tmp_18_rule, p)
2167 &&
2168 (for_stmt_var = for_stmt_rule(p)) // for_stmt
2169 )
2170 {
2171 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('for' | ASYNC) for_stmt"));
2172 _res = for_stmt_var;
2173 goto done;
2174 }
2175 p->mark = _mark;
2176 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2177 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('for' | ASYNC) for_stmt"));
2178 }
2179 { // &'try' try_stmt
2180 if (p->error_indicator) {
2181 D(p->level--);
2182 return NULL;
2183 }
2184 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'try' try_stmt"));
2185 stmt_ty try_stmt_var;
2186 if (
2187 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 511) // token='try'
2188 &&
2189 (try_stmt_var = try_stmt_rule(p)) // try_stmt
2190 )
2191 {
2192 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'try' try_stmt"));
2193 _res = try_stmt_var;
2194 goto done;
2195 }
2196 p->mark = _mark;
2197 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2198 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'try' try_stmt"));
2199 }
2200 { // &'while' while_stmt
2201 if (p->error_indicator) {
2202 D(p->level--);
2203 return NULL;
2204 }
2205 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'while' while_stmt"));
2206 stmt_ty while_stmt_var;
2207 if (
2208 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 512) // token='while'
2209 &&
2210 (while_stmt_var = while_stmt_rule(p)) // while_stmt
2211 )
2212 {
2213 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'while' while_stmt"));
2214 _res = while_stmt_var;
2215 goto done;
2216 }
2217 p->mark = _mark;
2218 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2219 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'while' while_stmt"));
2220 }
Brandt Bucher145bf262021-02-26 14:51:55 -08002221 { // match_stmt
2222 if (p->error_indicator) {
2223 D(p->level--);
2224 return NULL;
2225 }
2226 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "match_stmt"));
2227 stmt_ty match_stmt_var;
2228 if (
2229 (match_stmt_var = match_stmt_rule(p)) // match_stmt
2230 )
2231 {
2232 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "match_stmt"));
2233 _res = match_stmt_var;
2234 goto done;
2235 }
2236 p->mark = _mark;
2237 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2238 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "match_stmt"));
2239 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002240 _res = NULL;
2241 done:
2242 D(p->level--);
2243 return _res;
2244}
2245
2246// assignment:
2247// | NAME ':' expression ['=' annotated_rhs]
2248// | ('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]
2249// | ((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002250// | single_target augassign ~ (yield_expr | star_expressions)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002251// | invalid_assignment
2252static stmt_ty
2253assignment_rule(Parser *p)
2254{
2255 D(p->level++);
2256 if (p->error_indicator) {
2257 D(p->level--);
2258 return NULL;
2259 }
2260 stmt_ty _res = NULL;
2261 int _mark = p->mark;
2262 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2263 p->error_indicator = 1;
2264 D(p->level--);
2265 return NULL;
2266 }
2267 int _start_lineno = p->tokens[_mark]->lineno;
2268 UNUSED(_start_lineno); // Only used by EXTRA macro
2269 int _start_col_offset = p->tokens[_mark]->col_offset;
2270 UNUSED(_start_col_offset); // Only used by EXTRA macro
2271 { // NAME ':' expression ['=' annotated_rhs]
2272 if (p->error_indicator) {
2273 D(p->level--);
2274 return NULL;
2275 }
2276 D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME ':' expression ['=' annotated_rhs]"));
2277 Token * _literal;
2278 expr_ty a;
2279 expr_ty b;
2280 void *c;
2281 if (
2282 (a = _PyPegen_name_token(p)) // NAME
2283 &&
2284 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
2285 &&
2286 (b = expression_rule(p)) // expression
2287 &&
2288 (c = _tmp_19_rule(p), 1) // ['=' annotated_rhs]
2289 )
2290 {
2291 D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME ':' expression ['=' annotated_rhs]"));
2292 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2293 if (_token == NULL) {
2294 D(p->level--);
2295 return NULL;
2296 }
2297 int _end_lineno = _token->end_lineno;
2298 UNUSED(_end_lineno); // Only used by EXTRA macro
2299 int _end_col_offset = _token->end_col_offset;
2300 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002301 _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 +01002302 if (_res == NULL && PyErr_Occurred()) {
2303 p->error_indicator = 1;
2304 D(p->level--);
2305 return NULL;
2306 }
2307 goto done;
2308 }
2309 p->mark = _mark;
2310 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
2311 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME ':' expression ['=' annotated_rhs]"));
2312 }
2313 { // ('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]
2314 if (p->error_indicator) {
2315 D(p->level--);
2316 return NULL;
2317 }
2318 D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]"));
2319 Token * _literal;
2320 void *a;
2321 expr_ty b;
2322 void *c;
2323 if (
2324 (a = _tmp_20_rule(p)) // '(' single_target ')' | single_subscript_attribute_target
2325 &&
2326 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
2327 &&
2328 (b = expression_rule(p)) // expression
2329 &&
2330 (c = _tmp_21_rule(p), 1) // ['=' annotated_rhs]
2331 )
2332 {
2333 D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]"));
2334 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2335 if (_token == NULL) {
2336 D(p->level--);
2337 return NULL;
2338 }
2339 int _end_lineno = _token->end_lineno;
2340 UNUSED(_end_lineno); // Only used by EXTRA macro
2341 int _end_col_offset = _token->end_col_offset;
2342 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002343 _res = CHECK_VERSION ( stmt_ty , 6 , "Variable annotations syntax is" , _PyAST_AnnAssign ( a , b , c , 0 , EXTRA ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002344 if (_res == NULL && PyErr_Occurred()) {
2345 p->error_indicator = 1;
2346 D(p->level--);
2347 return NULL;
2348 }
2349 goto done;
2350 }
2351 p->mark = _mark;
2352 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
2353 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]"));
2354 }
2355 { // ((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?
2356 if (p->error_indicator) {
2357 D(p->level--);
2358 return NULL;
2359 }
2360 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 +01002361 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002362 void *b;
2363 void *tc;
2364 if (
Pablo Galindoa5634c42020-09-16 19:42:00 +01002365 (a = (asdl_expr_seq*)_loop1_22_rule(p)) // ((star_targets '='))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002366 &&
2367 (b = _tmp_23_rule(p)) // yield_expr | star_expressions
2368 &&
2369 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 22) // token='='
2370 &&
2371 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
2372 )
2373 {
2374 D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?"));
2375 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2376 if (_token == NULL) {
2377 D(p->level--);
2378 return NULL;
2379 }
2380 int _end_lineno = _token->end_lineno;
2381 UNUSED(_end_lineno); // Only used by EXTRA macro
2382 int _end_col_offset = _token->end_col_offset;
2383 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002384 _res = _PyAST_Assign ( a , b , NEW_TYPE_COMMENT ( p , tc ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002385 if (_res == NULL && PyErr_Occurred()) {
2386 p->error_indicator = 1;
2387 D(p->level--);
2388 return NULL;
2389 }
2390 goto done;
2391 }
2392 p->mark = _mark;
2393 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
2394 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?"));
2395 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002396 { // single_target augassign ~ (yield_expr | star_expressions)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002397 if (p->error_indicator) {
2398 D(p->level--);
2399 return NULL;
2400 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002401 D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "single_target augassign ~ (yield_expr | star_expressions)"));
2402 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002403 expr_ty a;
2404 AugOperator* b;
2405 void *c;
2406 if (
2407 (a = single_target_rule(p)) // single_target
2408 &&
2409 (b = augassign_rule(p)) // augassign
2410 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002411 (_cut_var = 1)
2412 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002413 (c = _tmp_24_rule(p)) // yield_expr | star_expressions
2414 )
2415 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002416 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 +01002417 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2418 if (_token == NULL) {
2419 D(p->level--);
2420 return NULL;
2421 }
2422 int _end_lineno = _token->end_lineno;
2423 UNUSED(_end_lineno); // Only used by EXTRA macro
2424 int _end_col_offset = _token->end_col_offset;
2425 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002426 _res = _PyAST_AugAssign ( a , b -> kind , c , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002427 if (_res == NULL && PyErr_Occurred()) {
2428 p->error_indicator = 1;
2429 D(p->level--);
2430 return NULL;
2431 }
2432 goto done;
2433 }
2434 p->mark = _mark;
2435 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002436 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "single_target augassign ~ (yield_expr | star_expressions)"));
2437 if (_cut_var) {
2438 D(p->level--);
2439 return NULL;
2440 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002441 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02002442 if (p->call_invalid_rules) { // invalid_assignment
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002443 if (p->error_indicator) {
2444 D(p->level--);
2445 return NULL;
2446 }
2447 D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_assignment"));
2448 void *invalid_assignment_var;
2449 if (
2450 (invalid_assignment_var = invalid_assignment_rule(p)) // invalid_assignment
2451 )
2452 {
2453 D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_assignment"));
2454 _res = invalid_assignment_var;
2455 goto done;
2456 }
2457 p->mark = _mark;
2458 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
2459 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_assignment"));
2460 }
2461 _res = NULL;
2462 done:
2463 D(p->level--);
2464 return _res;
2465}
2466
2467// augassign:
2468// | '+='
2469// | '-='
2470// | '*='
2471// | '@='
2472// | '/='
2473// | '%='
2474// | '&='
2475// | '|='
2476// | '^='
2477// | '<<='
2478// | '>>='
2479// | '**='
2480// | '//='
2481static AugOperator*
2482augassign_rule(Parser *p)
2483{
2484 D(p->level++);
2485 if (p->error_indicator) {
2486 D(p->level--);
2487 return NULL;
2488 }
2489 AugOperator* _res = NULL;
2490 int _mark = p->mark;
2491 { // '+='
2492 if (p->error_indicator) {
2493 D(p->level--);
2494 return NULL;
2495 }
2496 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'+='"));
2497 Token * _literal;
2498 if (
2499 (_literal = _PyPegen_expect_token(p, 36)) // token='+='
2500 )
2501 {
2502 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'+='"));
2503 _res = _PyPegen_augoperator ( p , Add );
2504 if (_res == NULL && PyErr_Occurred()) {
2505 p->error_indicator = 1;
2506 D(p->level--);
2507 return NULL;
2508 }
2509 goto done;
2510 }
2511 p->mark = _mark;
2512 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2513 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+='"));
2514 }
2515 { // '-='
2516 if (p->error_indicator) {
2517 D(p->level--);
2518 return NULL;
2519 }
2520 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-='"));
2521 Token * _literal;
2522 if (
2523 (_literal = _PyPegen_expect_token(p, 37)) // token='-='
2524 )
2525 {
2526 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-='"));
2527 _res = _PyPegen_augoperator ( p , Sub );
2528 if (_res == NULL && PyErr_Occurred()) {
2529 p->error_indicator = 1;
2530 D(p->level--);
2531 return NULL;
2532 }
2533 goto done;
2534 }
2535 p->mark = _mark;
2536 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2537 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-='"));
2538 }
2539 { // '*='
2540 if (p->error_indicator) {
2541 D(p->level--);
2542 return NULL;
2543 }
2544 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*='"));
2545 Token * _literal;
2546 if (
2547 (_literal = _PyPegen_expect_token(p, 38)) // token='*='
2548 )
2549 {
2550 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*='"));
2551 _res = _PyPegen_augoperator ( p , Mult );
2552 if (_res == NULL && PyErr_Occurred()) {
2553 p->error_indicator = 1;
2554 D(p->level--);
2555 return NULL;
2556 }
2557 goto done;
2558 }
2559 p->mark = _mark;
2560 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2561 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*='"));
2562 }
2563 { // '@='
2564 if (p->error_indicator) {
2565 D(p->level--);
2566 return NULL;
2567 }
2568 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@='"));
2569 Token * _literal;
2570 if (
2571 (_literal = _PyPegen_expect_token(p, 50)) // token='@='
2572 )
2573 {
2574 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@='"));
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03002575 _res = CHECK_VERSION ( AugOperator * , 5 , "The '@' operator is" , _PyPegen_augoperator ( p , MatMult ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002576 if (_res == NULL && PyErr_Occurred()) {
2577 p->error_indicator = 1;
2578 D(p->level--);
2579 return NULL;
2580 }
2581 goto done;
2582 }
2583 p->mark = _mark;
2584 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2585 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@='"));
2586 }
2587 { // '/='
2588 if (p->error_indicator) {
2589 D(p->level--);
2590 return NULL;
2591 }
2592 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'/='"));
2593 Token * _literal;
2594 if (
2595 (_literal = _PyPegen_expect_token(p, 39)) // token='/='
2596 )
2597 {
2598 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'/='"));
2599 _res = _PyPegen_augoperator ( p , Div );
2600 if (_res == NULL && PyErr_Occurred()) {
2601 p->error_indicator = 1;
2602 D(p->level--);
2603 return NULL;
2604 }
2605 goto done;
2606 }
2607 p->mark = _mark;
2608 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2609 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'/='"));
2610 }
2611 { // '%='
2612 if (p->error_indicator) {
2613 D(p->level--);
2614 return NULL;
2615 }
2616 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'%='"));
2617 Token * _literal;
2618 if (
2619 (_literal = _PyPegen_expect_token(p, 40)) // token='%='
2620 )
2621 {
2622 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'%='"));
2623 _res = _PyPegen_augoperator ( p , Mod );
2624 if (_res == NULL && PyErr_Occurred()) {
2625 p->error_indicator = 1;
2626 D(p->level--);
2627 return NULL;
2628 }
2629 goto done;
2630 }
2631 p->mark = _mark;
2632 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2633 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'%='"));
2634 }
2635 { // '&='
2636 if (p->error_indicator) {
2637 D(p->level--);
2638 return NULL;
2639 }
2640 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'&='"));
2641 Token * _literal;
2642 if (
2643 (_literal = _PyPegen_expect_token(p, 41)) // token='&='
2644 )
2645 {
2646 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'&='"));
2647 _res = _PyPegen_augoperator ( p , BitAnd );
2648 if (_res == NULL && PyErr_Occurred()) {
2649 p->error_indicator = 1;
2650 D(p->level--);
2651 return NULL;
2652 }
2653 goto done;
2654 }
2655 p->mark = _mark;
2656 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2657 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'&='"));
2658 }
2659 { // '|='
2660 if (p->error_indicator) {
2661 D(p->level--);
2662 return NULL;
2663 }
2664 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'|='"));
2665 Token * _literal;
2666 if (
2667 (_literal = _PyPegen_expect_token(p, 42)) // token='|='
2668 )
2669 {
2670 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'|='"));
2671 _res = _PyPegen_augoperator ( p , BitOr );
2672 if (_res == NULL && PyErr_Occurred()) {
2673 p->error_indicator = 1;
2674 D(p->level--);
2675 return NULL;
2676 }
2677 goto done;
2678 }
2679 p->mark = _mark;
2680 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2681 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'|='"));
2682 }
2683 { // '^='
2684 if (p->error_indicator) {
2685 D(p->level--);
2686 return NULL;
2687 }
2688 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'^='"));
2689 Token * _literal;
2690 if (
2691 (_literal = _PyPegen_expect_token(p, 43)) // token='^='
2692 )
2693 {
2694 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'^='"));
2695 _res = _PyPegen_augoperator ( p , BitXor );
2696 if (_res == NULL && PyErr_Occurred()) {
2697 p->error_indicator = 1;
2698 D(p->level--);
2699 return NULL;
2700 }
2701 goto done;
2702 }
2703 p->mark = _mark;
2704 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2705 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'^='"));
2706 }
2707 { // '<<='
2708 if (p->error_indicator) {
2709 D(p->level--);
2710 return NULL;
2711 }
2712 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'<<='"));
2713 Token * _literal;
2714 if (
2715 (_literal = _PyPegen_expect_token(p, 44)) // token='<<='
2716 )
2717 {
2718 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'<<='"));
2719 _res = _PyPegen_augoperator ( p , LShift );
2720 if (_res == NULL && PyErr_Occurred()) {
2721 p->error_indicator = 1;
2722 D(p->level--);
2723 return NULL;
2724 }
2725 goto done;
2726 }
2727 p->mark = _mark;
2728 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2729 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'<<='"));
2730 }
2731 { // '>>='
2732 if (p->error_indicator) {
2733 D(p->level--);
2734 return NULL;
2735 }
2736 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'>>='"));
2737 Token * _literal;
2738 if (
2739 (_literal = _PyPegen_expect_token(p, 45)) // token='>>='
2740 )
2741 {
2742 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'>>='"));
2743 _res = _PyPegen_augoperator ( p , RShift );
2744 if (_res == NULL && PyErr_Occurred()) {
2745 p->error_indicator = 1;
2746 D(p->level--);
2747 return NULL;
2748 }
2749 goto done;
2750 }
2751 p->mark = _mark;
2752 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2753 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'>>='"));
2754 }
2755 { // '**='
2756 if (p->error_indicator) {
2757 D(p->level--);
2758 return NULL;
2759 }
2760 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**='"));
2761 Token * _literal;
2762 if (
2763 (_literal = _PyPegen_expect_token(p, 46)) // token='**='
2764 )
2765 {
2766 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**='"));
2767 _res = _PyPegen_augoperator ( p , Pow );
2768 if (_res == NULL && PyErr_Occurred()) {
2769 p->error_indicator = 1;
2770 D(p->level--);
2771 return NULL;
2772 }
2773 goto done;
2774 }
2775 p->mark = _mark;
2776 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2777 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**='"));
2778 }
2779 { // '//='
2780 if (p->error_indicator) {
2781 D(p->level--);
2782 return NULL;
2783 }
2784 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'//='"));
2785 Token * _literal;
2786 if (
2787 (_literal = _PyPegen_expect_token(p, 48)) // token='//='
2788 )
2789 {
2790 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'//='"));
2791 _res = _PyPegen_augoperator ( p , FloorDiv );
2792 if (_res == NULL && PyErr_Occurred()) {
2793 p->error_indicator = 1;
2794 D(p->level--);
2795 return NULL;
2796 }
2797 goto done;
2798 }
2799 p->mark = _mark;
2800 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2801 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'//='"));
2802 }
2803 _res = NULL;
2804 done:
2805 D(p->level--);
2806 return _res;
2807}
2808
2809// global_stmt: 'global' ','.NAME+
2810static stmt_ty
2811global_stmt_rule(Parser *p)
2812{
2813 D(p->level++);
2814 if (p->error_indicator) {
2815 D(p->level--);
2816 return NULL;
2817 }
2818 stmt_ty _res = NULL;
2819 int _mark = p->mark;
2820 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2821 p->error_indicator = 1;
2822 D(p->level--);
2823 return NULL;
2824 }
2825 int _start_lineno = p->tokens[_mark]->lineno;
2826 UNUSED(_start_lineno); // Only used by EXTRA macro
2827 int _start_col_offset = p->tokens[_mark]->col_offset;
2828 UNUSED(_start_col_offset); // Only used by EXTRA macro
2829 { // 'global' ','.NAME+
2830 if (p->error_indicator) {
2831 D(p->level--);
2832 return NULL;
2833 }
2834 D(fprintf(stderr, "%*c> global_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'global' ','.NAME+"));
2835 Token * _keyword;
Pablo Galindoa5634c42020-09-16 19:42:00 +01002836 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002837 if (
2838 (_keyword = _PyPegen_expect_token(p, 508)) // token='global'
2839 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01002840 (a = (asdl_expr_seq*)_gather_25_rule(p)) // ','.NAME+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002841 )
2842 {
2843 D(fprintf(stderr, "%*c+ global_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'global' ','.NAME+"));
2844 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2845 if (_token == NULL) {
2846 D(p->level--);
2847 return NULL;
2848 }
2849 int _end_lineno = _token->end_lineno;
2850 UNUSED(_end_lineno); // Only used by EXTRA macro
2851 int _end_col_offset = _token->end_col_offset;
2852 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002853 _res = _PyAST_Global ( CHECK ( asdl_identifier_seq * , _PyPegen_map_names_to_ids ( p , a ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002854 if (_res == NULL && PyErr_Occurred()) {
2855 p->error_indicator = 1;
2856 D(p->level--);
2857 return NULL;
2858 }
2859 goto done;
2860 }
2861 p->mark = _mark;
2862 D(fprintf(stderr, "%*c%s global_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2863 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'global' ','.NAME+"));
2864 }
2865 _res = NULL;
2866 done:
2867 D(p->level--);
2868 return _res;
2869}
2870
2871// nonlocal_stmt: 'nonlocal' ','.NAME+
2872static stmt_ty
2873nonlocal_stmt_rule(Parser *p)
2874{
2875 D(p->level++);
2876 if (p->error_indicator) {
2877 D(p->level--);
2878 return NULL;
2879 }
2880 stmt_ty _res = NULL;
2881 int _mark = p->mark;
2882 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2883 p->error_indicator = 1;
2884 D(p->level--);
2885 return NULL;
2886 }
2887 int _start_lineno = p->tokens[_mark]->lineno;
2888 UNUSED(_start_lineno); // Only used by EXTRA macro
2889 int _start_col_offset = p->tokens[_mark]->col_offset;
2890 UNUSED(_start_col_offset); // Only used by EXTRA macro
2891 { // 'nonlocal' ','.NAME+
2892 if (p->error_indicator) {
2893 D(p->level--);
2894 return NULL;
2895 }
2896 D(fprintf(stderr, "%*c> nonlocal_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'nonlocal' ','.NAME+"));
2897 Token * _keyword;
Pablo Galindoa5634c42020-09-16 19:42:00 +01002898 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002899 if (
2900 (_keyword = _PyPegen_expect_token(p, 509)) // token='nonlocal'
2901 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01002902 (a = (asdl_expr_seq*)_gather_27_rule(p)) // ','.NAME+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002903 )
2904 {
2905 D(fprintf(stderr, "%*c+ nonlocal_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'nonlocal' ','.NAME+"));
2906 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2907 if (_token == NULL) {
2908 D(p->level--);
2909 return NULL;
2910 }
2911 int _end_lineno = _token->end_lineno;
2912 UNUSED(_end_lineno); // Only used by EXTRA macro
2913 int _end_col_offset = _token->end_col_offset;
2914 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002915 _res = _PyAST_Nonlocal ( CHECK ( asdl_identifier_seq * , _PyPegen_map_names_to_ids ( p , a ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002916 if (_res == NULL && PyErr_Occurred()) {
2917 p->error_indicator = 1;
2918 D(p->level--);
2919 return NULL;
2920 }
2921 goto done;
2922 }
2923 p->mark = _mark;
2924 D(fprintf(stderr, "%*c%s nonlocal_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2925 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'nonlocal' ','.NAME+"));
2926 }
2927 _res = NULL;
2928 done:
2929 D(p->level--);
2930 return _res;
2931}
2932
2933// yield_stmt: yield_expr
2934static stmt_ty
2935yield_stmt_rule(Parser *p)
2936{
2937 D(p->level++);
2938 if (p->error_indicator) {
2939 D(p->level--);
2940 return NULL;
2941 }
2942 stmt_ty _res = NULL;
2943 int _mark = p->mark;
2944 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2945 p->error_indicator = 1;
2946 D(p->level--);
2947 return NULL;
2948 }
2949 int _start_lineno = p->tokens[_mark]->lineno;
2950 UNUSED(_start_lineno); // Only used by EXTRA macro
2951 int _start_col_offset = p->tokens[_mark]->col_offset;
2952 UNUSED(_start_col_offset); // Only used by EXTRA macro
2953 { // yield_expr
2954 if (p->error_indicator) {
2955 D(p->level--);
2956 return NULL;
2957 }
2958 D(fprintf(stderr, "%*c> yield_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
2959 expr_ty y;
2960 if (
2961 (y = yield_expr_rule(p)) // yield_expr
2962 )
2963 {
2964 D(fprintf(stderr, "%*c+ yield_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
2965 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2966 if (_token == NULL) {
2967 D(p->level--);
2968 return NULL;
2969 }
2970 int _end_lineno = _token->end_lineno;
2971 UNUSED(_end_lineno); // Only used by EXTRA macro
2972 int _end_col_offset = _token->end_col_offset;
2973 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002974 _res = _PyAST_Expr ( y , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002975 if (_res == NULL && PyErr_Occurred()) {
2976 p->error_indicator = 1;
2977 D(p->level--);
2978 return NULL;
2979 }
2980 goto done;
2981 }
2982 p->mark = _mark;
2983 D(fprintf(stderr, "%*c%s yield_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2984 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
2985 }
2986 _res = NULL;
2987 done:
2988 D(p->level--);
2989 return _res;
2990}
2991
2992// assert_stmt: 'assert' expression [',' expression]
2993static stmt_ty
2994assert_stmt_rule(Parser *p)
2995{
2996 D(p->level++);
2997 if (p->error_indicator) {
2998 D(p->level--);
2999 return NULL;
3000 }
3001 stmt_ty _res = NULL;
3002 int _mark = p->mark;
3003 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3004 p->error_indicator = 1;
3005 D(p->level--);
3006 return NULL;
3007 }
3008 int _start_lineno = p->tokens[_mark]->lineno;
3009 UNUSED(_start_lineno); // Only used by EXTRA macro
3010 int _start_col_offset = p->tokens[_mark]->col_offset;
3011 UNUSED(_start_col_offset); // Only used by EXTRA macro
3012 { // 'assert' expression [',' expression]
3013 if (p->error_indicator) {
3014 D(p->level--);
3015 return NULL;
3016 }
3017 D(fprintf(stderr, "%*c> assert_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'assert' expression [',' expression]"));
3018 Token * _keyword;
3019 expr_ty a;
3020 void *b;
3021 if (
3022 (_keyword = _PyPegen_expect_token(p, 505)) // token='assert'
3023 &&
3024 (a = expression_rule(p)) // expression
3025 &&
3026 (b = _tmp_29_rule(p), 1) // [',' expression]
3027 )
3028 {
3029 D(fprintf(stderr, "%*c+ assert_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'assert' expression [',' expression]"));
3030 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3031 if (_token == NULL) {
3032 D(p->level--);
3033 return NULL;
3034 }
3035 int _end_lineno = _token->end_lineno;
3036 UNUSED(_end_lineno); // Only used by EXTRA macro
3037 int _end_col_offset = _token->end_col_offset;
3038 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02003039 _res = _PyAST_Assert ( a , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003040 if (_res == NULL && PyErr_Occurred()) {
3041 p->error_indicator = 1;
3042 D(p->level--);
3043 return NULL;
3044 }
3045 goto done;
3046 }
3047 p->mark = _mark;
3048 D(fprintf(stderr, "%*c%s assert_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3049 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'assert' expression [',' expression]"));
3050 }
3051 _res = NULL;
3052 done:
3053 D(p->level--);
3054 return _res;
3055}
3056
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003057// del_stmt: 'del' del_targets &(';' | NEWLINE) | invalid_del_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003058static stmt_ty
3059del_stmt_rule(Parser *p)
3060{
3061 D(p->level++);
3062 if (p->error_indicator) {
3063 D(p->level--);
3064 return NULL;
3065 }
3066 stmt_ty _res = NULL;
3067 int _mark = p->mark;
3068 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3069 p->error_indicator = 1;
3070 D(p->level--);
3071 return NULL;
3072 }
3073 int _start_lineno = p->tokens[_mark]->lineno;
3074 UNUSED(_start_lineno); // Only used by EXTRA macro
3075 int _start_col_offset = p->tokens[_mark]->col_offset;
3076 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003077 { // 'del' del_targets &(';' | NEWLINE)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003078 if (p->error_indicator) {
3079 D(p->level--);
3080 return NULL;
3081 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003082 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 +01003083 Token * _keyword;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003084 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003085 if (
3086 (_keyword = _PyPegen_expect_token(p, 503)) // token='del'
3087 &&
3088 (a = del_targets_rule(p)) // del_targets
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003089 &&
3090 _PyPegen_lookahead(1, _tmp_30_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003091 )
3092 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003093 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 +01003094 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3095 if (_token == NULL) {
3096 D(p->level--);
3097 return NULL;
3098 }
3099 int _end_lineno = _token->end_lineno;
3100 UNUSED(_end_lineno); // Only used by EXTRA macro
3101 int _end_col_offset = _token->end_col_offset;
3102 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02003103 _res = _PyAST_Delete ( a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003104 if (_res == NULL && PyErr_Occurred()) {
3105 p->error_indicator = 1;
3106 D(p->level--);
3107 return NULL;
3108 }
3109 goto done;
3110 }
3111 p->mark = _mark;
3112 D(fprintf(stderr, "%*c%s del_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003113 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'del' del_targets &(';' | NEWLINE)"));
3114 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02003115 if (p->call_invalid_rules) { // invalid_del_stmt
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003116 if (p->error_indicator) {
3117 D(p->level--);
3118 return NULL;
3119 }
3120 D(fprintf(stderr, "%*c> del_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_del_stmt"));
3121 void *invalid_del_stmt_var;
3122 if (
3123 (invalid_del_stmt_var = invalid_del_stmt_rule(p)) // invalid_del_stmt
3124 )
3125 {
3126 D(fprintf(stderr, "%*c+ del_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_del_stmt"));
3127 _res = invalid_del_stmt_var;
3128 goto done;
3129 }
3130 p->mark = _mark;
3131 D(fprintf(stderr, "%*c%s del_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3132 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_del_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003133 }
3134 _res = NULL;
3135 done:
3136 D(p->level--);
3137 return _res;
3138}
3139
3140// import_stmt: import_name | import_from
3141static stmt_ty
3142import_stmt_rule(Parser *p)
3143{
3144 D(p->level++);
3145 if (p->error_indicator) {
3146 D(p->level--);
3147 return NULL;
3148 }
3149 stmt_ty _res = NULL;
3150 int _mark = p->mark;
3151 { // import_name
3152 if (p->error_indicator) {
3153 D(p->level--);
3154 return NULL;
3155 }
3156 D(fprintf(stderr, "%*c> import_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "import_name"));
3157 stmt_ty import_name_var;
3158 if (
3159 (import_name_var = import_name_rule(p)) // import_name
3160 )
3161 {
3162 D(fprintf(stderr, "%*c+ import_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_name"));
3163 _res = import_name_var;
3164 goto done;
3165 }
3166 p->mark = _mark;
3167 D(fprintf(stderr, "%*c%s import_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3168 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_name"));
3169 }
3170 { // import_from
3171 if (p->error_indicator) {
3172 D(p->level--);
3173 return NULL;
3174 }
3175 D(fprintf(stderr, "%*c> import_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "import_from"));
3176 stmt_ty import_from_var;
3177 if (
3178 (import_from_var = import_from_rule(p)) // import_from
3179 )
3180 {
3181 D(fprintf(stderr, "%*c+ import_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_from"));
3182 _res = import_from_var;
3183 goto done;
3184 }
3185 p->mark = _mark;
3186 D(fprintf(stderr, "%*c%s import_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3187 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from"));
3188 }
3189 _res = NULL;
3190 done:
3191 D(p->level--);
3192 return _res;
3193}
3194
3195// import_name: 'import' dotted_as_names
3196static stmt_ty
3197import_name_rule(Parser *p)
3198{
3199 D(p->level++);
3200 if (p->error_indicator) {
3201 D(p->level--);
3202 return NULL;
3203 }
3204 stmt_ty _res = NULL;
3205 int _mark = p->mark;
3206 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3207 p->error_indicator = 1;
3208 D(p->level--);
3209 return NULL;
3210 }
3211 int _start_lineno = p->tokens[_mark]->lineno;
3212 UNUSED(_start_lineno); // Only used by EXTRA macro
3213 int _start_col_offset = p->tokens[_mark]->col_offset;
3214 UNUSED(_start_col_offset); // Only used by EXTRA macro
3215 { // 'import' dotted_as_names
3216 if (p->error_indicator) {
3217 D(p->level--);
3218 return NULL;
3219 }
3220 D(fprintf(stderr, "%*c> import_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'import' dotted_as_names"));
3221 Token * _keyword;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003222 asdl_alias_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003223 if (
3224 (_keyword = _PyPegen_expect_token(p, 513)) // token='import'
3225 &&
3226 (a = dotted_as_names_rule(p)) // dotted_as_names
3227 )
3228 {
3229 D(fprintf(stderr, "%*c+ import_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'import' dotted_as_names"));
3230 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3231 if (_token == NULL) {
3232 D(p->level--);
3233 return NULL;
3234 }
3235 int _end_lineno = _token->end_lineno;
3236 UNUSED(_end_lineno); // Only used by EXTRA macro
3237 int _end_col_offset = _token->end_col_offset;
3238 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02003239 _res = _PyAST_Import ( a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003240 if (_res == NULL && PyErr_Occurred()) {
3241 p->error_indicator = 1;
3242 D(p->level--);
3243 return NULL;
3244 }
3245 goto done;
3246 }
3247 p->mark = _mark;
3248 D(fprintf(stderr, "%*c%s import_name[%d-%d]: %s failed!\n", p->level, ' ',
3249 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'import' dotted_as_names"));
3250 }
3251 _res = NULL;
3252 done:
3253 D(p->level--);
3254 return _res;
3255}
3256
3257// import_from:
3258// | 'from' (('.' | '...'))* dotted_name 'import' import_from_targets
3259// | 'from' (('.' | '...'))+ 'import' import_from_targets
3260static stmt_ty
3261import_from_rule(Parser *p)
3262{
3263 D(p->level++);
3264 if (p->error_indicator) {
3265 D(p->level--);
3266 return NULL;
3267 }
3268 stmt_ty _res = NULL;
3269 int _mark = p->mark;
3270 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3271 p->error_indicator = 1;
3272 D(p->level--);
3273 return NULL;
3274 }
3275 int _start_lineno = p->tokens[_mark]->lineno;
3276 UNUSED(_start_lineno); // Only used by EXTRA macro
3277 int _start_col_offset = p->tokens[_mark]->col_offset;
3278 UNUSED(_start_col_offset); // Only used by EXTRA macro
3279 { // 'from' (('.' | '...'))* dotted_name 'import' import_from_targets
3280 if (p->error_indicator) {
3281 D(p->level--);
3282 return NULL;
3283 }
3284 D(fprintf(stderr, "%*c> import_from[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from' (('.' | '...'))* dotted_name 'import' import_from_targets"));
3285 Token * _keyword;
3286 Token * _keyword_1;
3287 asdl_seq * a;
3288 expr_ty b;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003289 asdl_alias_seq* c;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003290 if (
3291 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
3292 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003293 (a = _loop0_31_rule(p)) // (('.' | '...'))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003294 &&
3295 (b = dotted_name_rule(p)) // dotted_name
3296 &&
3297 (_keyword_1 = _PyPegen_expect_token(p, 513)) // token='import'
3298 &&
3299 (c = import_from_targets_rule(p)) // import_from_targets
3300 )
3301 {
3302 D(fprintf(stderr, "%*c+ import_from[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'from' (('.' | '...'))* dotted_name 'import' import_from_targets"));
3303 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3304 if (_token == NULL) {
3305 D(p->level--);
3306 return NULL;
3307 }
3308 int _end_lineno = _token->end_lineno;
3309 UNUSED(_end_lineno); // Only used by EXTRA macro
3310 int _end_col_offset = _token->end_col_offset;
3311 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02003312 _res = _PyAST_ImportFrom ( b -> v . Name . id , c , _PyPegen_seq_count_dots ( a ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003313 if (_res == NULL && PyErr_Occurred()) {
3314 p->error_indicator = 1;
3315 D(p->level--);
3316 return NULL;
3317 }
3318 goto done;
3319 }
3320 p->mark = _mark;
3321 D(fprintf(stderr, "%*c%s import_from[%d-%d]: %s failed!\n", p->level, ' ',
3322 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from' (('.' | '...'))* dotted_name 'import' import_from_targets"));
3323 }
3324 { // 'from' (('.' | '...'))+ 'import' import_from_targets
3325 if (p->error_indicator) {
3326 D(p->level--);
3327 return NULL;
3328 }
3329 D(fprintf(stderr, "%*c> import_from[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from' (('.' | '...'))+ 'import' import_from_targets"));
3330 Token * _keyword;
3331 Token * _keyword_1;
3332 asdl_seq * a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003333 asdl_alias_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003334 if (
3335 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
3336 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003337 (a = _loop1_32_rule(p)) // (('.' | '...'))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003338 &&
3339 (_keyword_1 = _PyPegen_expect_token(p, 513)) // token='import'
3340 &&
3341 (b = import_from_targets_rule(p)) // import_from_targets
3342 )
3343 {
3344 D(fprintf(stderr, "%*c+ import_from[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'from' (('.' | '...'))+ 'import' import_from_targets"));
3345 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3346 if (_token == NULL) {
3347 D(p->level--);
3348 return NULL;
3349 }
3350 int _end_lineno = _token->end_lineno;
3351 UNUSED(_end_lineno); // Only used by EXTRA macro
3352 int _end_col_offset = _token->end_col_offset;
3353 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02003354 _res = _PyAST_ImportFrom ( NULL , b , _PyPegen_seq_count_dots ( a ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003355 if (_res == NULL && PyErr_Occurred()) {
3356 p->error_indicator = 1;
3357 D(p->level--);
3358 return NULL;
3359 }
3360 goto done;
3361 }
3362 p->mark = _mark;
3363 D(fprintf(stderr, "%*c%s import_from[%d-%d]: %s failed!\n", p->level, ' ',
3364 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from' (('.' | '...'))+ 'import' import_from_targets"));
3365 }
3366 _res = NULL;
3367 done:
3368 D(p->level--);
3369 return _res;
3370}
3371
3372// import_from_targets:
3373// | '(' import_from_as_names ','? ')'
3374// | import_from_as_names !','
3375// | '*'
3376// | invalid_import_from_targets
Pablo Galindoa5634c42020-09-16 19:42:00 +01003377static asdl_alias_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003378import_from_targets_rule(Parser *p)
3379{
3380 D(p->level++);
3381 if (p->error_indicator) {
3382 D(p->level--);
3383 return NULL;
3384 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01003385 asdl_alias_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003386 int _mark = p->mark;
Matthew Suozzo75a06f02021-04-10 16:56:28 -04003387 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3388 p->error_indicator = 1;
3389 D(p->level--);
3390 return NULL;
3391 }
3392 int _start_lineno = p->tokens[_mark]->lineno;
3393 UNUSED(_start_lineno); // Only used by EXTRA macro
3394 int _start_col_offset = p->tokens[_mark]->col_offset;
3395 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003396 { // '(' import_from_as_names ','? ')'
3397 if (p->error_indicator) {
3398 D(p->level--);
3399 return NULL;
3400 }
3401 D(fprintf(stderr, "%*c> import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' import_from_as_names ','? ')'"));
3402 Token * _literal;
3403 Token * _literal_1;
3404 void *_opt_var;
3405 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +01003406 asdl_alias_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003407 if (
3408 (_literal = _PyPegen_expect_token(p, 7)) // token='('
3409 &&
3410 (a = import_from_as_names_rule(p)) // import_from_as_names
3411 &&
3412 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
3413 &&
3414 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
3415 )
3416 {
3417 D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' import_from_as_names ','? ')'"));
3418 _res = a;
3419 if (_res == NULL && PyErr_Occurred()) {
3420 p->error_indicator = 1;
3421 D(p->level--);
3422 return NULL;
3423 }
3424 goto done;
3425 }
3426 p->mark = _mark;
3427 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3428 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' import_from_as_names ','? ')'"));
3429 }
3430 { // import_from_as_names !','
3431 if (p->error_indicator) {
3432 D(p->level--);
3433 return NULL;
3434 }
3435 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 +01003436 asdl_alias_seq* import_from_as_names_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003437 if (
3438 (import_from_as_names_var = import_from_as_names_rule(p)) // import_from_as_names
3439 &&
3440 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 12) // token=','
3441 )
3442 {
3443 D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_from_as_names !','"));
3444 _res = import_from_as_names_var;
3445 goto done;
3446 }
3447 p->mark = _mark;
3448 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3449 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from_as_names !','"));
3450 }
3451 { // '*'
3452 if (p->error_indicator) {
3453 D(p->level--);
3454 return NULL;
3455 }
3456 D(fprintf(stderr, "%*c> import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*'"));
3457 Token * _literal;
3458 if (
3459 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
3460 )
3461 {
3462 D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*'"));
Matthew Suozzo75a06f02021-04-10 16:56:28 -04003463 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3464 if (_token == NULL) {
3465 D(p->level--);
3466 return NULL;
3467 }
3468 int _end_lineno = _token->end_lineno;
3469 UNUSED(_end_lineno); // Only used by EXTRA macro
3470 int _end_col_offset = _token->end_col_offset;
3471 UNUSED(_end_col_offset); // Only used by EXTRA macro
3472 _res = ( asdl_alias_seq * ) _PyPegen_singleton_seq ( p , CHECK ( alias_ty , _PyPegen_alias_for_star ( p , EXTRA ) ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003473 if (_res == NULL && PyErr_Occurred()) {
3474 p->error_indicator = 1;
3475 D(p->level--);
3476 return NULL;
3477 }
3478 goto done;
3479 }
3480 p->mark = _mark;
3481 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3482 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*'"));
3483 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02003484 if (p->call_invalid_rules) { // invalid_import_from_targets
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003485 if (p->error_indicator) {
3486 D(p->level--);
3487 return NULL;
3488 }
3489 D(fprintf(stderr, "%*c> import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_import_from_targets"));
3490 void *invalid_import_from_targets_var;
3491 if (
3492 (invalid_import_from_targets_var = invalid_import_from_targets_rule(p)) // invalid_import_from_targets
3493 )
3494 {
3495 D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_import_from_targets"));
3496 _res = invalid_import_from_targets_var;
3497 goto done;
3498 }
3499 p->mark = _mark;
3500 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3501 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_import_from_targets"));
3502 }
3503 _res = NULL;
3504 done:
3505 D(p->level--);
3506 return _res;
3507}
3508
3509// import_from_as_names: ','.import_from_as_name+
Pablo Galindoa5634c42020-09-16 19:42:00 +01003510static asdl_alias_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003511import_from_as_names_rule(Parser *p)
3512{
3513 D(p->level++);
3514 if (p->error_indicator) {
3515 D(p->level--);
3516 return NULL;
3517 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01003518 asdl_alias_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003519 int _mark = p->mark;
3520 { // ','.import_from_as_name+
3521 if (p->error_indicator) {
3522 D(p->level--);
3523 return NULL;
3524 }
3525 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 +01003526 asdl_alias_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003527 if (
Pablo Galindoa5634c42020-09-16 19:42:00 +01003528 (a = (asdl_alias_seq*)_gather_33_rule(p)) // ','.import_from_as_name+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003529 )
3530 {
3531 D(fprintf(stderr, "%*c+ import_from_as_names[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.import_from_as_name+"));
3532 _res = a;
3533 if (_res == NULL && PyErr_Occurred()) {
3534 p->error_indicator = 1;
3535 D(p->level--);
3536 return NULL;
3537 }
3538 goto done;
3539 }
3540 p->mark = _mark;
3541 D(fprintf(stderr, "%*c%s import_from_as_names[%d-%d]: %s failed!\n", p->level, ' ',
3542 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.import_from_as_name+"));
3543 }
3544 _res = NULL;
3545 done:
3546 D(p->level--);
3547 return _res;
3548}
3549
3550// import_from_as_name: NAME ['as' NAME]
3551static alias_ty
3552import_from_as_name_rule(Parser *p)
3553{
3554 D(p->level++);
3555 if (p->error_indicator) {
3556 D(p->level--);
3557 return NULL;
3558 }
3559 alias_ty _res = NULL;
3560 int _mark = p->mark;
Matthew Suozzo75a06f02021-04-10 16:56:28 -04003561 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3562 p->error_indicator = 1;
3563 D(p->level--);
3564 return NULL;
3565 }
3566 int _start_lineno = p->tokens[_mark]->lineno;
3567 UNUSED(_start_lineno); // Only used by EXTRA macro
3568 int _start_col_offset = p->tokens[_mark]->col_offset;
3569 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003570 { // NAME ['as' NAME]
3571 if (p->error_indicator) {
3572 D(p->level--);
3573 return NULL;
3574 }
3575 D(fprintf(stderr, "%*c> import_from_as_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME ['as' NAME]"));
3576 expr_ty a;
3577 void *b;
3578 if (
3579 (a = _PyPegen_name_token(p)) // NAME
3580 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003581 (b = _tmp_35_rule(p), 1) // ['as' NAME]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003582 )
3583 {
3584 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 -04003585 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3586 if (_token == NULL) {
3587 D(p->level--);
3588 return NULL;
3589 }
3590 int _end_lineno = _token->end_lineno;
3591 UNUSED(_end_lineno); // Only used by EXTRA macro
3592 int _end_col_offset = _token->end_col_offset;
3593 UNUSED(_end_col_offset); // Only used by EXTRA macro
3594 _res = _PyAST_alias ( a -> v . Name . id , ( b ) ? ( ( expr_ty ) b ) -> v . Name . id : NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003595 if (_res == NULL && PyErr_Occurred()) {
3596 p->error_indicator = 1;
3597 D(p->level--);
3598 return NULL;
3599 }
3600 goto done;
3601 }
3602 p->mark = _mark;
3603 D(fprintf(stderr, "%*c%s import_from_as_name[%d-%d]: %s failed!\n", p->level, ' ',
3604 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME ['as' NAME]"));
3605 }
3606 _res = NULL;
3607 done:
3608 D(p->level--);
3609 return _res;
3610}
3611
3612// dotted_as_names: ','.dotted_as_name+
Pablo Galindoa5634c42020-09-16 19:42:00 +01003613static asdl_alias_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003614dotted_as_names_rule(Parser *p)
3615{
3616 D(p->level++);
3617 if (p->error_indicator) {
3618 D(p->level--);
3619 return NULL;
3620 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01003621 asdl_alias_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003622 int _mark = p->mark;
3623 { // ','.dotted_as_name+
3624 if (p->error_indicator) {
3625 D(p->level--);
3626 return NULL;
3627 }
3628 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 +01003629 asdl_alias_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003630 if (
Pablo Galindoa5634c42020-09-16 19:42:00 +01003631 (a = (asdl_alias_seq*)_gather_36_rule(p)) // ','.dotted_as_name+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003632 )
3633 {
3634 D(fprintf(stderr, "%*c+ dotted_as_names[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.dotted_as_name+"));
3635 _res = a;
3636 if (_res == NULL && PyErr_Occurred()) {
3637 p->error_indicator = 1;
3638 D(p->level--);
3639 return NULL;
3640 }
3641 goto done;
3642 }
3643 p->mark = _mark;
3644 D(fprintf(stderr, "%*c%s dotted_as_names[%d-%d]: %s failed!\n", p->level, ' ',
3645 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.dotted_as_name+"));
3646 }
3647 _res = NULL;
3648 done:
3649 D(p->level--);
3650 return _res;
3651}
3652
3653// dotted_as_name: dotted_name ['as' NAME]
3654static alias_ty
3655dotted_as_name_rule(Parser *p)
3656{
3657 D(p->level++);
3658 if (p->error_indicator) {
3659 D(p->level--);
3660 return NULL;
3661 }
3662 alias_ty _res = NULL;
3663 int _mark = p->mark;
Matthew Suozzo75a06f02021-04-10 16:56:28 -04003664 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3665 p->error_indicator = 1;
3666 D(p->level--);
3667 return NULL;
3668 }
3669 int _start_lineno = p->tokens[_mark]->lineno;
3670 UNUSED(_start_lineno); // Only used by EXTRA macro
3671 int _start_col_offset = p->tokens[_mark]->col_offset;
3672 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003673 { // dotted_name ['as' NAME]
3674 if (p->error_indicator) {
3675 D(p->level--);
3676 return NULL;
3677 }
3678 D(fprintf(stderr, "%*c> dotted_as_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dotted_name ['as' NAME]"));
3679 expr_ty a;
3680 void *b;
3681 if (
3682 (a = dotted_name_rule(p)) // dotted_name
3683 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003684 (b = _tmp_38_rule(p), 1) // ['as' NAME]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003685 )
3686 {
3687 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 -04003688 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3689 if (_token == NULL) {
3690 D(p->level--);
3691 return NULL;
3692 }
3693 int _end_lineno = _token->end_lineno;
3694 UNUSED(_end_lineno); // Only used by EXTRA macro
3695 int _end_col_offset = _token->end_col_offset;
3696 UNUSED(_end_col_offset); // Only used by EXTRA macro
3697 _res = _PyAST_alias ( a -> v . Name . id , ( b ) ? ( ( expr_ty ) b ) -> v . Name . id : NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003698 if (_res == NULL && PyErr_Occurred()) {
3699 p->error_indicator = 1;
3700 D(p->level--);
3701 return NULL;
3702 }
3703 goto done;
3704 }
3705 p->mark = _mark;
3706 D(fprintf(stderr, "%*c%s dotted_as_name[%d-%d]: %s failed!\n", p->level, ' ',
3707 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dotted_name ['as' NAME]"));
3708 }
3709 _res = NULL;
3710 done:
3711 D(p->level--);
3712 return _res;
3713}
3714
3715// Left-recursive
3716// dotted_name: dotted_name '.' NAME | NAME
3717static expr_ty dotted_name_raw(Parser *);
3718static expr_ty
3719dotted_name_rule(Parser *p)
3720{
3721 D(p->level++);
3722 expr_ty _res = NULL;
3723 if (_PyPegen_is_memoized(p, dotted_name_type, &_res)) {
3724 D(p->level--);
3725 return _res;
3726 }
3727 int _mark = p->mark;
3728 int _resmark = p->mark;
3729 while (1) {
3730 int tmpvar_0 = _PyPegen_update_memo(p, _mark, dotted_name_type, _res);
3731 if (tmpvar_0) {
3732 D(p->level--);
3733 return _res;
3734 }
3735 p->mark = _mark;
3736 void *_raw = dotted_name_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +02003737 if (p->error_indicator)
3738 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003739 if (_raw == NULL || p->mark <= _resmark)
3740 break;
3741 _resmark = p->mark;
3742 _res = _raw;
3743 }
3744 p->mark = _resmark;
3745 D(p->level--);
3746 return _res;
3747}
3748static expr_ty
3749dotted_name_raw(Parser *p)
3750{
3751 D(p->level++);
3752 if (p->error_indicator) {
3753 D(p->level--);
3754 return NULL;
3755 }
3756 expr_ty _res = NULL;
3757 int _mark = p->mark;
3758 { // dotted_name '.' NAME
3759 if (p->error_indicator) {
3760 D(p->level--);
3761 return NULL;
3762 }
3763 D(fprintf(stderr, "%*c> dotted_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dotted_name '.' NAME"));
3764 Token * _literal;
3765 expr_ty a;
3766 expr_ty b;
3767 if (
3768 (a = dotted_name_rule(p)) // dotted_name
3769 &&
3770 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
3771 &&
3772 (b = _PyPegen_name_token(p)) // NAME
3773 )
3774 {
3775 D(fprintf(stderr, "%*c+ dotted_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dotted_name '.' NAME"));
3776 _res = _PyPegen_join_names_with_dot ( p , a , b );
3777 if (_res == NULL && PyErr_Occurred()) {
3778 p->error_indicator = 1;
3779 D(p->level--);
3780 return NULL;
3781 }
3782 goto done;
3783 }
3784 p->mark = _mark;
3785 D(fprintf(stderr, "%*c%s dotted_name[%d-%d]: %s failed!\n", p->level, ' ',
3786 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dotted_name '.' NAME"));
3787 }
3788 { // NAME
3789 if (p->error_indicator) {
3790 D(p->level--);
3791 return NULL;
3792 }
3793 D(fprintf(stderr, "%*c> dotted_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
3794 expr_ty name_var;
3795 if (
3796 (name_var = _PyPegen_name_token(p)) // NAME
3797 )
3798 {
3799 D(fprintf(stderr, "%*c+ dotted_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
3800 _res = name_var;
3801 goto done;
3802 }
3803 p->mark = _mark;
3804 D(fprintf(stderr, "%*c%s dotted_name[%d-%d]: %s failed!\n", p->level, ' ',
3805 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
3806 }
3807 _res = NULL;
3808 done:
3809 D(p->level--);
3810 return _res;
3811}
3812
3813// if_stmt:
Pablo Galindo56c95df2021-04-21 15:28:21 +01003814// | invalid_if_stmt
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003815// | 'if' named_expression ':' block elif_stmt
3816// | 'if' named_expression ':' block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003817static stmt_ty
3818if_stmt_rule(Parser *p)
3819{
3820 D(p->level++);
3821 if (p->error_indicator) {
3822 D(p->level--);
3823 return NULL;
3824 }
3825 stmt_ty _res = NULL;
3826 int _mark = p->mark;
3827 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3828 p->error_indicator = 1;
3829 D(p->level--);
3830 return NULL;
3831 }
3832 int _start_lineno = p->tokens[_mark]->lineno;
3833 UNUSED(_start_lineno); // Only used by EXTRA macro
3834 int _start_col_offset = p->tokens[_mark]->col_offset;
3835 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo56c95df2021-04-21 15:28:21 +01003836 if (p->call_invalid_rules) { // invalid_if_stmt
3837 if (p->error_indicator) {
3838 D(p->level--);
3839 return NULL;
3840 }
3841 D(fprintf(stderr, "%*c> if_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_if_stmt"));
3842 void *invalid_if_stmt_var;
3843 if (
3844 (invalid_if_stmt_var = invalid_if_stmt_rule(p)) // invalid_if_stmt
3845 )
3846 {
3847 D(fprintf(stderr, "%*c+ if_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_if_stmt"));
3848 _res = invalid_if_stmt_var;
3849 goto done;
3850 }
3851 p->mark = _mark;
3852 D(fprintf(stderr, "%*c%s if_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3853 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_if_stmt"));
3854 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003855 { // 'if' named_expression ':' block elif_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003856 if (p->error_indicator) {
3857 D(p->level--);
3858 return NULL;
3859 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003860 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 +01003861 Token * _keyword;
3862 Token * _literal;
3863 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003864 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003865 stmt_ty c;
3866 if (
3867 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
3868 &&
3869 (a = named_expression_rule(p)) // named_expression
3870 &&
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003871 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003872 &&
3873 (b = block_rule(p)) // block
3874 &&
3875 (c = elif_stmt_rule(p)) // elif_stmt
3876 )
3877 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003878 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 +01003879 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3880 if (_token == NULL) {
3881 D(p->level--);
3882 return NULL;
3883 }
3884 int _end_lineno = _token->end_lineno;
3885 UNUSED(_end_lineno); // Only used by EXTRA macro
3886 int _end_col_offset = _token->end_col_offset;
3887 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02003888 _res = _PyAST_If ( a , b , CHECK ( asdl_stmt_seq * , _PyPegen_singleton_seq ( p , c ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003889 if (_res == NULL && PyErr_Occurred()) {
3890 p->error_indicator = 1;
3891 D(p->level--);
3892 return NULL;
3893 }
3894 goto done;
3895 }
3896 p->mark = _mark;
3897 D(fprintf(stderr, "%*c%s if_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003898 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression ':' block elif_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003899 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003900 { // 'if' named_expression ':' block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003901 if (p->error_indicator) {
3902 D(p->level--);
3903 return NULL;
3904 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003905 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 +01003906 Token * _keyword;
3907 Token * _literal;
3908 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003909 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003910 void *c;
3911 if (
3912 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
3913 &&
3914 (a = named_expression_rule(p)) // named_expression
3915 &&
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003916 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003917 &&
3918 (b = block_rule(p)) // block
3919 &&
3920 (c = else_block_rule(p), 1) // else_block?
3921 )
3922 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003923 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 +01003924 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3925 if (_token == NULL) {
3926 D(p->level--);
3927 return NULL;
3928 }
3929 int _end_lineno = _token->end_lineno;
3930 UNUSED(_end_lineno); // Only used by EXTRA macro
3931 int _end_col_offset = _token->end_col_offset;
3932 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02003933 _res = _PyAST_If ( a , b , c , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003934 if (_res == NULL && PyErr_Occurred()) {
3935 p->error_indicator = 1;
3936 D(p->level--);
3937 return NULL;
3938 }
3939 goto done;
3940 }
3941 p->mark = _mark;
3942 D(fprintf(stderr, "%*c%s if_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003943 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression ':' block else_block?"));
3944 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003945 _res = NULL;
3946 done:
3947 D(p->level--);
3948 return _res;
3949}
3950
3951// elif_stmt:
Pablo Galindo56c95df2021-04-21 15:28:21 +01003952// | invalid_elif_stmt
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003953// | 'elif' named_expression ':' block elif_stmt
3954// | 'elif' named_expression ':' block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003955static stmt_ty
3956elif_stmt_rule(Parser *p)
3957{
3958 D(p->level++);
3959 if (p->error_indicator) {
3960 D(p->level--);
3961 return NULL;
3962 }
3963 stmt_ty _res = NULL;
3964 int _mark = p->mark;
3965 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3966 p->error_indicator = 1;
3967 D(p->level--);
3968 return NULL;
3969 }
3970 int _start_lineno = p->tokens[_mark]->lineno;
3971 UNUSED(_start_lineno); // Only used by EXTRA macro
3972 int _start_col_offset = p->tokens[_mark]->col_offset;
3973 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo56c95df2021-04-21 15:28:21 +01003974 if (p->call_invalid_rules) { // invalid_elif_stmt
3975 if (p->error_indicator) {
3976 D(p->level--);
3977 return NULL;
3978 }
3979 D(fprintf(stderr, "%*c> elif_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_elif_stmt"));
3980 void *invalid_elif_stmt_var;
3981 if (
3982 (invalid_elif_stmt_var = invalid_elif_stmt_rule(p)) // invalid_elif_stmt
3983 )
3984 {
3985 D(fprintf(stderr, "%*c+ elif_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_elif_stmt"));
3986 _res = invalid_elif_stmt_var;
3987 goto done;
3988 }
3989 p->mark = _mark;
3990 D(fprintf(stderr, "%*c%s elif_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3991 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_elif_stmt"));
3992 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003993 { // 'elif' named_expression ':' block elif_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003994 if (p->error_indicator) {
3995 D(p->level--);
3996 return NULL;
3997 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003998 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 +01003999 Token * _keyword;
4000 Token * _literal;
4001 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004002 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004003 stmt_ty c;
4004 if (
4005 (_keyword = _PyPegen_expect_token(p, 515)) // token='elif'
4006 &&
4007 (a = named_expression_rule(p)) // named_expression
4008 &&
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004009 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004010 &&
4011 (b = block_rule(p)) // block
4012 &&
4013 (c = elif_stmt_rule(p)) // elif_stmt
4014 )
4015 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004016 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 +01004017 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4018 if (_token == NULL) {
4019 D(p->level--);
4020 return NULL;
4021 }
4022 int _end_lineno = _token->end_lineno;
4023 UNUSED(_end_lineno); // Only used by EXTRA macro
4024 int _end_col_offset = _token->end_col_offset;
4025 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004026 _res = _PyAST_If ( a , b , CHECK ( asdl_stmt_seq * , _PyPegen_singleton_seq ( p , c ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004027 if (_res == NULL && PyErr_Occurred()) {
4028 p->error_indicator = 1;
4029 D(p->level--);
4030 return NULL;
4031 }
4032 goto done;
4033 }
4034 p->mark = _mark;
4035 D(fprintf(stderr, "%*c%s elif_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004036 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'elif' named_expression ':' block elif_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004037 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004038 { // 'elif' named_expression ':' block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004039 if (p->error_indicator) {
4040 D(p->level--);
4041 return NULL;
4042 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004043 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 +01004044 Token * _keyword;
4045 Token * _literal;
4046 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004047 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004048 void *c;
4049 if (
4050 (_keyword = _PyPegen_expect_token(p, 515)) // token='elif'
4051 &&
4052 (a = named_expression_rule(p)) // named_expression
4053 &&
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004054 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004055 &&
4056 (b = block_rule(p)) // block
4057 &&
4058 (c = else_block_rule(p), 1) // else_block?
4059 )
4060 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004061 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 +01004062 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4063 if (_token == NULL) {
4064 D(p->level--);
4065 return NULL;
4066 }
4067 int _end_lineno = _token->end_lineno;
4068 UNUSED(_end_lineno); // Only used by EXTRA macro
4069 int _end_col_offset = _token->end_col_offset;
4070 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004071 _res = _PyAST_If ( a , b , c , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004072 if (_res == NULL && PyErr_Occurred()) {
4073 p->error_indicator = 1;
4074 D(p->level--);
4075 return NULL;
4076 }
4077 goto done;
4078 }
4079 p->mark = _mark;
4080 D(fprintf(stderr, "%*c%s elif_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004081 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'elif' named_expression ':' block else_block?"));
4082 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004083 _res = NULL;
4084 done:
4085 D(p->level--);
4086 return _res;
4087}
4088
Pablo Galindo56c95df2021-04-21 15:28:21 +01004089// else_block: invalid_else_stmt | 'else' &&':' block
Pablo Galindoa5634c42020-09-16 19:42:00 +01004090static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004091else_block_rule(Parser *p)
4092{
4093 D(p->level++);
4094 if (p->error_indicator) {
4095 D(p->level--);
4096 return NULL;
4097 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01004098 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004099 int _mark = p->mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +01004100 if (p->call_invalid_rules) { // invalid_else_stmt
4101 if (p->error_indicator) {
4102 D(p->level--);
4103 return NULL;
4104 }
4105 D(fprintf(stderr, "%*c> else_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_else_stmt"));
4106 void *invalid_else_stmt_var;
4107 if (
4108 (invalid_else_stmt_var = invalid_else_stmt_rule(p)) // invalid_else_stmt
4109 )
4110 {
4111 D(fprintf(stderr, "%*c+ else_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_else_stmt"));
4112 _res = invalid_else_stmt_var;
4113 goto done;
4114 }
4115 p->mark = _mark;
4116 D(fprintf(stderr, "%*c%s else_block[%d-%d]: %s failed!\n", p->level, ' ',
4117 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_else_stmt"));
4118 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004119 { // 'else' &&':' block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004120 if (p->error_indicator) {
4121 D(p->level--);
4122 return NULL;
4123 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004124 D(fprintf(stderr, "%*c> else_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'else' &&':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004125 Token * _keyword;
4126 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004127 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004128 if (
4129 (_keyword = _PyPegen_expect_token(p, 516)) // token='else'
4130 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00004131 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004132 &&
4133 (b = block_rule(p)) // block
4134 )
4135 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00004136 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 +01004137 _res = b;
4138 if (_res == NULL && PyErr_Occurred()) {
4139 p->error_indicator = 1;
4140 D(p->level--);
4141 return NULL;
4142 }
4143 goto done;
4144 }
4145 p->mark = _mark;
4146 D(fprintf(stderr, "%*c%s else_block[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00004147 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'else' &&':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004148 }
4149 _res = NULL;
4150 done:
4151 D(p->level--);
4152 return _res;
4153}
4154
Pablo Galindo56c95df2021-04-21 15:28:21 +01004155// while_stmt: invalid_while_stmt | 'while' named_expression ':' block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004156static stmt_ty
4157while_stmt_rule(Parser *p)
4158{
4159 D(p->level++);
4160 if (p->error_indicator) {
4161 D(p->level--);
4162 return NULL;
4163 }
4164 stmt_ty _res = NULL;
4165 int _mark = p->mark;
4166 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4167 p->error_indicator = 1;
4168 D(p->level--);
4169 return NULL;
4170 }
4171 int _start_lineno = p->tokens[_mark]->lineno;
4172 UNUSED(_start_lineno); // Only used by EXTRA macro
4173 int _start_col_offset = p->tokens[_mark]->col_offset;
4174 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo56c95df2021-04-21 15:28:21 +01004175 if (p->call_invalid_rules) { // invalid_while_stmt
4176 if (p->error_indicator) {
4177 D(p->level--);
4178 return NULL;
4179 }
4180 D(fprintf(stderr, "%*c> while_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_while_stmt"));
4181 void *invalid_while_stmt_var;
4182 if (
4183 (invalid_while_stmt_var = invalid_while_stmt_rule(p)) // invalid_while_stmt
4184 )
4185 {
4186 D(fprintf(stderr, "%*c+ while_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_while_stmt"));
4187 _res = invalid_while_stmt_var;
4188 goto done;
4189 }
4190 p->mark = _mark;
4191 D(fprintf(stderr, "%*c%s while_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4192 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_while_stmt"));
4193 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004194 { // 'while' named_expression ':' block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004195 if (p->error_indicator) {
4196 D(p->level--);
4197 return NULL;
4198 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004199 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 +01004200 Token * _keyword;
4201 Token * _literal;
4202 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004203 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004204 void *c;
4205 if (
4206 (_keyword = _PyPegen_expect_token(p, 512)) // token='while'
4207 &&
4208 (a = named_expression_rule(p)) // named_expression
4209 &&
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004210 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004211 &&
4212 (b = block_rule(p)) // block
4213 &&
4214 (c = else_block_rule(p), 1) // else_block?
4215 )
4216 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004217 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 +01004218 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4219 if (_token == NULL) {
4220 D(p->level--);
4221 return NULL;
4222 }
4223 int _end_lineno = _token->end_lineno;
4224 UNUSED(_end_lineno); // Only used by EXTRA macro
4225 int _end_col_offset = _token->end_col_offset;
4226 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004227 _res = _PyAST_While ( a , b , c , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004228 if (_res == NULL && PyErr_Occurred()) {
4229 p->error_indicator = 1;
4230 D(p->level--);
4231 return NULL;
4232 }
4233 goto done;
4234 }
4235 p->mark = _mark;
4236 D(fprintf(stderr, "%*c%s while_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004237 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'while' named_expression ':' block else_block?"));
4238 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004239 _res = NULL;
4240 done:
4241 D(p->level--);
4242 return _res;
4243}
4244
4245// for_stmt:
Pablo Galindo56c95df2021-04-21 15:28:21 +01004246// | invalid_for_stmt
Pablo Galindo58fb1562021-02-02 19:54:22 +00004247// | 'for' star_targets 'in' ~ star_expressions &&':' TYPE_COMMENT? block else_block?
4248// | ASYNC 'for' star_targets 'in' ~ star_expressions &&':' TYPE_COMMENT? block else_block?
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004249// | invalid_for_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004250static stmt_ty
4251for_stmt_rule(Parser *p)
4252{
4253 D(p->level++);
4254 if (p->error_indicator) {
4255 D(p->level--);
4256 return NULL;
4257 }
4258 stmt_ty _res = NULL;
4259 int _mark = p->mark;
4260 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4261 p->error_indicator = 1;
4262 D(p->level--);
4263 return NULL;
4264 }
4265 int _start_lineno = p->tokens[_mark]->lineno;
4266 UNUSED(_start_lineno); // Only used by EXTRA macro
4267 int _start_col_offset = p->tokens[_mark]->col_offset;
4268 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo56c95df2021-04-21 15:28:21 +01004269 if (p->call_invalid_rules) { // invalid_for_stmt
4270 if (p->error_indicator) {
4271 D(p->level--);
4272 return NULL;
4273 }
4274 D(fprintf(stderr, "%*c> for_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_for_stmt"));
4275 void *invalid_for_stmt_var;
4276 if (
4277 (invalid_for_stmt_var = invalid_for_stmt_rule(p)) // invalid_for_stmt
4278 )
4279 {
4280 D(fprintf(stderr, "%*c+ for_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_for_stmt"));
4281 _res = invalid_for_stmt_var;
4282 goto done;
4283 }
4284 p->mark = _mark;
4285 D(fprintf(stderr, "%*c%s for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4286 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_for_stmt"));
4287 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004288 { // 'for' star_targets 'in' ~ star_expressions &&':' TYPE_COMMENT? block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004289 if (p->error_indicator) {
4290 D(p->level--);
4291 return NULL;
4292 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004293 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 +03004294 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004295 Token * _keyword;
4296 Token * _keyword_1;
4297 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004298 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004299 void *el;
4300 expr_ty ex;
4301 expr_ty t;
4302 void *tc;
4303 if (
4304 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
4305 &&
4306 (t = star_targets_rule(p)) // star_targets
4307 &&
4308 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
4309 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004310 (_cut_var = 1)
4311 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004312 (ex = star_expressions_rule(p)) // star_expressions
4313 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00004314 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004315 &&
4316 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
4317 &&
4318 (b = block_rule(p)) // block
4319 &&
4320 (el = else_block_rule(p), 1) // else_block?
4321 )
4322 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00004323 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 +01004324 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4325 if (_token == NULL) {
4326 D(p->level--);
4327 return NULL;
4328 }
4329 int _end_lineno = _token->end_lineno;
4330 UNUSED(_end_lineno); // Only used by EXTRA macro
4331 int _end_col_offset = _token->end_col_offset;
4332 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004333 _res = _PyAST_For ( t , ex , b , el , NEW_TYPE_COMMENT ( p , tc ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004334 if (_res == NULL && PyErr_Occurred()) {
4335 p->error_indicator = 1;
4336 D(p->level--);
4337 return NULL;
4338 }
4339 goto done;
4340 }
4341 p->mark = _mark;
4342 D(fprintf(stderr, "%*c%s for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00004343 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 +03004344 if (_cut_var) {
4345 D(p->level--);
4346 return NULL;
4347 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004348 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004349 { // ASYNC 'for' star_targets 'in' ~ star_expressions &&':' TYPE_COMMENT? block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004350 if (p->error_indicator) {
4351 D(p->level--);
4352 return NULL;
4353 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004354 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 +03004355 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004356 Token * _keyword;
4357 Token * _keyword_1;
4358 Token * _literal;
4359 Token * async_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004360 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004361 void *el;
4362 expr_ty ex;
4363 expr_ty t;
4364 void *tc;
4365 if (
4366 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
4367 &&
4368 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
4369 &&
4370 (t = star_targets_rule(p)) // star_targets
4371 &&
4372 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
4373 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004374 (_cut_var = 1)
4375 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004376 (ex = star_expressions_rule(p)) // star_expressions
4377 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00004378 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004379 &&
4380 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
4381 &&
4382 (b = block_rule(p)) // block
4383 &&
4384 (el = else_block_rule(p), 1) // else_block?
4385 )
4386 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00004387 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 +01004388 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4389 if (_token == NULL) {
4390 D(p->level--);
4391 return NULL;
4392 }
4393 int _end_lineno = _token->end_lineno;
4394 UNUSED(_end_lineno); // Only used by EXTRA macro
4395 int _end_col_offset = _token->end_col_offset;
4396 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004397 _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 +01004398 if (_res == NULL && PyErr_Occurred()) {
4399 p->error_indicator = 1;
4400 D(p->level--);
4401 return NULL;
4402 }
4403 goto done;
4404 }
4405 p->mark = _mark;
4406 D(fprintf(stderr, "%*c%s for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00004407 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 +03004408 if (_cut_var) {
4409 D(p->level--);
4410 return NULL;
4411 }
4412 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02004413 if (p->call_invalid_rules) { // invalid_for_target
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004414 if (p->error_indicator) {
4415 D(p->level--);
4416 return NULL;
4417 }
4418 D(fprintf(stderr, "%*c> for_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
4419 void *invalid_for_target_var;
4420 if (
4421 (invalid_for_target_var = invalid_for_target_rule(p)) // invalid_for_target
4422 )
4423 {
4424 D(fprintf(stderr, "%*c+ for_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
4425 _res = invalid_for_target_var;
4426 goto done;
4427 }
4428 p->mark = _mark;
4429 D(fprintf(stderr, "%*c%s for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4430 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_for_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004431 }
4432 _res = NULL;
4433 done:
4434 D(p->level--);
4435 return _res;
4436}
4437
4438// with_stmt:
Pablo Galindo56c95df2021-04-21 15:28:21 +01004439// | invalid_with_stmt_indent
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004440// | 'with' '(' ','.with_item+ ','? ')' ':' block
4441// | 'with' ','.with_item+ ':' TYPE_COMMENT? block
4442// | ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block
4443// | ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block
Pablo Galindo58fb1562021-02-02 19:54:22 +00004444// | invalid_with_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004445static stmt_ty
4446with_stmt_rule(Parser *p)
4447{
4448 D(p->level++);
4449 if (p->error_indicator) {
4450 D(p->level--);
4451 return NULL;
4452 }
4453 stmt_ty _res = NULL;
4454 int _mark = p->mark;
4455 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4456 p->error_indicator = 1;
4457 D(p->level--);
4458 return NULL;
4459 }
4460 int _start_lineno = p->tokens[_mark]->lineno;
4461 UNUSED(_start_lineno); // Only used by EXTRA macro
4462 int _start_col_offset = p->tokens[_mark]->col_offset;
4463 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo56c95df2021-04-21 15:28:21 +01004464 if (p->call_invalid_rules) { // invalid_with_stmt_indent
4465 if (p->error_indicator) {
4466 D(p->level--);
4467 return NULL;
4468 }
4469 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_with_stmt_indent"));
4470 void *invalid_with_stmt_indent_var;
4471 if (
4472 (invalid_with_stmt_indent_var = invalid_with_stmt_indent_rule(p)) // invalid_with_stmt_indent
4473 )
4474 {
4475 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_with_stmt_indent"));
4476 _res = invalid_with_stmt_indent_var;
4477 goto done;
4478 }
4479 p->mark = _mark;
4480 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4481 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_with_stmt_indent"));
4482 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004483 { // 'with' '(' ','.with_item+ ','? ')' ':' block
4484 if (p->error_indicator) {
4485 D(p->level--);
4486 return NULL;
4487 }
4488 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'with' '(' ','.with_item+ ','? ')' ':' block"));
4489 Token * _keyword;
4490 Token * _literal;
4491 Token * _literal_1;
4492 Token * _literal_2;
4493 void *_opt_var;
4494 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +01004495 asdl_withitem_seq* a;
4496 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004497 if (
4498 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
4499 &&
4500 (_literal = _PyPegen_expect_token(p, 7)) // token='('
4501 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01004502 (a = (asdl_withitem_seq*)_gather_39_rule(p)) // ','.with_item+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004503 &&
4504 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
4505 &&
4506 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
4507 &&
4508 (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':'
4509 &&
4510 (b = block_rule(p)) // block
4511 )
4512 {
4513 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'with' '(' ','.with_item+ ','? ')' ':' block"));
4514 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4515 if (_token == NULL) {
4516 D(p->level--);
4517 return NULL;
4518 }
4519 int _end_lineno = _token->end_lineno;
4520 UNUSED(_end_lineno); // Only used by EXTRA macro
4521 int _end_col_offset = _token->end_col_offset;
4522 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004523 _res = _PyAST_With ( a , b , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004524 if (_res == NULL && PyErr_Occurred()) {
4525 p->error_indicator = 1;
4526 D(p->level--);
4527 return NULL;
4528 }
4529 goto done;
4530 }
4531 p->mark = _mark;
4532 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4533 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'with' '(' ','.with_item+ ','? ')' ':' block"));
4534 }
4535 { // 'with' ','.with_item+ ':' TYPE_COMMENT? block
4536 if (p->error_indicator) {
4537 D(p->level--);
4538 return NULL;
4539 }
4540 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4541 Token * _keyword;
4542 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004543 asdl_withitem_seq* a;
4544 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004545 void *tc;
4546 if (
4547 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
4548 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01004549 (a = (asdl_withitem_seq*)_gather_41_rule(p)) // ','.with_item+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004550 &&
4551 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
4552 &&
4553 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
4554 &&
4555 (b = block_rule(p)) // block
4556 )
4557 {
4558 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4559 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4560 if (_token == NULL) {
4561 D(p->level--);
4562 return NULL;
4563 }
4564 int _end_lineno = _token->end_lineno;
4565 UNUSED(_end_lineno); // Only used by EXTRA macro
4566 int _end_col_offset = _token->end_col_offset;
4567 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004568 _res = _PyAST_With ( a , b , NEW_TYPE_COMMENT ( p , tc ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004569 if (_res == NULL && PyErr_Occurred()) {
4570 p->error_indicator = 1;
4571 D(p->level--);
4572 return NULL;
4573 }
4574 goto done;
4575 }
4576 p->mark = _mark;
4577 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4578 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4579 }
4580 { // ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block
4581 if (p->error_indicator) {
4582 D(p->level--);
4583 return NULL;
4584 }
4585 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block"));
4586 Token * _keyword;
4587 Token * _literal;
4588 Token * _literal_1;
4589 Token * _literal_2;
4590 void *_opt_var;
4591 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +01004592 asdl_withitem_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004593 Token * async_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004594 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004595 if (
4596 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
4597 &&
4598 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
4599 &&
4600 (_literal = _PyPegen_expect_token(p, 7)) // token='('
4601 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01004602 (a = (asdl_withitem_seq*)_gather_43_rule(p)) // ','.with_item+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004603 &&
4604 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
4605 &&
4606 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
4607 &&
4608 (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':'
4609 &&
4610 (b = block_rule(p)) // block
4611 )
4612 {
4613 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block"));
4614 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4615 if (_token == NULL) {
4616 D(p->level--);
4617 return NULL;
4618 }
4619 int _end_lineno = _token->end_lineno;
4620 UNUSED(_end_lineno); // Only used by EXTRA macro
4621 int _end_col_offset = _token->end_col_offset;
4622 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004623 _res = CHECK_VERSION ( stmt_ty , 5 , "Async with statements are" , _PyAST_AsyncWith ( a , b , NULL , EXTRA ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004624 if (_res == NULL && PyErr_Occurred()) {
4625 p->error_indicator = 1;
4626 D(p->level--);
4627 return NULL;
4628 }
4629 goto done;
4630 }
4631 p->mark = _mark;
4632 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4633 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block"));
4634 }
4635 { // ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block
4636 if (p->error_indicator) {
4637 D(p->level--);
4638 return NULL;
4639 }
4640 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4641 Token * _keyword;
4642 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004643 asdl_withitem_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004644 Token * async_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004645 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004646 void *tc;
4647 if (
4648 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
4649 &&
4650 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
4651 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01004652 (a = (asdl_withitem_seq*)_gather_45_rule(p)) // ','.with_item+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004653 &&
4654 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
4655 &&
4656 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
4657 &&
4658 (b = block_rule(p)) // block
4659 )
4660 {
4661 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4662 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4663 if (_token == NULL) {
4664 D(p->level--);
4665 return NULL;
4666 }
4667 int _end_lineno = _token->end_lineno;
4668 UNUSED(_end_lineno); // Only used by EXTRA macro
4669 int _end_col_offset = _token->end_col_offset;
4670 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004671 _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 +01004672 if (_res == NULL && PyErr_Occurred()) {
4673 p->error_indicator = 1;
4674 D(p->level--);
4675 return NULL;
4676 }
4677 goto done;
4678 }
4679 p->mark = _mark;
4680 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4681 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4682 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004683 if (p->call_invalid_rules) { // invalid_with_stmt
4684 if (p->error_indicator) {
4685 D(p->level--);
4686 return NULL;
4687 }
4688 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_with_stmt"));
4689 void *invalid_with_stmt_var;
4690 if (
4691 (invalid_with_stmt_var = invalid_with_stmt_rule(p)) // invalid_with_stmt
4692 )
4693 {
4694 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_with_stmt"));
4695 _res = invalid_with_stmt_var;
4696 goto done;
4697 }
4698 p->mark = _mark;
4699 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4700 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_with_stmt"));
4701 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004702 _res = NULL;
4703 done:
4704 D(p->level--);
4705 return _res;
4706}
4707
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004708// with_item:
4709// | expression 'as' star_target &(',' | ')' | ':')
4710// | invalid_with_item
4711// | expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004712static withitem_ty
4713with_item_rule(Parser *p)
4714{
4715 D(p->level++);
4716 if (p->error_indicator) {
4717 D(p->level--);
4718 return NULL;
4719 }
4720 withitem_ty _res = NULL;
4721 int _mark = p->mark;
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004722 { // expression 'as' star_target &(',' | ')' | ':')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004723 if (p->error_indicator) {
4724 D(p->level--);
4725 return NULL;
4726 }
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004727 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 +03004728 Token * _keyword;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004729 expr_ty e;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004730 expr_ty t;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004731 if (
4732 (e = expression_rule(p)) // expression
4733 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004734 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
4735 &&
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004736 (t = star_target_rule(p)) // star_target
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004737 &&
4738 _PyPegen_lookahead(1, _tmp_47_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004739 )
4740 {
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004741 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 +02004742 _res = _PyAST_withitem ( e , t , p -> arena );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004743 if (_res == NULL && PyErr_Occurred()) {
4744 p->error_indicator = 1;
4745 D(p->level--);
4746 return NULL;
4747 }
4748 goto done;
4749 }
4750 p->mark = _mark;
4751 D(fprintf(stderr, "%*c%s with_item[%d-%d]: %s failed!\n", p->level, ' ',
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004752 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression 'as' star_target &(',' | ')' | ':')"));
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004753 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02004754 if (p->call_invalid_rules) { // invalid_with_item
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004755 if (p->error_indicator) {
4756 D(p->level--);
4757 return NULL;
4758 }
4759 D(fprintf(stderr, "%*c> with_item[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_with_item"));
4760 void *invalid_with_item_var;
4761 if (
4762 (invalid_with_item_var = invalid_with_item_rule(p)) // invalid_with_item
4763 )
4764 {
4765 D(fprintf(stderr, "%*c+ with_item[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_with_item"));
4766 _res = invalid_with_item_var;
4767 goto done;
4768 }
4769 p->mark = _mark;
4770 D(fprintf(stderr, "%*c%s with_item[%d-%d]: %s failed!\n", p->level, ' ',
4771 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_with_item"));
4772 }
4773 { // expression
4774 if (p->error_indicator) {
4775 D(p->level--);
4776 return NULL;
4777 }
4778 D(fprintf(stderr, "%*c> with_item[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression"));
4779 expr_ty e;
4780 if (
4781 (e = expression_rule(p)) // expression
4782 )
4783 {
4784 D(fprintf(stderr, "%*c+ with_item[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression"));
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004785 _res = _PyAST_withitem ( e , NULL , p -> arena );
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004786 if (_res == NULL && PyErr_Occurred()) {
4787 p->error_indicator = 1;
4788 D(p->level--);
4789 return NULL;
4790 }
4791 goto done;
4792 }
4793 p->mark = _mark;
4794 D(fprintf(stderr, "%*c%s with_item[%d-%d]: %s failed!\n", p->level, ' ',
4795 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004796 }
4797 _res = NULL;
4798 done:
4799 D(p->level--);
4800 return _res;
4801}
4802
4803// try_stmt:
Pablo Galindo56c95df2021-04-21 15:28:21 +01004804// | invalid_try_stmt
Pablo Galindo58fb1562021-02-02 19:54:22 +00004805// | 'try' &&':' block finally_block
4806// | 'try' &&':' block except_block+ else_block? finally_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004807static stmt_ty
4808try_stmt_rule(Parser *p)
4809{
4810 D(p->level++);
4811 if (p->error_indicator) {
4812 D(p->level--);
4813 return NULL;
4814 }
4815 stmt_ty _res = NULL;
4816 int _mark = p->mark;
4817 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4818 p->error_indicator = 1;
4819 D(p->level--);
4820 return NULL;
4821 }
4822 int _start_lineno = p->tokens[_mark]->lineno;
4823 UNUSED(_start_lineno); // Only used by EXTRA macro
4824 int _start_col_offset = p->tokens[_mark]->col_offset;
4825 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo56c95df2021-04-21 15:28:21 +01004826 if (p->call_invalid_rules) { // invalid_try_stmt
4827 if (p->error_indicator) {
4828 D(p->level--);
4829 return NULL;
4830 }
4831 D(fprintf(stderr, "%*c> try_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_try_stmt"));
4832 void *invalid_try_stmt_var;
4833 if (
4834 (invalid_try_stmt_var = invalid_try_stmt_rule(p)) // invalid_try_stmt
4835 )
4836 {
4837 D(fprintf(stderr, "%*c+ try_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_try_stmt"));
4838 _res = invalid_try_stmt_var;
4839 goto done;
4840 }
4841 p->mark = _mark;
4842 D(fprintf(stderr, "%*c%s try_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4843 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_try_stmt"));
4844 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004845 { // 'try' &&':' block finally_block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004846 if (p->error_indicator) {
4847 D(p->level--);
4848 return NULL;
4849 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004850 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 +01004851 Token * _keyword;
4852 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004853 asdl_stmt_seq* b;
4854 asdl_stmt_seq* f;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004855 if (
4856 (_keyword = _PyPegen_expect_token(p, 511)) // token='try'
4857 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00004858 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004859 &&
4860 (b = block_rule(p)) // block
4861 &&
4862 (f = finally_block_rule(p)) // finally_block
4863 )
4864 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00004865 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 +01004866 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4867 if (_token == NULL) {
4868 D(p->level--);
4869 return NULL;
4870 }
4871 int _end_lineno = _token->end_lineno;
4872 UNUSED(_end_lineno); // Only used by EXTRA macro
4873 int _end_col_offset = _token->end_col_offset;
4874 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004875 _res = _PyAST_Try ( b , NULL , NULL , f , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004876 if (_res == NULL && PyErr_Occurred()) {
4877 p->error_indicator = 1;
4878 D(p->level--);
4879 return NULL;
4880 }
4881 goto done;
4882 }
4883 p->mark = _mark;
4884 D(fprintf(stderr, "%*c%s try_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00004885 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'try' &&':' block finally_block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004886 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004887 { // 'try' &&':' block except_block+ else_block? finally_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004888 if (p->error_indicator) {
4889 D(p->level--);
4890 return NULL;
4891 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004892 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 +01004893 Token * _keyword;
4894 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004895 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004896 void *el;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004897 asdl_excepthandler_seq* ex;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004898 void *f;
4899 if (
4900 (_keyword = _PyPegen_expect_token(p, 511)) // token='try'
4901 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00004902 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004903 &&
4904 (b = block_rule(p)) // block
4905 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01004906 (ex = (asdl_excepthandler_seq*)_loop1_48_rule(p)) // except_block+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004907 &&
4908 (el = else_block_rule(p), 1) // else_block?
4909 &&
4910 (f = finally_block_rule(p), 1) // finally_block?
4911 )
4912 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00004913 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 +01004914 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4915 if (_token == NULL) {
4916 D(p->level--);
4917 return NULL;
4918 }
4919 int _end_lineno = _token->end_lineno;
4920 UNUSED(_end_lineno); // Only used by EXTRA macro
4921 int _end_col_offset = _token->end_col_offset;
4922 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004923 _res = _PyAST_Try ( b , ex , el , f , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004924 if (_res == NULL && PyErr_Occurred()) {
4925 p->error_indicator = 1;
4926 D(p->level--);
4927 return NULL;
4928 }
4929 goto done;
4930 }
4931 p->mark = _mark;
4932 D(fprintf(stderr, "%*c%s try_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00004933 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'try' &&':' block except_block+ else_block? finally_block?"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004934 }
4935 _res = NULL;
4936 done:
4937 D(p->level--);
4938 return _res;
4939}
4940
Pablo Galindo206cbda2021-02-07 18:42:21 +00004941// except_block:
Pablo Galindo56c95df2021-04-21 15:28:21 +01004942// | invalid_except_stmt_indent
Pablo Galindo206cbda2021-02-07 18:42:21 +00004943// | 'except' expression ['as' NAME] ':' block
4944// | 'except' ':' block
Pablo Galindo56c95df2021-04-21 15:28:21 +01004945// | invalid_except_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004946static excepthandler_ty
4947except_block_rule(Parser *p)
4948{
4949 D(p->level++);
4950 if (p->error_indicator) {
4951 D(p->level--);
4952 return NULL;
4953 }
4954 excepthandler_ty _res = NULL;
4955 int _mark = p->mark;
4956 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4957 p->error_indicator = 1;
4958 D(p->level--);
4959 return NULL;
4960 }
4961 int _start_lineno = p->tokens[_mark]->lineno;
4962 UNUSED(_start_lineno); // Only used by EXTRA macro
4963 int _start_col_offset = p->tokens[_mark]->col_offset;
4964 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo56c95df2021-04-21 15:28:21 +01004965 if (p->call_invalid_rules) { // invalid_except_stmt_indent
4966 if (p->error_indicator) {
4967 D(p->level--);
4968 return NULL;
4969 }
4970 D(fprintf(stderr, "%*c> except_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_except_stmt_indent"));
4971 void *invalid_except_stmt_indent_var;
4972 if (
4973 (invalid_except_stmt_indent_var = invalid_except_stmt_indent_rule(p)) // invalid_except_stmt_indent
4974 )
4975 {
4976 D(fprintf(stderr, "%*c+ except_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_except_stmt_indent"));
4977 _res = invalid_except_stmt_indent_var;
4978 goto done;
4979 }
4980 p->mark = _mark;
4981 D(fprintf(stderr, "%*c%s except_block[%d-%d]: %s failed!\n", p->level, ' ',
4982 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_except_stmt_indent"));
4983 }
Pablo Galindo206cbda2021-02-07 18:42:21 +00004984 { // 'except' expression ['as' NAME] ':' block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004985 if (p->error_indicator) {
4986 D(p->level--);
4987 return NULL;
4988 }
Pablo Galindo206cbda2021-02-07 18:42:21 +00004989 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 +01004990 Token * _keyword;
4991 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004992 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004993 expr_ty e;
4994 void *t;
4995 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004996 (_keyword = _PyPegen_expect_token(p, 521)) // token='except'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004997 &&
4998 (e = expression_rule(p)) // expression
4999 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03005000 (t = _tmp_49_rule(p), 1) // ['as' NAME]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005001 &&
Pablo Galindo206cbda2021-02-07 18:42:21 +00005002 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005003 &&
5004 (b = block_rule(p)) // block
5005 )
5006 {
Pablo Galindo206cbda2021-02-07 18:42:21 +00005007 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 +01005008 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5009 if (_token == NULL) {
5010 D(p->level--);
5011 return NULL;
5012 }
5013 int _end_lineno = _token->end_lineno;
5014 UNUSED(_end_lineno); // Only used by EXTRA macro
5015 int _end_col_offset = _token->end_col_offset;
5016 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02005017 _res = _PyAST_ExceptHandler ( e , ( t ) ? ( ( expr_ty ) t ) -> v . Name . id : NULL , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005018 if (_res == NULL && PyErr_Occurred()) {
5019 p->error_indicator = 1;
5020 D(p->level--);
5021 return NULL;
5022 }
5023 goto done;
5024 }
5025 p->mark = _mark;
5026 D(fprintf(stderr, "%*c%s except_block[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo206cbda2021-02-07 18:42:21 +00005027 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' expression ['as' NAME] ':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005028 }
Pablo Galindo206cbda2021-02-07 18:42:21 +00005029 { // 'except' ':' block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005030 if (p->error_indicator) {
5031 D(p->level--);
5032 return NULL;
5033 }
Pablo Galindo206cbda2021-02-07 18:42:21 +00005034 D(fprintf(stderr, "%*c> except_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' ':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005035 Token * _keyword;
5036 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01005037 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005038 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03005039 (_keyword = _PyPegen_expect_token(p, 521)) // token='except'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005040 &&
Pablo Galindo206cbda2021-02-07 18:42:21 +00005041 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005042 &&
5043 (b = block_rule(p)) // block
5044 )
5045 {
Pablo Galindo206cbda2021-02-07 18:42:21 +00005046 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 +01005047 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5048 if (_token == NULL) {
5049 D(p->level--);
5050 return NULL;
5051 }
5052 int _end_lineno = _token->end_lineno;
5053 UNUSED(_end_lineno); // Only used by EXTRA macro
5054 int _end_col_offset = _token->end_col_offset;
5055 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02005056 _res = _PyAST_ExceptHandler ( NULL , NULL , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005057 if (_res == NULL && PyErr_Occurred()) {
5058 p->error_indicator = 1;
5059 D(p->level--);
5060 return NULL;
5061 }
5062 goto done;
5063 }
5064 p->mark = _mark;
5065 D(fprintf(stderr, "%*c%s except_block[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo206cbda2021-02-07 18:42:21 +00005066 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' ':' block"));
5067 }
Pablo Galindo56c95df2021-04-21 15:28:21 +01005068 if (p->call_invalid_rules) { // invalid_except_stmt
Pablo Galindo206cbda2021-02-07 18:42:21 +00005069 if (p->error_indicator) {
5070 D(p->level--);
5071 return NULL;
5072 }
Pablo Galindo56c95df2021-04-21 15:28:21 +01005073 D(fprintf(stderr, "%*c> except_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_except_stmt"));
5074 void *invalid_except_stmt_var;
Pablo Galindo206cbda2021-02-07 18:42:21 +00005075 if (
Pablo Galindo56c95df2021-04-21 15:28:21 +01005076 (invalid_except_stmt_var = invalid_except_stmt_rule(p)) // invalid_except_stmt
Pablo Galindo206cbda2021-02-07 18:42:21 +00005077 )
5078 {
Pablo Galindo56c95df2021-04-21 15:28:21 +01005079 D(fprintf(stderr, "%*c+ except_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_except_stmt"));
5080 _res = invalid_except_stmt_var;
Pablo Galindo206cbda2021-02-07 18:42:21 +00005081 goto done;
5082 }
5083 p->mark = _mark;
5084 D(fprintf(stderr, "%*c%s except_block[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo56c95df2021-04-21 15:28:21 +01005085 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_except_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005086 }
5087 _res = NULL;
5088 done:
5089 D(p->level--);
5090 return _res;
5091}
5092
Pablo Galindo56c95df2021-04-21 15:28:21 +01005093// finally_block: invalid_finally_stmt | 'finally' &&':' block
Pablo Galindoa5634c42020-09-16 19:42:00 +01005094static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005095finally_block_rule(Parser *p)
5096{
5097 D(p->level++);
5098 if (p->error_indicator) {
5099 D(p->level--);
5100 return NULL;
5101 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01005102 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005103 int _mark = p->mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +01005104 if (p->call_invalid_rules) { // invalid_finally_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005105 if (p->error_indicator) {
5106 D(p->level--);
5107 return NULL;
5108 }
Pablo Galindo56c95df2021-04-21 15:28:21 +01005109 D(fprintf(stderr, "%*c> finally_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_finally_stmt"));
5110 void *invalid_finally_stmt_var;
5111 if (
5112 (invalid_finally_stmt_var = invalid_finally_stmt_rule(p)) // invalid_finally_stmt
5113 )
5114 {
5115 D(fprintf(stderr, "%*c+ finally_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_finally_stmt"));
5116 _res = invalid_finally_stmt_var;
5117 goto done;
5118 }
5119 p->mark = _mark;
5120 D(fprintf(stderr, "%*c%s finally_block[%d-%d]: %s failed!\n", p->level, ' ',
5121 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_finally_stmt"));
5122 }
5123 { // 'finally' &&':' block
5124 if (p->error_indicator) {
5125 D(p->level--);
5126 return NULL;
5127 }
5128 D(fprintf(stderr, "%*c> finally_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'finally' &&':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005129 Token * _keyword;
5130 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01005131 asdl_stmt_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005132 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03005133 (_keyword = _PyPegen_expect_token(p, 522)) // token='finally'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005134 &&
Pablo Galindo56c95df2021-04-21 15:28:21 +01005135 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005136 &&
5137 (a = block_rule(p)) // block
5138 )
5139 {
Pablo Galindo56c95df2021-04-21 15:28:21 +01005140 D(fprintf(stderr, "%*c+ finally_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'finally' &&':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005141 _res = a;
5142 if (_res == NULL && PyErr_Occurred()) {
5143 p->error_indicator = 1;
5144 D(p->level--);
5145 return NULL;
5146 }
5147 goto done;
5148 }
5149 p->mark = _mark;
5150 D(fprintf(stderr, "%*c%s finally_block[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo56c95df2021-04-21 15:28:21 +01005151 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'finally' &&':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005152 }
5153 _res = NULL;
5154 done:
5155 D(p->level--);
5156 return _res;
5157}
5158
Pablo Galindo08fb8ac2021-03-18 01:03:11 +00005159// match_stmt:
5160// | "match" subject_expr ':' NEWLINE INDENT case_block+ DEDENT
5161// | invalid_match_stmt
Brandt Bucher145bf262021-02-26 14:51:55 -08005162static stmt_ty
5163match_stmt_rule(Parser *p)
5164{
5165 D(p->level++);
5166 if (p->error_indicator) {
5167 D(p->level--);
5168 return NULL;
5169 }
5170 stmt_ty _res = NULL;
5171 int _mark = p->mark;
5172 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
5173 p->error_indicator = 1;
5174 D(p->level--);
5175 return NULL;
5176 }
5177 int _start_lineno = p->tokens[_mark]->lineno;
5178 UNUSED(_start_lineno); // Only used by EXTRA macro
5179 int _start_col_offset = p->tokens[_mark]->col_offset;
5180 UNUSED(_start_col_offset); // Only used by EXTRA macro
5181 { // "match" subject_expr ':' NEWLINE INDENT case_block+ DEDENT
5182 if (p->error_indicator) {
5183 D(p->level--);
5184 return NULL;
5185 }
5186 D(fprintf(stderr, "%*c> match_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"match\" subject_expr ':' NEWLINE INDENT case_block+ DEDENT"));
5187 expr_ty _keyword;
5188 Token * _literal;
5189 asdl_match_case_seq* cases;
5190 Token * dedent_var;
5191 Token * indent_var;
5192 Token * newline_var;
5193 expr_ty subject;
5194 if (
5195 (_keyword = _PyPegen_expect_soft_keyword(p, "match")) // soft_keyword='"match"'
5196 &&
5197 (subject = subject_expr_rule(p)) // subject_expr
5198 &&
5199 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
5200 &&
5201 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
5202 &&
5203 (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
5204 &&
5205 (cases = (asdl_match_case_seq*)_loop1_50_rule(p)) // case_block+
5206 &&
5207 (dedent_var = _PyPegen_expect_token(p, DEDENT)) // token='DEDENT'
5208 )
5209 {
5210 D(fprintf(stderr, "%*c+ match_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"match\" subject_expr ':' NEWLINE INDENT case_block+ DEDENT"));
5211 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5212 if (_token == NULL) {
5213 D(p->level--);
5214 return NULL;
5215 }
5216 int _end_lineno = _token->end_lineno;
5217 UNUSED(_end_lineno); // Only used by EXTRA macro
5218 int _end_col_offset = _token->end_col_offset;
5219 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02005220 _res = CHECK_VERSION ( stmt_ty , 10 , "Pattern matching is" , _PyAST_Match ( subject , cases , EXTRA ) );
Brandt Bucher145bf262021-02-26 14:51:55 -08005221 if (_res == NULL && PyErr_Occurred()) {
5222 p->error_indicator = 1;
5223 D(p->level--);
5224 return NULL;
5225 }
5226 goto done;
5227 }
5228 p->mark = _mark;
5229 D(fprintf(stderr, "%*c%s match_stmt[%d-%d]: %s failed!\n", p->level, ' ',
5230 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"match\" subject_expr ':' NEWLINE INDENT case_block+ DEDENT"));
5231 }
Pablo Galindo08fb8ac2021-03-18 01:03:11 +00005232 if (p->call_invalid_rules) { // invalid_match_stmt
5233 if (p->error_indicator) {
5234 D(p->level--);
5235 return NULL;
5236 }
5237 D(fprintf(stderr, "%*c> match_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_match_stmt"));
5238 void *invalid_match_stmt_var;
5239 if (
5240 (invalid_match_stmt_var = invalid_match_stmt_rule(p)) // invalid_match_stmt
5241 )
5242 {
5243 D(fprintf(stderr, "%*c+ match_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_match_stmt"));
5244 _res = invalid_match_stmt_var;
5245 goto done;
5246 }
5247 p->mark = _mark;
5248 D(fprintf(stderr, "%*c%s match_stmt[%d-%d]: %s failed!\n", p->level, ' ',
5249 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_match_stmt"));
5250 }
Brandt Bucher145bf262021-02-26 14:51:55 -08005251 _res = NULL;
5252 done:
5253 D(p->level--);
5254 return _res;
5255}
5256
5257// subject_expr: star_named_expression ',' star_named_expressions? | named_expression
5258static expr_ty
5259subject_expr_rule(Parser *p)
5260{
5261 D(p->level++);
5262 if (p->error_indicator) {
5263 D(p->level--);
5264 return NULL;
5265 }
5266 expr_ty _res = NULL;
5267 int _mark = p->mark;
5268 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
5269 p->error_indicator = 1;
5270 D(p->level--);
5271 return NULL;
5272 }
5273 int _start_lineno = p->tokens[_mark]->lineno;
5274 UNUSED(_start_lineno); // Only used by EXTRA macro
5275 int _start_col_offset = p->tokens[_mark]->col_offset;
5276 UNUSED(_start_col_offset); // Only used by EXTRA macro
5277 { // star_named_expression ',' star_named_expressions?
5278 if (p->error_indicator) {
5279 D(p->level--);
5280 return NULL;
5281 }
5282 D(fprintf(stderr, "%*c> subject_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_named_expression ',' star_named_expressions?"));
5283 Token * _literal;
5284 expr_ty value;
5285 void *values;
5286 if (
5287 (value = star_named_expression_rule(p)) // star_named_expression
5288 &&
5289 (_literal = _PyPegen_expect_token(p, 12)) // token=','
5290 &&
5291 (values = star_named_expressions_rule(p), 1) // star_named_expressions?
5292 )
5293 {
5294 D(fprintf(stderr, "%*c+ subject_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_named_expression ',' star_named_expressions?"));
5295 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5296 if (_token == NULL) {
5297 D(p->level--);
5298 return NULL;
5299 }
5300 int _end_lineno = _token->end_lineno;
5301 UNUSED(_end_lineno); // Only used by EXTRA macro
5302 int _end_col_offset = _token->end_col_offset;
5303 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02005304 _res = _PyAST_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , value , values ) ) , Load , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08005305 if (_res == NULL && PyErr_Occurred()) {
5306 p->error_indicator = 1;
5307 D(p->level--);
5308 return NULL;
5309 }
5310 goto done;
5311 }
5312 p->mark = _mark;
5313 D(fprintf(stderr, "%*c%s subject_expr[%d-%d]: %s failed!\n", p->level, ' ',
5314 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression ',' star_named_expressions?"));
5315 }
5316 { // named_expression
5317 if (p->error_indicator) {
5318 D(p->level--);
5319 return NULL;
5320 }
5321 D(fprintf(stderr, "%*c> subject_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression"));
5322 expr_ty named_expression_var;
5323 if (
5324 (named_expression_var = named_expression_rule(p)) // named_expression
5325 )
5326 {
5327 D(fprintf(stderr, "%*c+ subject_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "named_expression"));
5328 _res = named_expression_var;
5329 goto done;
5330 }
5331 p->mark = _mark;
5332 D(fprintf(stderr, "%*c%s subject_expr[%d-%d]: %s failed!\n", p->level, ' ',
5333 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression"));
5334 }
5335 _res = NULL;
5336 done:
5337 D(p->level--);
5338 return _res;
5339}
5340
Pablo Galindo56c95df2021-04-21 15:28:21 +01005341// case_block: invalid_case_block | "case" patterns guard? ':' block
Brandt Bucher145bf262021-02-26 14:51:55 -08005342static match_case_ty
5343case_block_rule(Parser *p)
5344{
5345 D(p->level++);
5346 if (p->error_indicator) {
5347 D(p->level--);
5348 return NULL;
5349 }
5350 match_case_ty _res = NULL;
5351 int _mark = p->mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +01005352 if (p->call_invalid_rules) { // invalid_case_block
5353 if (p->error_indicator) {
5354 D(p->level--);
5355 return NULL;
5356 }
5357 D(fprintf(stderr, "%*c> case_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_case_block"));
5358 void *invalid_case_block_var;
5359 if (
5360 (invalid_case_block_var = invalid_case_block_rule(p)) // invalid_case_block
5361 )
5362 {
5363 D(fprintf(stderr, "%*c+ case_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_case_block"));
5364 _res = invalid_case_block_var;
5365 goto done;
5366 }
5367 p->mark = _mark;
5368 D(fprintf(stderr, "%*c%s case_block[%d-%d]: %s failed!\n", p->level, ' ',
5369 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_case_block"));
5370 }
Brandt Bucher145bf262021-02-26 14:51:55 -08005371 { // "case" patterns guard? ':' block
5372 if (p->error_indicator) {
5373 D(p->level--);
5374 return NULL;
5375 }
5376 D(fprintf(stderr, "%*c> case_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"case\" patterns guard? ':' block"));
5377 expr_ty _keyword;
5378 Token * _literal;
5379 asdl_stmt_seq* body;
5380 void *guard;
5381 expr_ty pattern;
5382 if (
5383 (_keyword = _PyPegen_expect_soft_keyword(p, "case")) // soft_keyword='"case"'
5384 &&
5385 (pattern = patterns_rule(p)) // patterns
5386 &&
5387 (guard = guard_rule(p), 1) // guard?
5388 &&
5389 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
5390 &&
5391 (body = block_rule(p)) // block
5392 )
5393 {
5394 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 +02005395 _res = _PyAST_match_case ( pattern , guard , body , p -> arena );
Brandt Bucher145bf262021-02-26 14:51:55 -08005396 if (_res == NULL && PyErr_Occurred()) {
5397 p->error_indicator = 1;
5398 D(p->level--);
5399 return NULL;
5400 }
5401 goto done;
5402 }
5403 p->mark = _mark;
5404 D(fprintf(stderr, "%*c%s case_block[%d-%d]: %s failed!\n", p->level, ' ',
5405 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"case\" patterns guard? ':' block"));
5406 }
5407 _res = NULL;
5408 done:
5409 D(p->level--);
5410 return _res;
5411}
5412
5413// guard: 'if' named_expression
5414static expr_ty
5415guard_rule(Parser *p)
5416{
5417 D(p->level++);
5418 if (p->error_indicator) {
5419 D(p->level--);
5420 return NULL;
5421 }
5422 expr_ty _res = NULL;
5423 int _mark = p->mark;
5424 { // 'if' named_expression
5425 if (p->error_indicator) {
5426 D(p->level--);
5427 return NULL;
5428 }
5429 D(fprintf(stderr, "%*c> guard[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' named_expression"));
5430 Token * _keyword;
5431 expr_ty guard;
5432 if (
5433 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
5434 &&
5435 (guard = named_expression_rule(p)) // named_expression
5436 )
5437 {
5438 D(fprintf(stderr, "%*c+ guard[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' named_expression"));
5439 _res = guard;
5440 if (_res == NULL && PyErr_Occurred()) {
5441 p->error_indicator = 1;
5442 D(p->level--);
5443 return NULL;
5444 }
5445 goto done;
5446 }
5447 p->mark = _mark;
5448 D(fprintf(stderr, "%*c%s guard[%d-%d]: %s failed!\n", p->level, ' ',
5449 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression"));
5450 }
5451 _res = NULL;
5452 done:
5453 D(p->level--);
5454 return _res;
5455}
5456
5457// patterns: open_sequence_pattern | pattern
5458static expr_ty
5459patterns_rule(Parser *p)
5460{
5461 D(p->level++);
5462 if (p->error_indicator) {
5463 D(p->level--);
5464 return NULL;
5465 }
5466 expr_ty _res = NULL;
5467 int _mark = p->mark;
5468 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
5469 p->error_indicator = 1;
5470 D(p->level--);
5471 return NULL;
5472 }
5473 int _start_lineno = p->tokens[_mark]->lineno;
5474 UNUSED(_start_lineno); // Only used by EXTRA macro
5475 int _start_col_offset = p->tokens[_mark]->col_offset;
5476 UNUSED(_start_col_offset); // Only used by EXTRA macro
5477 { // open_sequence_pattern
5478 if (p->error_indicator) {
5479 D(p->level--);
5480 return NULL;
5481 }
5482 D(fprintf(stderr, "%*c> patterns[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "open_sequence_pattern"));
5483 asdl_expr_seq* values;
5484 if (
5485 (values = (asdl_expr_seq*)open_sequence_pattern_rule(p)) // open_sequence_pattern
5486 )
5487 {
5488 D(fprintf(stderr, "%*c+ patterns[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "open_sequence_pattern"));
5489 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5490 if (_token == NULL) {
5491 D(p->level--);
5492 return NULL;
5493 }
5494 int _end_lineno = _token->end_lineno;
5495 UNUSED(_end_lineno); // Only used by EXTRA macro
5496 int _end_col_offset = _token->end_col_offset;
5497 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02005498 _res = _PyAST_Tuple ( values , Load , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08005499 if (_res == NULL && PyErr_Occurred()) {
5500 p->error_indicator = 1;
5501 D(p->level--);
5502 return NULL;
5503 }
5504 goto done;
5505 }
5506 p->mark = _mark;
5507 D(fprintf(stderr, "%*c%s patterns[%d-%d]: %s failed!\n", p->level, ' ',
5508 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "open_sequence_pattern"));
5509 }
5510 { // pattern
5511 if (p->error_indicator) {
5512 D(p->level--);
5513 return NULL;
5514 }
5515 D(fprintf(stderr, "%*c> patterns[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "pattern"));
5516 expr_ty pattern_var;
5517 if (
5518 (pattern_var = pattern_rule(p)) // pattern
5519 )
5520 {
5521 D(fprintf(stderr, "%*c+ patterns[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "pattern"));
5522 _res = pattern_var;
5523 goto done;
5524 }
5525 p->mark = _mark;
5526 D(fprintf(stderr, "%*c%s patterns[%d-%d]: %s failed!\n", p->level, ' ',
5527 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "pattern"));
5528 }
5529 _res = NULL;
5530 done:
5531 D(p->level--);
5532 return _res;
5533}
5534
5535// pattern: as_pattern | or_pattern
5536static expr_ty
5537pattern_rule(Parser *p)
5538{
5539 D(p->level++);
5540 if (p->error_indicator) {
5541 D(p->level--);
5542 return NULL;
5543 }
5544 expr_ty _res = NULL;
5545 int _mark = p->mark;
5546 { // as_pattern
5547 if (p->error_indicator) {
5548 D(p->level--);
5549 return NULL;
5550 }
5551 D(fprintf(stderr, "%*c> pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "as_pattern"));
5552 expr_ty as_pattern_var;
5553 if (
5554 (as_pattern_var = as_pattern_rule(p)) // as_pattern
5555 )
5556 {
5557 D(fprintf(stderr, "%*c+ pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "as_pattern"));
5558 _res = as_pattern_var;
5559 goto done;
5560 }
5561 p->mark = _mark;
5562 D(fprintf(stderr, "%*c%s pattern[%d-%d]: %s failed!\n", p->level, ' ',
5563 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "as_pattern"));
5564 }
5565 { // or_pattern
5566 if (p->error_indicator) {
5567 D(p->level--);
5568 return NULL;
5569 }
5570 D(fprintf(stderr, "%*c> pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "or_pattern"));
5571 expr_ty or_pattern_var;
5572 if (
5573 (or_pattern_var = or_pattern_rule(p)) // or_pattern
5574 )
5575 {
5576 D(fprintf(stderr, "%*c+ pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "or_pattern"));
5577 _res = or_pattern_var;
5578 goto done;
5579 }
5580 p->mark = _mark;
5581 D(fprintf(stderr, "%*c%s pattern[%d-%d]: %s failed!\n", p->level, ' ',
5582 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "or_pattern"));
5583 }
5584 _res = NULL;
5585 done:
5586 D(p->level--);
5587 return _res;
5588}
5589
5590// as_pattern: or_pattern 'as' capture_pattern
5591static expr_ty
5592as_pattern_rule(Parser *p)
5593{
5594 D(p->level++);
5595 if (p->error_indicator) {
5596 D(p->level--);
5597 return NULL;
5598 }
5599 expr_ty _res = NULL;
5600 int _mark = p->mark;
5601 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
5602 p->error_indicator = 1;
5603 D(p->level--);
5604 return NULL;
5605 }
5606 int _start_lineno = p->tokens[_mark]->lineno;
5607 UNUSED(_start_lineno); // Only used by EXTRA macro
5608 int _start_col_offset = p->tokens[_mark]->col_offset;
5609 UNUSED(_start_col_offset); // Only used by EXTRA macro
5610 { // or_pattern 'as' capture_pattern
5611 if (p->error_indicator) {
5612 D(p->level--);
5613 return NULL;
5614 }
5615 D(fprintf(stderr, "%*c> as_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "or_pattern 'as' capture_pattern"));
5616 Token * _keyword;
5617 expr_ty pattern;
5618 expr_ty target;
5619 if (
5620 (pattern = or_pattern_rule(p)) // or_pattern
5621 &&
5622 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
5623 &&
5624 (target = capture_pattern_rule(p)) // capture_pattern
5625 )
5626 {
5627 D(fprintf(stderr, "%*c+ as_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "or_pattern 'as' capture_pattern"));
5628 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5629 if (_token == NULL) {
5630 D(p->level--);
5631 return NULL;
5632 }
5633 int _end_lineno = _token->end_lineno;
5634 UNUSED(_end_lineno); // Only used by EXTRA macro
5635 int _end_col_offset = _token->end_col_offset;
5636 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02005637 _res = _PyAST_MatchAs ( pattern , target -> v . Name . id , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08005638 if (_res == NULL && PyErr_Occurred()) {
5639 p->error_indicator = 1;
5640 D(p->level--);
5641 return NULL;
5642 }
5643 goto done;
5644 }
5645 p->mark = _mark;
5646 D(fprintf(stderr, "%*c%s as_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5647 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "or_pattern 'as' capture_pattern"));
5648 }
5649 _res = NULL;
5650 done:
5651 D(p->level--);
5652 return _res;
5653}
5654
5655// or_pattern: '|'.closed_pattern+
5656static expr_ty
5657or_pattern_rule(Parser *p)
5658{
5659 D(p->level++);
5660 if (p->error_indicator) {
5661 D(p->level--);
5662 return NULL;
5663 }
5664 expr_ty _res = NULL;
5665 int _mark = p->mark;
5666 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
5667 p->error_indicator = 1;
5668 D(p->level--);
5669 return NULL;
5670 }
5671 int _start_lineno = p->tokens[_mark]->lineno;
5672 UNUSED(_start_lineno); // Only used by EXTRA macro
5673 int _start_col_offset = p->tokens[_mark]->col_offset;
5674 UNUSED(_start_col_offset); // Only used by EXTRA macro
5675 { // '|'.closed_pattern+
5676 if (p->error_indicator) {
5677 D(p->level--);
5678 return NULL;
5679 }
5680 D(fprintf(stderr, "%*c> or_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'|'.closed_pattern+"));
5681 asdl_expr_seq* patterns;
5682 if (
5683 (patterns = (asdl_expr_seq*)_gather_51_rule(p)) // '|'.closed_pattern+
5684 )
5685 {
5686 D(fprintf(stderr, "%*c+ or_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'|'.closed_pattern+"));
5687 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5688 if (_token == NULL) {
5689 D(p->level--);
5690 return NULL;
5691 }
5692 int _end_lineno = _token->end_lineno;
5693 UNUSED(_end_lineno); // Only used by EXTRA macro
5694 int _end_col_offset = _token->end_col_offset;
5695 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02005696 _res = asdl_seq_LEN ( patterns ) == 1 ? asdl_seq_GET ( patterns , 0 ) : _PyAST_MatchOr ( patterns , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08005697 if (_res == NULL && PyErr_Occurred()) {
5698 p->error_indicator = 1;
5699 D(p->level--);
5700 return NULL;
5701 }
5702 goto done;
5703 }
5704 p->mark = _mark;
5705 D(fprintf(stderr, "%*c%s or_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5706 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'|'.closed_pattern+"));
5707 }
5708 _res = NULL;
5709 done:
5710 D(p->level--);
5711 return _res;
5712}
5713
5714// closed_pattern:
5715// | literal_pattern
5716// | capture_pattern
5717// | wildcard_pattern
5718// | value_pattern
5719// | group_pattern
5720// | sequence_pattern
5721// | mapping_pattern
5722// | class_pattern
5723static expr_ty
5724closed_pattern_rule(Parser *p)
5725{
5726 D(p->level++);
5727 if (p->error_indicator) {
5728 D(p->level--);
5729 return NULL;
5730 }
5731 expr_ty _res = NULL;
5732 int _mark = p->mark;
5733 { // literal_pattern
5734 if (p->error_indicator) {
5735 D(p->level--);
5736 return NULL;
5737 }
5738 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "literal_pattern"));
5739 expr_ty literal_pattern_var;
5740 if (
5741 (literal_pattern_var = literal_pattern_rule(p)) // literal_pattern
5742 )
5743 {
5744 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "literal_pattern"));
5745 _res = literal_pattern_var;
5746 goto done;
5747 }
5748 p->mark = _mark;
5749 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5750 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "literal_pattern"));
5751 }
5752 { // capture_pattern
5753 if (p->error_indicator) {
5754 D(p->level--);
5755 return NULL;
5756 }
5757 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "capture_pattern"));
5758 expr_ty capture_pattern_var;
5759 if (
5760 (capture_pattern_var = capture_pattern_rule(p)) // capture_pattern
5761 )
5762 {
5763 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "capture_pattern"));
5764 _res = capture_pattern_var;
5765 goto done;
5766 }
5767 p->mark = _mark;
5768 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5769 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "capture_pattern"));
5770 }
5771 { // wildcard_pattern
5772 if (p->error_indicator) {
5773 D(p->level--);
5774 return NULL;
5775 }
5776 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "wildcard_pattern"));
5777 expr_ty wildcard_pattern_var;
5778 if (
5779 (wildcard_pattern_var = wildcard_pattern_rule(p)) // wildcard_pattern
5780 )
5781 {
5782 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "wildcard_pattern"));
5783 _res = wildcard_pattern_var;
5784 goto done;
5785 }
5786 p->mark = _mark;
5787 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5788 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "wildcard_pattern"));
5789 }
5790 { // value_pattern
5791 if (p->error_indicator) {
5792 D(p->level--);
5793 return NULL;
5794 }
5795 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "value_pattern"));
5796 expr_ty value_pattern_var;
5797 if (
5798 (value_pattern_var = value_pattern_rule(p)) // value_pattern
5799 )
5800 {
5801 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "value_pattern"));
5802 _res = value_pattern_var;
5803 goto done;
5804 }
5805 p->mark = _mark;
5806 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5807 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "value_pattern"));
5808 }
5809 { // group_pattern
5810 if (p->error_indicator) {
5811 D(p->level--);
5812 return NULL;
5813 }
5814 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "group_pattern"));
5815 expr_ty group_pattern_var;
5816 if (
5817 (group_pattern_var = group_pattern_rule(p)) // group_pattern
5818 )
5819 {
5820 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "group_pattern"));
5821 _res = group_pattern_var;
5822 goto done;
5823 }
5824 p->mark = _mark;
5825 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5826 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "group_pattern"));
5827 }
5828 { // sequence_pattern
5829 if (p->error_indicator) {
5830 D(p->level--);
5831 return NULL;
5832 }
5833 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sequence_pattern"));
5834 expr_ty sequence_pattern_var;
5835 if (
5836 (sequence_pattern_var = sequence_pattern_rule(p)) // sequence_pattern
5837 )
5838 {
5839 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sequence_pattern"));
5840 _res = sequence_pattern_var;
5841 goto done;
5842 }
5843 p->mark = _mark;
5844 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5845 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sequence_pattern"));
5846 }
5847 { // mapping_pattern
5848 if (p->error_indicator) {
5849 D(p->level--);
5850 return NULL;
5851 }
5852 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "mapping_pattern"));
5853 expr_ty mapping_pattern_var;
5854 if (
5855 (mapping_pattern_var = mapping_pattern_rule(p)) // mapping_pattern
5856 )
5857 {
5858 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "mapping_pattern"));
5859 _res = mapping_pattern_var;
5860 goto done;
5861 }
5862 p->mark = _mark;
5863 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5864 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "mapping_pattern"));
5865 }
5866 { // class_pattern
5867 if (p->error_indicator) {
5868 D(p->level--);
5869 return NULL;
5870 }
5871 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "class_pattern"));
5872 expr_ty class_pattern_var;
5873 if (
5874 (class_pattern_var = class_pattern_rule(p)) // class_pattern
5875 )
5876 {
5877 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "class_pattern"));
5878 _res = class_pattern_var;
5879 goto done;
5880 }
5881 p->mark = _mark;
5882 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5883 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "class_pattern"));
5884 }
5885 _res = NULL;
5886 done:
5887 D(p->level--);
5888 return _res;
5889}
5890
5891// literal_pattern:
5892// | signed_number !('+' | '-')
5893// | signed_number '+' NUMBER
5894// | signed_number '-' NUMBER
5895// | strings
5896// | 'None'
5897// | 'True'
5898// | 'False'
5899static expr_ty
5900literal_pattern_rule(Parser *p)
5901{
5902 D(p->level++);
5903 if (p->error_indicator) {
5904 D(p->level--);
5905 return NULL;
5906 }
5907 expr_ty _res = NULL;
5908 int _mark = p->mark;
5909 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
5910 p->error_indicator = 1;
5911 D(p->level--);
5912 return NULL;
5913 }
5914 int _start_lineno = p->tokens[_mark]->lineno;
5915 UNUSED(_start_lineno); // Only used by EXTRA macro
5916 int _start_col_offset = p->tokens[_mark]->col_offset;
5917 UNUSED(_start_col_offset); // Only used by EXTRA macro
5918 { // signed_number !('+' | '-')
5919 if (p->error_indicator) {
5920 D(p->level--);
5921 return NULL;
5922 }
5923 D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "signed_number !('+' | '-')"));
5924 expr_ty signed_number_var;
5925 if (
5926 (signed_number_var = signed_number_rule(p)) // signed_number
5927 &&
5928 _PyPegen_lookahead(0, _tmp_53_rule, p)
5929 )
5930 {
5931 D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "signed_number !('+' | '-')"));
5932 _res = signed_number_var;
5933 goto done;
5934 }
5935 p->mark = _mark;
5936 D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5937 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "signed_number !('+' | '-')"));
5938 }
5939 { // signed_number '+' NUMBER
5940 if (p->error_indicator) {
5941 D(p->level--);
5942 return NULL;
5943 }
5944 D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "signed_number '+' NUMBER"));
5945 Token * _literal;
5946 expr_ty imag;
5947 expr_ty real;
5948 if (
5949 (real = signed_number_rule(p)) // signed_number
5950 &&
5951 (_literal = _PyPegen_expect_token(p, 14)) // token='+'
5952 &&
5953 (imag = _PyPegen_number_token(p)) // NUMBER
5954 )
5955 {
5956 D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "signed_number '+' NUMBER"));
5957 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5958 if (_token == NULL) {
5959 D(p->level--);
5960 return NULL;
5961 }
5962 int _end_lineno = _token->end_lineno;
5963 UNUSED(_end_lineno); // Only used by EXTRA macro
5964 int _end_col_offset = _token->end_col_offset;
5965 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02005966 _res = _PyAST_BinOp ( real , Add , imag , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08005967 if (_res == NULL && PyErr_Occurred()) {
5968 p->error_indicator = 1;
5969 D(p->level--);
5970 return NULL;
5971 }
5972 goto done;
5973 }
5974 p->mark = _mark;
5975 D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5976 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "signed_number '+' NUMBER"));
5977 }
5978 { // signed_number '-' NUMBER
5979 if (p->error_indicator) {
5980 D(p->level--);
5981 return NULL;
5982 }
5983 D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "signed_number '-' NUMBER"));
5984 Token * _literal;
5985 expr_ty imag;
5986 expr_ty real;
5987 if (
5988 (real = signed_number_rule(p)) // signed_number
5989 &&
5990 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
5991 &&
5992 (imag = _PyPegen_number_token(p)) // NUMBER
5993 )
5994 {
5995 D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "signed_number '-' NUMBER"));
5996 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5997 if (_token == NULL) {
5998 D(p->level--);
5999 return NULL;
6000 }
6001 int _end_lineno = _token->end_lineno;
6002 UNUSED(_end_lineno); // Only used by EXTRA macro
6003 int _end_col_offset = _token->end_col_offset;
6004 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02006005 _res = _PyAST_BinOp ( real , Sub , imag , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08006006 if (_res == NULL && PyErr_Occurred()) {
6007 p->error_indicator = 1;
6008 D(p->level--);
6009 return NULL;
6010 }
6011 goto done;
6012 }
6013 p->mark = _mark;
6014 D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6015 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "signed_number '-' NUMBER"));
6016 }
6017 { // strings
6018 if (p->error_indicator) {
6019 D(p->level--);
6020 return NULL;
6021 }
6022 D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "strings"));
6023 expr_ty strings_var;
6024 if (
6025 (strings_var = strings_rule(p)) // strings
6026 )
6027 {
6028 D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "strings"));
6029 _res = strings_var;
6030 goto done;
6031 }
6032 p->mark = _mark;
6033 D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6034 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "strings"));
6035 }
6036 { // 'None'
6037 if (p->error_indicator) {
6038 D(p->level--);
6039 return NULL;
6040 }
6041 D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'"));
6042 Token * _keyword;
6043 if (
6044 (_keyword = _PyPegen_expect_token(p, 523)) // token='None'
6045 )
6046 {
6047 D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'"));
6048 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6049 if (_token == NULL) {
6050 D(p->level--);
6051 return NULL;
6052 }
6053 int _end_lineno = _token->end_lineno;
6054 UNUSED(_end_lineno); // Only used by EXTRA macro
6055 int _end_col_offset = _token->end_col_offset;
6056 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02006057 _res = _PyAST_Constant ( Py_None , NULL , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08006058 if (_res == NULL && PyErr_Occurred()) {
6059 p->error_indicator = 1;
6060 D(p->level--);
6061 return NULL;
6062 }
6063 goto done;
6064 }
6065 p->mark = _mark;
6066 D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6067 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'None'"));
6068 }
6069 { // 'True'
6070 if (p->error_indicator) {
6071 D(p->level--);
6072 return NULL;
6073 }
6074 D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'"));
6075 Token * _keyword;
6076 if (
6077 (_keyword = _PyPegen_expect_token(p, 524)) // token='True'
6078 )
6079 {
6080 D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'"));
6081 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6082 if (_token == NULL) {
6083 D(p->level--);
6084 return NULL;
6085 }
6086 int _end_lineno = _token->end_lineno;
6087 UNUSED(_end_lineno); // Only used by EXTRA macro
6088 int _end_col_offset = _token->end_col_offset;
6089 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02006090 _res = _PyAST_Constant ( Py_True , NULL , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08006091 if (_res == NULL && PyErr_Occurred()) {
6092 p->error_indicator = 1;
6093 D(p->level--);
6094 return NULL;
6095 }
6096 goto done;
6097 }
6098 p->mark = _mark;
6099 D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6100 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'True'"));
6101 }
6102 { // 'False'
6103 if (p->error_indicator) {
6104 D(p->level--);
6105 return NULL;
6106 }
6107 D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'"));
6108 Token * _keyword;
6109 if (
6110 (_keyword = _PyPegen_expect_token(p, 525)) // token='False'
6111 )
6112 {
6113 D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'"));
6114 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6115 if (_token == NULL) {
6116 D(p->level--);
6117 return NULL;
6118 }
6119 int _end_lineno = _token->end_lineno;
6120 UNUSED(_end_lineno); // Only used by EXTRA macro
6121 int _end_col_offset = _token->end_col_offset;
6122 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02006123 _res = _PyAST_Constant ( Py_False , NULL , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08006124 if (_res == NULL && PyErr_Occurred()) {
6125 p->error_indicator = 1;
6126 D(p->level--);
6127 return NULL;
6128 }
6129 goto done;
6130 }
6131 p->mark = _mark;
6132 D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6133 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'False'"));
6134 }
6135 _res = NULL;
6136 done:
6137 D(p->level--);
6138 return _res;
6139}
6140
6141// signed_number: NUMBER | '-' NUMBER
6142static expr_ty
6143signed_number_rule(Parser *p)
6144{
6145 D(p->level++);
6146 if (p->error_indicator) {
6147 D(p->level--);
6148 return NULL;
6149 }
6150 expr_ty _res = NULL;
6151 int _mark = p->mark;
6152 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6153 p->error_indicator = 1;
6154 D(p->level--);
6155 return NULL;
6156 }
6157 int _start_lineno = p->tokens[_mark]->lineno;
6158 UNUSED(_start_lineno); // Only used by EXTRA macro
6159 int _start_col_offset = p->tokens[_mark]->col_offset;
6160 UNUSED(_start_col_offset); // Only used by EXTRA macro
6161 { // NUMBER
6162 if (p->error_indicator) {
6163 D(p->level--);
6164 return NULL;
6165 }
6166 D(fprintf(stderr, "%*c> signed_number[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NUMBER"));
6167 expr_ty number_var;
6168 if (
6169 (number_var = _PyPegen_number_token(p)) // NUMBER
6170 )
6171 {
6172 D(fprintf(stderr, "%*c+ signed_number[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NUMBER"));
6173 _res = number_var;
6174 goto done;
6175 }
6176 p->mark = _mark;
6177 D(fprintf(stderr, "%*c%s signed_number[%d-%d]: %s failed!\n", p->level, ' ',
6178 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NUMBER"));
6179 }
6180 { // '-' NUMBER
6181 if (p->error_indicator) {
6182 D(p->level--);
6183 return NULL;
6184 }
6185 D(fprintf(stderr, "%*c> signed_number[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-' NUMBER"));
6186 Token * _literal;
6187 expr_ty number;
6188 if (
6189 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
6190 &&
6191 (number = _PyPegen_number_token(p)) // NUMBER
6192 )
6193 {
6194 D(fprintf(stderr, "%*c+ signed_number[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-' NUMBER"));
6195 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6196 if (_token == NULL) {
6197 D(p->level--);
6198 return NULL;
6199 }
6200 int _end_lineno = _token->end_lineno;
6201 UNUSED(_end_lineno); // Only used by EXTRA macro
6202 int _end_col_offset = _token->end_col_offset;
6203 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02006204 _res = _PyAST_UnaryOp ( USub , number , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08006205 if (_res == NULL && PyErr_Occurred()) {
6206 p->error_indicator = 1;
6207 D(p->level--);
6208 return NULL;
6209 }
6210 goto done;
6211 }
6212 p->mark = _mark;
6213 D(fprintf(stderr, "%*c%s signed_number[%d-%d]: %s failed!\n", p->level, ' ',
6214 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-' NUMBER"));
6215 }
6216 _res = NULL;
6217 done:
6218 D(p->level--);
6219 return _res;
6220}
6221
6222// capture_pattern: !"_" NAME !('.' | '(' | '=')
6223static expr_ty
6224capture_pattern_rule(Parser *p)
6225{
6226 D(p->level++);
6227 if (p->error_indicator) {
6228 D(p->level--);
6229 return NULL;
6230 }
6231 expr_ty _res = NULL;
6232 int _mark = p->mark;
6233 { // !"_" NAME !('.' | '(' | '=')
6234 if (p->error_indicator) {
6235 D(p->level--);
6236 return NULL;
6237 }
6238 D(fprintf(stderr, "%*c> capture_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "!\"_\" NAME !('.' | '(' | '=')"));
6239 expr_ty name;
6240 if (
6241 _PyPegen_lookahead_with_string(0, _PyPegen_expect_soft_keyword, p, "_")
6242 &&
6243 (name = _PyPegen_name_token(p)) // NAME
6244 &&
6245 _PyPegen_lookahead(0, _tmp_54_rule, p)
6246 )
6247 {
6248 D(fprintf(stderr, "%*c+ capture_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "!\"_\" NAME !('.' | '(' | '=')"));
6249 _res = _PyPegen_set_expr_context ( p , name , Store );
6250 if (_res == NULL && PyErr_Occurred()) {
6251 p->error_indicator = 1;
6252 D(p->level--);
6253 return NULL;
6254 }
6255 goto done;
6256 }
6257 p->mark = _mark;
6258 D(fprintf(stderr, "%*c%s capture_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6259 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "!\"_\" NAME !('.' | '(' | '=')"));
6260 }
6261 _res = NULL;
6262 done:
6263 D(p->level--);
6264 return _res;
6265}
6266
6267// wildcard_pattern: "_"
6268static expr_ty
6269wildcard_pattern_rule(Parser *p)
6270{
6271 D(p->level++);
6272 if (p->error_indicator) {
6273 D(p->level--);
6274 return NULL;
6275 }
6276 expr_ty _res = NULL;
6277 int _mark = p->mark;
6278 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6279 p->error_indicator = 1;
6280 D(p->level--);
6281 return NULL;
6282 }
6283 int _start_lineno = p->tokens[_mark]->lineno;
6284 UNUSED(_start_lineno); // Only used by EXTRA macro
6285 int _start_col_offset = p->tokens[_mark]->col_offset;
6286 UNUSED(_start_col_offset); // Only used by EXTRA macro
6287 { // "_"
6288 if (p->error_indicator) {
6289 D(p->level--);
6290 return NULL;
6291 }
6292 D(fprintf(stderr, "%*c> wildcard_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"_\""));
6293 expr_ty _keyword;
6294 if (
6295 (_keyword = _PyPegen_expect_soft_keyword(p, "_")) // soft_keyword='"_"'
6296 )
6297 {
6298 D(fprintf(stderr, "%*c+ wildcard_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"_\""));
6299 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6300 if (_token == NULL) {
6301 D(p->level--);
6302 return NULL;
6303 }
6304 int _end_lineno = _token->end_lineno;
6305 UNUSED(_end_lineno); // Only used by EXTRA macro
6306 int _end_col_offset = _token->end_col_offset;
6307 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02006308 _res = _PyAST_Name ( CHECK ( PyObject * , _PyPegen_new_identifier ( p , "_" ) ) , Store , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08006309 if (_res == NULL && PyErr_Occurred()) {
6310 p->error_indicator = 1;
6311 D(p->level--);
6312 return NULL;
6313 }
6314 goto done;
6315 }
6316 p->mark = _mark;
6317 D(fprintf(stderr, "%*c%s wildcard_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6318 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"_\""));
6319 }
6320 _res = NULL;
6321 done:
6322 D(p->level--);
6323 return _res;
6324}
6325
6326// value_pattern: attr !('.' | '(' | '=')
6327static expr_ty
6328value_pattern_rule(Parser *p)
6329{
6330 D(p->level++);
6331 if (p->error_indicator) {
6332 D(p->level--);
6333 return NULL;
6334 }
6335 expr_ty _res = NULL;
6336 int _mark = p->mark;
6337 { // attr !('.' | '(' | '=')
6338 if (p->error_indicator) {
6339 D(p->level--);
6340 return NULL;
6341 }
6342 D(fprintf(stderr, "%*c> value_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "attr !('.' | '(' | '=')"));
6343 expr_ty attr;
6344 if (
6345 (attr = attr_rule(p)) // attr
6346 &&
6347 _PyPegen_lookahead(0, _tmp_55_rule, p)
6348 )
6349 {
6350 D(fprintf(stderr, "%*c+ value_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "attr !('.' | '(' | '=')"));
6351 _res = attr;
6352 if (_res == NULL && PyErr_Occurred()) {
6353 p->error_indicator = 1;
6354 D(p->level--);
6355 return NULL;
6356 }
6357 goto done;
6358 }
6359 p->mark = _mark;
6360 D(fprintf(stderr, "%*c%s value_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6361 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "attr !('.' | '(' | '=')"));
6362 }
6363 _res = NULL;
6364 done:
6365 D(p->level--);
6366 return _res;
6367}
6368
6369// Left-recursive
6370// attr: name_or_attr '.' NAME
6371static expr_ty attr_raw(Parser *);
6372static expr_ty
6373attr_rule(Parser *p)
6374{
6375 D(p->level++);
6376 expr_ty _res = NULL;
6377 if (_PyPegen_is_memoized(p, attr_type, &_res)) {
6378 D(p->level--);
6379 return _res;
6380 }
6381 int _mark = p->mark;
6382 int _resmark = p->mark;
6383 while (1) {
6384 int tmpvar_1 = _PyPegen_update_memo(p, _mark, attr_type, _res);
6385 if (tmpvar_1) {
6386 D(p->level--);
6387 return _res;
6388 }
6389 p->mark = _mark;
6390 void *_raw = attr_raw(p);
6391 if (p->error_indicator)
6392 return NULL;
6393 if (_raw == NULL || p->mark <= _resmark)
6394 break;
6395 _resmark = p->mark;
6396 _res = _raw;
6397 }
6398 p->mark = _resmark;
6399 D(p->level--);
6400 return _res;
6401}
6402static expr_ty
6403attr_raw(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 { // name_or_attr '.' NAME
6422 if (p->error_indicator) {
6423 D(p->level--);
6424 return NULL;
6425 }
6426 D(fprintf(stderr, "%*c> attr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "name_or_attr '.' NAME"));
6427 Token * _literal;
6428 expr_ty attr;
6429 expr_ty value;
6430 if (
6431 (value = name_or_attr_rule(p)) // name_or_attr
6432 &&
6433 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
6434 &&
6435 (attr = _PyPegen_name_token(p)) // NAME
6436 )
6437 {
6438 D(fprintf(stderr, "%*c+ attr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "name_or_attr '.' NAME"));
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_Attribute ( value , attr -> v . Name . id , 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 attr[%d-%d]: %s failed!\n", p->level, ' ',
6458 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "name_or_attr '.' NAME"));
6459 }
6460 _res = NULL;
6461 done:
6462 D(p->level--);
6463 return _res;
6464}
6465
6466// Left-recursive
6467// name_or_attr: attr | NAME
6468static expr_ty
6469name_or_attr_rule(Parser *p)
6470{
6471 D(p->level++);
6472 if (p->error_indicator) {
6473 D(p->level--);
6474 return NULL;
6475 }
6476 expr_ty _res = NULL;
6477 int _mark = p->mark;
6478 { // attr
6479 if (p->error_indicator) {
6480 D(p->level--);
6481 return NULL;
6482 }
6483 D(fprintf(stderr, "%*c> name_or_attr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "attr"));
6484 expr_ty attr_var;
6485 if (
6486 (attr_var = attr_rule(p)) // attr
6487 )
6488 {
6489 D(fprintf(stderr, "%*c+ name_or_attr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "attr"));
6490 _res = attr_var;
6491 goto done;
6492 }
6493 p->mark = _mark;
6494 D(fprintf(stderr, "%*c%s name_or_attr[%d-%d]: %s failed!\n", p->level, ' ',
6495 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "attr"));
6496 }
6497 { // NAME
6498 if (p->error_indicator) {
6499 D(p->level--);
6500 return NULL;
6501 }
6502 D(fprintf(stderr, "%*c> name_or_attr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
6503 expr_ty name_var;
6504 if (
6505 (name_var = _PyPegen_name_token(p)) // NAME
6506 )
6507 {
6508 D(fprintf(stderr, "%*c+ name_or_attr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
6509 _res = name_var;
6510 goto done;
6511 }
6512 p->mark = _mark;
6513 D(fprintf(stderr, "%*c%s name_or_attr[%d-%d]: %s failed!\n", p->level, ' ',
6514 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
6515 }
6516 _res = NULL;
6517 done:
6518 D(p->level--);
6519 return _res;
6520}
6521
6522// group_pattern: '(' pattern ')'
6523static expr_ty
6524group_pattern_rule(Parser *p)
6525{
6526 D(p->level++);
6527 if (p->error_indicator) {
6528 D(p->level--);
6529 return NULL;
6530 }
6531 expr_ty _res = NULL;
6532 int _mark = p->mark;
6533 { // '(' pattern ')'
6534 if (p->error_indicator) {
6535 D(p->level--);
6536 return NULL;
6537 }
6538 D(fprintf(stderr, "%*c> group_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' pattern ')'"));
6539 Token * _literal;
6540 Token * _literal_1;
6541 expr_ty pattern;
6542 if (
6543 (_literal = _PyPegen_expect_token(p, 7)) // token='('
6544 &&
6545 (pattern = pattern_rule(p)) // pattern
6546 &&
6547 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
6548 )
6549 {
6550 D(fprintf(stderr, "%*c+ group_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' pattern ')'"));
6551 _res = pattern;
6552 if (_res == NULL && PyErr_Occurred()) {
6553 p->error_indicator = 1;
6554 D(p->level--);
6555 return NULL;
6556 }
6557 goto done;
6558 }
6559 p->mark = _mark;
6560 D(fprintf(stderr, "%*c%s group_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6561 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' pattern ')'"));
6562 }
6563 _res = NULL;
6564 done:
6565 D(p->level--);
6566 return _res;
6567}
6568
6569// sequence_pattern: '[' maybe_sequence_pattern? ']' | '(' open_sequence_pattern? ')'
6570static expr_ty
6571sequence_pattern_rule(Parser *p)
6572{
6573 D(p->level++);
6574 if (p->error_indicator) {
6575 D(p->level--);
6576 return NULL;
6577 }
6578 expr_ty _res = NULL;
6579 int _mark = p->mark;
6580 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6581 p->error_indicator = 1;
6582 D(p->level--);
6583 return NULL;
6584 }
6585 int _start_lineno = p->tokens[_mark]->lineno;
6586 UNUSED(_start_lineno); // Only used by EXTRA macro
6587 int _start_col_offset = p->tokens[_mark]->col_offset;
6588 UNUSED(_start_col_offset); // Only used by EXTRA macro
6589 { // '[' maybe_sequence_pattern? ']'
6590 if (p->error_indicator) {
6591 D(p->level--);
6592 return NULL;
6593 }
6594 D(fprintf(stderr, "%*c> sequence_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' maybe_sequence_pattern? ']'"));
6595 Token * _literal;
6596 Token * _literal_1;
6597 void *values;
6598 if (
6599 (_literal = _PyPegen_expect_token(p, 9)) // token='['
6600 &&
6601 (values = maybe_sequence_pattern_rule(p), 1) // maybe_sequence_pattern?
6602 &&
6603 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
6604 )
6605 {
6606 D(fprintf(stderr, "%*c+ sequence_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' maybe_sequence_pattern? ']'"));
6607 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6608 if (_token == NULL) {
6609 D(p->level--);
6610 return NULL;
6611 }
6612 int _end_lineno = _token->end_lineno;
6613 UNUSED(_end_lineno); // Only used by EXTRA macro
6614 int _end_col_offset = _token->end_col_offset;
6615 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02006616 _res = _PyAST_List ( values , Load , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08006617 if (_res == NULL && PyErr_Occurred()) {
6618 p->error_indicator = 1;
6619 D(p->level--);
6620 return NULL;
6621 }
6622 goto done;
6623 }
6624 p->mark = _mark;
6625 D(fprintf(stderr, "%*c%s sequence_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6626 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' maybe_sequence_pattern? ']'"));
6627 }
6628 { // '(' open_sequence_pattern? ')'
6629 if (p->error_indicator) {
6630 D(p->level--);
6631 return NULL;
6632 }
6633 D(fprintf(stderr, "%*c> sequence_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' open_sequence_pattern? ')'"));
6634 Token * _literal;
6635 Token * _literal_1;
6636 void *values;
6637 if (
6638 (_literal = _PyPegen_expect_token(p, 7)) // token='('
6639 &&
6640 (values = open_sequence_pattern_rule(p), 1) // open_sequence_pattern?
6641 &&
6642 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
6643 )
6644 {
6645 D(fprintf(stderr, "%*c+ sequence_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' open_sequence_pattern? ')'"));
6646 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6647 if (_token == NULL) {
6648 D(p->level--);
6649 return NULL;
6650 }
6651 int _end_lineno = _token->end_lineno;
6652 UNUSED(_end_lineno); // Only used by EXTRA macro
6653 int _end_col_offset = _token->end_col_offset;
6654 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02006655 _res = _PyAST_Tuple ( values , Load , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08006656 if (_res == NULL && PyErr_Occurred()) {
6657 p->error_indicator = 1;
6658 D(p->level--);
6659 return NULL;
6660 }
6661 goto done;
6662 }
6663 p->mark = _mark;
6664 D(fprintf(stderr, "%*c%s sequence_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6665 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' open_sequence_pattern? ')'"));
6666 }
6667 _res = NULL;
6668 done:
6669 D(p->level--);
6670 return _res;
6671}
6672
6673// open_sequence_pattern: maybe_star_pattern ',' maybe_sequence_pattern?
6674static asdl_seq*
6675open_sequence_pattern_rule(Parser *p)
6676{
6677 D(p->level++);
6678 if (p->error_indicator) {
6679 D(p->level--);
6680 return NULL;
6681 }
6682 asdl_seq* _res = NULL;
6683 int _mark = p->mark;
6684 { // maybe_star_pattern ',' maybe_sequence_pattern?
6685 if (p->error_indicator) {
6686 D(p->level--);
6687 return NULL;
6688 }
6689 D(fprintf(stderr, "%*c> open_sequence_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "maybe_star_pattern ',' maybe_sequence_pattern?"));
6690 Token * _literal;
6691 expr_ty value;
6692 void *values;
6693 if (
6694 (value = maybe_star_pattern_rule(p)) // maybe_star_pattern
6695 &&
6696 (_literal = _PyPegen_expect_token(p, 12)) // token=','
6697 &&
6698 (values = maybe_sequence_pattern_rule(p), 1) // maybe_sequence_pattern?
6699 )
6700 {
6701 D(fprintf(stderr, "%*c+ open_sequence_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "maybe_star_pattern ',' maybe_sequence_pattern?"));
6702 _res = _PyPegen_seq_insert_in_front ( p , value , values );
6703 if (_res == NULL && PyErr_Occurred()) {
6704 p->error_indicator = 1;
6705 D(p->level--);
6706 return NULL;
6707 }
6708 goto done;
6709 }
6710 p->mark = _mark;
6711 D(fprintf(stderr, "%*c%s open_sequence_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6712 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "maybe_star_pattern ',' maybe_sequence_pattern?"));
6713 }
6714 _res = NULL;
6715 done:
6716 D(p->level--);
6717 return _res;
6718}
6719
6720// maybe_sequence_pattern: ','.maybe_star_pattern+ ','?
6721static asdl_seq*
6722maybe_sequence_pattern_rule(Parser *p)
6723{
6724 D(p->level++);
6725 if (p->error_indicator) {
6726 D(p->level--);
6727 return NULL;
6728 }
6729 asdl_seq* _res = NULL;
6730 int _mark = p->mark;
6731 { // ','.maybe_star_pattern+ ','?
6732 if (p->error_indicator) {
6733 D(p->level--);
6734 return NULL;
6735 }
6736 D(fprintf(stderr, "%*c> maybe_sequence_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.maybe_star_pattern+ ','?"));
6737 void *_opt_var;
6738 UNUSED(_opt_var); // Silence compiler warnings
6739 asdl_seq * values;
6740 if (
6741 (values = _gather_56_rule(p)) // ','.maybe_star_pattern+
6742 &&
6743 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
6744 )
6745 {
6746 D(fprintf(stderr, "%*c+ maybe_sequence_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.maybe_star_pattern+ ','?"));
6747 _res = values;
6748 if (_res == NULL && PyErr_Occurred()) {
6749 p->error_indicator = 1;
6750 D(p->level--);
6751 return NULL;
6752 }
6753 goto done;
6754 }
6755 p->mark = _mark;
6756 D(fprintf(stderr, "%*c%s maybe_sequence_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6757 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.maybe_star_pattern+ ','?"));
6758 }
6759 _res = NULL;
6760 done:
6761 D(p->level--);
6762 return _res;
6763}
6764
6765// maybe_star_pattern: star_pattern | pattern
6766static expr_ty
6767maybe_star_pattern_rule(Parser *p)
6768{
6769 D(p->level++);
6770 if (p->error_indicator) {
6771 D(p->level--);
6772 return NULL;
6773 }
6774 expr_ty _res = NULL;
6775 int _mark = p->mark;
6776 { // star_pattern
6777 if (p->error_indicator) {
6778 D(p->level--);
6779 return NULL;
6780 }
6781 D(fprintf(stderr, "%*c> maybe_star_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_pattern"));
6782 expr_ty star_pattern_var;
6783 if (
6784 (star_pattern_var = star_pattern_rule(p)) // star_pattern
6785 )
6786 {
6787 D(fprintf(stderr, "%*c+ maybe_star_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_pattern"));
6788 _res = star_pattern_var;
6789 goto done;
6790 }
6791 p->mark = _mark;
6792 D(fprintf(stderr, "%*c%s maybe_star_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6793 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_pattern"));
6794 }
6795 { // pattern
6796 if (p->error_indicator) {
6797 D(p->level--);
6798 return NULL;
6799 }
6800 D(fprintf(stderr, "%*c> maybe_star_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "pattern"));
6801 expr_ty pattern_var;
6802 if (
6803 (pattern_var = pattern_rule(p)) // pattern
6804 )
6805 {
6806 D(fprintf(stderr, "%*c+ maybe_star_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "pattern"));
6807 _res = pattern_var;
6808 goto done;
6809 }
6810 p->mark = _mark;
6811 D(fprintf(stderr, "%*c%s maybe_star_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6812 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "pattern"));
6813 }
6814 _res = NULL;
6815 done:
6816 D(p->level--);
6817 return _res;
6818}
6819
6820// star_pattern: '*' (capture_pattern | wildcard_pattern)
6821static expr_ty
6822star_pattern_rule(Parser *p)
6823{
6824 D(p->level++);
6825 if (p->error_indicator) {
6826 D(p->level--);
6827 return NULL;
6828 }
6829 expr_ty _res = NULL;
6830 int _mark = p->mark;
6831 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6832 p->error_indicator = 1;
6833 D(p->level--);
6834 return NULL;
6835 }
6836 int _start_lineno = p->tokens[_mark]->lineno;
6837 UNUSED(_start_lineno); // Only used by EXTRA macro
6838 int _start_col_offset = p->tokens[_mark]->col_offset;
6839 UNUSED(_start_col_offset); // Only used by EXTRA macro
6840 { // '*' (capture_pattern | wildcard_pattern)
6841 if (p->error_indicator) {
6842 D(p->level--);
6843 return NULL;
6844 }
6845 D(fprintf(stderr, "%*c> star_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (capture_pattern | wildcard_pattern)"));
6846 Token * _literal;
6847 void *value;
6848 if (
6849 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
6850 &&
6851 (value = _tmp_58_rule(p)) // capture_pattern | wildcard_pattern
6852 )
6853 {
6854 D(fprintf(stderr, "%*c+ star_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (capture_pattern | wildcard_pattern)"));
6855 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6856 if (_token == NULL) {
6857 D(p->level--);
6858 return NULL;
6859 }
6860 int _end_lineno = _token->end_lineno;
6861 UNUSED(_end_lineno); // Only used by EXTRA macro
6862 int _end_col_offset = _token->end_col_offset;
6863 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02006864 _res = _PyAST_Starred ( value , Store , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08006865 if (_res == NULL && PyErr_Occurred()) {
6866 p->error_indicator = 1;
6867 D(p->level--);
6868 return NULL;
6869 }
6870 goto done;
6871 }
6872 p->mark = _mark;
6873 D(fprintf(stderr, "%*c%s star_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6874 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' (capture_pattern | wildcard_pattern)"));
6875 }
6876 _res = NULL;
6877 done:
6878 D(p->level--);
6879 return _res;
6880}
6881
6882// mapping_pattern: '{' items_pattern? '}'
6883static expr_ty
6884mapping_pattern_rule(Parser *p)
6885{
6886 D(p->level++);
6887 if (p->error_indicator) {
6888 D(p->level--);
6889 return NULL;
6890 }
6891 expr_ty _res = NULL;
6892 int _mark = p->mark;
6893 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6894 p->error_indicator = 1;
6895 D(p->level--);
6896 return NULL;
6897 }
6898 int _start_lineno = p->tokens[_mark]->lineno;
6899 UNUSED(_start_lineno); // Only used by EXTRA macro
6900 int _start_col_offset = p->tokens[_mark]->col_offset;
6901 UNUSED(_start_col_offset); // Only used by EXTRA macro
6902 { // '{' items_pattern? '}'
6903 if (p->error_indicator) {
6904 D(p->level--);
6905 return NULL;
6906 }
6907 D(fprintf(stderr, "%*c> mapping_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' items_pattern? '}'"));
6908 Token * _literal;
6909 Token * _literal_1;
6910 void *items;
6911 if (
6912 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
6913 &&
6914 (items = items_pattern_rule(p), 1) // items_pattern?
6915 &&
6916 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
6917 )
6918 {
6919 D(fprintf(stderr, "%*c+ mapping_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' items_pattern? '}'"));
6920 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6921 if (_token == NULL) {
6922 D(p->level--);
6923 return NULL;
6924 }
6925 int _end_lineno = _token->end_lineno;
6926 UNUSED(_end_lineno); // Only used by EXTRA macro
6927 int _end_col_offset = _token->end_col_offset;
6928 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02006929 _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 -08006930 if (_res == NULL && PyErr_Occurred()) {
6931 p->error_indicator = 1;
6932 D(p->level--);
6933 return NULL;
6934 }
6935 goto done;
6936 }
6937 p->mark = _mark;
6938 D(fprintf(stderr, "%*c%s mapping_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6939 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' items_pattern? '}'"));
6940 }
6941 _res = NULL;
6942 done:
6943 D(p->level--);
6944 return _res;
6945}
6946
6947// items_pattern: ','.key_value_pattern+ ','?
6948static asdl_seq*
6949items_pattern_rule(Parser *p)
6950{
6951 D(p->level++);
6952 if (p->error_indicator) {
6953 D(p->level--);
6954 return NULL;
6955 }
6956 asdl_seq* _res = NULL;
6957 int _mark = p->mark;
6958 { // ','.key_value_pattern+ ','?
6959 if (p->error_indicator) {
6960 D(p->level--);
6961 return NULL;
6962 }
6963 D(fprintf(stderr, "%*c> items_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.key_value_pattern+ ','?"));
6964 void *_opt_var;
6965 UNUSED(_opt_var); // Silence compiler warnings
6966 asdl_seq * items;
6967 if (
6968 (items = _gather_59_rule(p)) // ','.key_value_pattern+
6969 &&
6970 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
6971 )
6972 {
6973 D(fprintf(stderr, "%*c+ items_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.key_value_pattern+ ','?"));
6974 _res = items;
6975 if (_res == NULL && PyErr_Occurred()) {
6976 p->error_indicator = 1;
6977 D(p->level--);
6978 return NULL;
6979 }
6980 goto done;
6981 }
6982 p->mark = _mark;
6983 D(fprintf(stderr, "%*c%s items_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6984 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.key_value_pattern+ ','?"));
6985 }
6986 _res = NULL;
6987 done:
6988 D(p->level--);
6989 return _res;
6990}
6991
6992// key_value_pattern: (literal_pattern | value_pattern) ':' pattern | double_star_pattern
6993static KeyValuePair*
6994key_value_pattern_rule(Parser *p)
6995{
6996 D(p->level++);
6997 if (p->error_indicator) {
6998 D(p->level--);
6999 return NULL;
7000 }
7001 KeyValuePair* _res = NULL;
7002 int _mark = p->mark;
7003 { // (literal_pattern | value_pattern) ':' pattern
7004 if (p->error_indicator) {
7005 D(p->level--);
7006 return NULL;
7007 }
7008 D(fprintf(stderr, "%*c> key_value_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(literal_pattern | value_pattern) ':' pattern"));
7009 Token * _literal;
7010 void *key;
7011 expr_ty value;
7012 if (
7013 (key = _tmp_61_rule(p)) // literal_pattern | value_pattern
7014 &&
7015 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
7016 &&
7017 (value = pattern_rule(p)) // pattern
7018 )
7019 {
7020 D(fprintf(stderr, "%*c+ key_value_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(literal_pattern | value_pattern) ':' pattern"));
7021 _res = _PyPegen_key_value_pair ( p , key , value );
7022 if (_res == NULL && PyErr_Occurred()) {
7023 p->error_indicator = 1;
7024 D(p->level--);
7025 return NULL;
7026 }
7027 goto done;
7028 }
7029 p->mark = _mark;
7030 D(fprintf(stderr, "%*c%s key_value_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7031 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(literal_pattern | value_pattern) ':' pattern"));
7032 }
7033 { // double_star_pattern
7034 if (p->error_indicator) {
7035 D(p->level--);
7036 return NULL;
7037 }
7038 D(fprintf(stderr, "%*c> key_value_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "double_star_pattern"));
7039 KeyValuePair* double_star_pattern_var;
7040 if (
7041 (double_star_pattern_var = double_star_pattern_rule(p)) // double_star_pattern
7042 )
7043 {
7044 D(fprintf(stderr, "%*c+ key_value_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "double_star_pattern"));
7045 _res = double_star_pattern_var;
7046 goto done;
7047 }
7048 p->mark = _mark;
7049 D(fprintf(stderr, "%*c%s key_value_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7050 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "double_star_pattern"));
7051 }
7052 _res = NULL;
7053 done:
7054 D(p->level--);
7055 return _res;
7056}
7057
7058// double_star_pattern: '**' capture_pattern
7059static KeyValuePair*
7060double_star_pattern_rule(Parser *p)
7061{
7062 D(p->level++);
7063 if (p->error_indicator) {
7064 D(p->level--);
7065 return NULL;
7066 }
7067 KeyValuePair* _res = NULL;
7068 int _mark = p->mark;
7069 { // '**' capture_pattern
7070 if (p->error_indicator) {
7071 D(p->level--);
7072 return NULL;
7073 }
7074 D(fprintf(stderr, "%*c> double_star_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' capture_pattern"));
7075 Token * _literal;
7076 expr_ty value;
7077 if (
7078 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
7079 &&
7080 (value = capture_pattern_rule(p)) // capture_pattern
7081 )
7082 {
7083 D(fprintf(stderr, "%*c+ double_star_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' capture_pattern"));
7084 _res = _PyPegen_key_value_pair ( p , NULL , value );
7085 if (_res == NULL && PyErr_Occurred()) {
7086 p->error_indicator = 1;
7087 D(p->level--);
7088 return NULL;
7089 }
7090 goto done;
7091 }
7092 p->mark = _mark;
7093 D(fprintf(stderr, "%*c%s double_star_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7094 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' capture_pattern"));
7095 }
7096 _res = NULL;
7097 done:
7098 D(p->level--);
7099 return _res;
7100}
7101
7102// class_pattern:
7103// | name_or_attr '(' ')'
7104// | name_or_attr '(' positional_patterns ','? ')'
7105// | name_or_attr '(' keyword_patterns ','? ')'
7106// | name_or_attr '(' positional_patterns ',' keyword_patterns ','? ')'
7107static expr_ty
7108class_pattern_rule(Parser *p)
7109{
7110 D(p->level++);
7111 if (p->error_indicator) {
7112 D(p->level--);
7113 return NULL;
7114 }
7115 expr_ty _res = NULL;
7116 int _mark = p->mark;
7117 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
7118 p->error_indicator = 1;
7119 D(p->level--);
7120 return NULL;
7121 }
7122 int _start_lineno = p->tokens[_mark]->lineno;
7123 UNUSED(_start_lineno); // Only used by EXTRA macro
7124 int _start_col_offset = p->tokens[_mark]->col_offset;
7125 UNUSED(_start_col_offset); // Only used by EXTRA macro
7126 { // name_or_attr '(' ')'
7127 if (p->error_indicator) {
7128 D(p->level--);
7129 return NULL;
7130 }
7131 D(fprintf(stderr, "%*c> class_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' ')'"));
7132 Token * _literal;
7133 Token * _literal_1;
7134 expr_ty func;
7135 if (
7136 (func = name_or_attr_rule(p)) // name_or_attr
7137 &&
7138 (_literal = _PyPegen_expect_token(p, 7)) // token='('
7139 &&
7140 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
7141 )
7142 {
7143 D(fprintf(stderr, "%*c+ class_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' ')'"));
7144 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7145 if (_token == NULL) {
7146 D(p->level--);
7147 return NULL;
7148 }
7149 int _end_lineno = _token->end_lineno;
7150 UNUSED(_end_lineno); // Only used by EXTRA macro
7151 int _end_col_offset = _token->end_col_offset;
7152 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02007153 _res = _PyAST_Call ( func , NULL , NULL , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08007154 if (_res == NULL && PyErr_Occurred()) {
7155 p->error_indicator = 1;
7156 D(p->level--);
7157 return NULL;
7158 }
7159 goto done;
7160 }
7161 p->mark = _mark;
7162 D(fprintf(stderr, "%*c%s class_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7163 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "name_or_attr '(' ')'"));
7164 }
7165 { // name_or_attr '(' positional_patterns ','? ')'
7166 if (p->error_indicator) {
7167 D(p->level--);
7168 return NULL;
7169 }
7170 D(fprintf(stderr, "%*c> class_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' positional_patterns ','? ')'"));
7171 Token * _literal;
7172 Token * _literal_1;
7173 void *_opt_var;
7174 UNUSED(_opt_var); // Silence compiler warnings
7175 asdl_expr_seq* args;
7176 expr_ty func;
7177 if (
7178 (func = name_or_attr_rule(p)) // name_or_attr
7179 &&
7180 (_literal = _PyPegen_expect_token(p, 7)) // token='('
7181 &&
7182 (args = positional_patterns_rule(p)) // positional_patterns
7183 &&
7184 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
7185 &&
7186 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
7187 )
7188 {
7189 D(fprintf(stderr, "%*c+ class_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' positional_patterns ','? ')'"));
7190 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7191 if (_token == NULL) {
7192 D(p->level--);
7193 return NULL;
7194 }
7195 int _end_lineno = _token->end_lineno;
7196 UNUSED(_end_lineno); // Only used by EXTRA macro
7197 int _end_col_offset = _token->end_col_offset;
7198 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02007199 _res = _PyAST_Call ( func , args , NULL , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08007200 if (_res == NULL && PyErr_Occurred()) {
7201 p->error_indicator = 1;
7202 D(p->level--);
7203 return NULL;
7204 }
7205 goto done;
7206 }
7207 p->mark = _mark;
7208 D(fprintf(stderr, "%*c%s class_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7209 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "name_or_attr '(' positional_patterns ','? ')'"));
7210 }
7211 { // name_or_attr '(' keyword_patterns ','? ')'
7212 if (p->error_indicator) {
7213 D(p->level--);
7214 return NULL;
7215 }
7216 D(fprintf(stderr, "%*c> class_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' keyword_patterns ','? ')'"));
7217 Token * _literal;
7218 Token * _literal_1;
7219 void *_opt_var;
7220 UNUSED(_opt_var); // Silence compiler warnings
7221 expr_ty func;
7222 asdl_keyword_seq* keywords;
7223 if (
7224 (func = name_or_attr_rule(p)) // name_or_attr
7225 &&
7226 (_literal = _PyPegen_expect_token(p, 7)) // token='('
7227 &&
7228 (keywords = keyword_patterns_rule(p)) // keyword_patterns
7229 &&
7230 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
7231 &&
7232 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
7233 )
7234 {
7235 D(fprintf(stderr, "%*c+ class_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' keyword_patterns ','? ')'"));
7236 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7237 if (_token == NULL) {
7238 D(p->level--);
7239 return NULL;
7240 }
7241 int _end_lineno = _token->end_lineno;
7242 UNUSED(_end_lineno); // Only used by EXTRA macro
7243 int _end_col_offset = _token->end_col_offset;
7244 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02007245 _res = _PyAST_Call ( func , NULL , keywords , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08007246 if (_res == NULL && PyErr_Occurred()) {
7247 p->error_indicator = 1;
7248 D(p->level--);
7249 return NULL;
7250 }
7251 goto done;
7252 }
7253 p->mark = _mark;
7254 D(fprintf(stderr, "%*c%s class_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7255 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "name_or_attr '(' keyword_patterns ','? ')'"));
7256 }
7257 { // name_or_attr '(' positional_patterns ',' keyword_patterns ','? ')'
7258 if (p->error_indicator) {
7259 D(p->level--);
7260 return NULL;
7261 }
7262 D(fprintf(stderr, "%*c> class_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' positional_patterns ',' keyword_patterns ','? ')'"));
7263 Token * _literal;
7264 Token * _literal_1;
7265 Token * _literal_2;
7266 void *_opt_var;
7267 UNUSED(_opt_var); // Silence compiler warnings
7268 asdl_expr_seq* args;
7269 expr_ty func;
7270 asdl_keyword_seq* keywords;
7271 if (
7272 (func = name_or_attr_rule(p)) // name_or_attr
7273 &&
7274 (_literal = _PyPegen_expect_token(p, 7)) // token='('
7275 &&
7276 (args = positional_patterns_rule(p)) // positional_patterns
7277 &&
7278 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
7279 &&
7280 (keywords = keyword_patterns_rule(p)) // keyword_patterns
7281 &&
7282 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
7283 &&
7284 (_literal_2 = _PyPegen_expect_token(p, 8)) // token=')'
7285 )
7286 {
7287 D(fprintf(stderr, "%*c+ class_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' positional_patterns ',' keyword_patterns ','? ')'"));
7288 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7289 if (_token == NULL) {
7290 D(p->level--);
7291 return NULL;
7292 }
7293 int _end_lineno = _token->end_lineno;
7294 UNUSED(_end_lineno); // Only used by EXTRA macro
7295 int _end_col_offset = _token->end_col_offset;
7296 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02007297 _res = _PyAST_Call ( func , args , keywords , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08007298 if (_res == NULL && PyErr_Occurred()) {
7299 p->error_indicator = 1;
7300 D(p->level--);
7301 return NULL;
7302 }
7303 goto done;
7304 }
7305 p->mark = _mark;
7306 D(fprintf(stderr, "%*c%s class_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7307 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "name_or_attr '(' positional_patterns ',' keyword_patterns ','? ')'"));
7308 }
7309 _res = NULL;
7310 done:
7311 D(p->level--);
7312 return _res;
7313}
7314
7315// positional_patterns: ','.pattern+
7316static asdl_expr_seq*
7317positional_patterns_rule(Parser *p)
7318{
7319 D(p->level++);
7320 if (p->error_indicator) {
7321 D(p->level--);
7322 return NULL;
7323 }
7324 asdl_expr_seq* _res = NULL;
7325 int _mark = p->mark;
7326 { // ','.pattern+
7327 if (p->error_indicator) {
7328 D(p->level--);
7329 return NULL;
7330 }
7331 D(fprintf(stderr, "%*c> positional_patterns[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.pattern+"));
7332 asdl_expr_seq* args;
7333 if (
7334 (args = (asdl_expr_seq*)_gather_62_rule(p)) // ','.pattern+
7335 )
7336 {
7337 D(fprintf(stderr, "%*c+ positional_patterns[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.pattern+"));
7338 _res = args;
7339 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 positional_patterns[%d-%d]: %s failed!\n", p->level, ' ',
7348 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.pattern+"));
7349 }
7350 _res = NULL;
7351 done:
7352 D(p->level--);
7353 return _res;
7354}
7355
7356// keyword_patterns: ','.keyword_pattern+
7357static asdl_keyword_seq*
7358keyword_patterns_rule(Parser *p)
7359{
7360 D(p->level++);
7361 if (p->error_indicator) {
7362 D(p->level--);
7363 return NULL;
7364 }
7365 asdl_keyword_seq* _res = NULL;
7366 int _mark = p->mark;
7367 { // ','.keyword_pattern+
7368 if (p->error_indicator) {
7369 D(p->level--);
7370 return NULL;
7371 }
7372 D(fprintf(stderr, "%*c> keyword_patterns[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.keyword_pattern+"));
7373 asdl_keyword_seq* keywords;
7374 if (
7375 (keywords = (asdl_keyword_seq*)_gather_64_rule(p)) // ','.keyword_pattern+
7376 )
7377 {
7378 D(fprintf(stderr, "%*c+ keyword_patterns[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.keyword_pattern+"));
7379 _res = keywords;
7380 if (_res == NULL && PyErr_Occurred()) {
7381 p->error_indicator = 1;
7382 D(p->level--);
7383 return NULL;
7384 }
7385 goto done;
7386 }
7387 p->mark = _mark;
7388 D(fprintf(stderr, "%*c%s keyword_patterns[%d-%d]: %s failed!\n", p->level, ' ',
7389 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.keyword_pattern+"));
7390 }
7391 _res = NULL;
7392 done:
7393 D(p->level--);
7394 return _res;
7395}
7396
7397// keyword_pattern: NAME '=' pattern
7398static keyword_ty
7399keyword_pattern_rule(Parser *p)
7400{
7401 D(p->level++);
7402 if (p->error_indicator) {
7403 D(p->level--);
7404 return NULL;
7405 }
7406 keyword_ty _res = NULL;
7407 int _mark = p->mark;
7408 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
7409 p->error_indicator = 1;
7410 D(p->level--);
7411 return NULL;
7412 }
7413 int _start_lineno = p->tokens[_mark]->lineno;
7414 UNUSED(_start_lineno); // Only used by EXTRA macro
7415 int _start_col_offset = p->tokens[_mark]->col_offset;
7416 UNUSED(_start_col_offset); // Only used by EXTRA macro
7417 { // NAME '=' pattern
7418 if (p->error_indicator) {
7419 D(p->level--);
7420 return NULL;
7421 }
7422 D(fprintf(stderr, "%*c> keyword_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '=' pattern"));
7423 Token * _literal;
7424 expr_ty arg;
7425 expr_ty value;
7426 if (
7427 (arg = _PyPegen_name_token(p)) // NAME
7428 &&
7429 (_literal = _PyPegen_expect_token(p, 22)) // token='='
7430 &&
7431 (value = pattern_rule(p)) // pattern
7432 )
7433 {
7434 D(fprintf(stderr, "%*c+ keyword_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '=' pattern"));
7435 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7436 if (_token == NULL) {
7437 D(p->level--);
7438 return NULL;
7439 }
7440 int _end_lineno = _token->end_lineno;
7441 UNUSED(_end_lineno); // Only used by EXTRA macro
7442 int _end_col_offset = _token->end_col_offset;
7443 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02007444 _res = _PyAST_keyword ( arg -> v . Name . id , value , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08007445 if (_res == NULL && PyErr_Occurred()) {
7446 p->error_indicator = 1;
7447 D(p->level--);
7448 return NULL;
7449 }
7450 goto done;
7451 }
7452 p->mark = _mark;
7453 D(fprintf(stderr, "%*c%s keyword_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7454 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' pattern"));
7455 }
7456 _res = NULL;
7457 done:
7458 D(p->level--);
7459 return _res;
7460}
7461
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007462// return_stmt: 'return' star_expressions?
7463static stmt_ty
7464return_stmt_rule(Parser *p)
7465{
7466 D(p->level++);
7467 if (p->error_indicator) {
7468 D(p->level--);
7469 return NULL;
7470 }
7471 stmt_ty _res = NULL;
7472 int _mark = p->mark;
7473 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
7474 p->error_indicator = 1;
7475 D(p->level--);
7476 return NULL;
7477 }
7478 int _start_lineno = p->tokens[_mark]->lineno;
7479 UNUSED(_start_lineno); // Only used by EXTRA macro
7480 int _start_col_offset = p->tokens[_mark]->col_offset;
7481 UNUSED(_start_col_offset); // Only used by EXTRA macro
7482 { // 'return' star_expressions?
7483 if (p->error_indicator) {
7484 D(p->level--);
7485 return NULL;
7486 }
7487 D(fprintf(stderr, "%*c> return_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'return' star_expressions?"));
7488 Token * _keyword;
7489 void *a;
7490 if (
7491 (_keyword = _PyPegen_expect_token(p, 500)) // token='return'
7492 &&
7493 (a = star_expressions_rule(p), 1) // star_expressions?
7494 )
7495 {
7496 D(fprintf(stderr, "%*c+ return_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'return' star_expressions?"));
7497 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7498 if (_token == NULL) {
7499 D(p->level--);
7500 return NULL;
7501 }
7502 int _end_lineno = _token->end_lineno;
7503 UNUSED(_end_lineno); // Only used by EXTRA macro
7504 int _end_col_offset = _token->end_col_offset;
7505 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02007506 _res = _PyAST_Return ( a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007507 if (_res == NULL && PyErr_Occurred()) {
7508 p->error_indicator = 1;
7509 D(p->level--);
7510 return NULL;
7511 }
7512 goto done;
7513 }
7514 p->mark = _mark;
7515 D(fprintf(stderr, "%*c%s return_stmt[%d-%d]: %s failed!\n", p->level, ' ',
7516 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'return' star_expressions?"));
7517 }
7518 _res = NULL;
7519 done:
7520 D(p->level--);
7521 return _res;
7522}
7523
7524// raise_stmt: 'raise' expression ['from' expression] | 'raise'
7525static stmt_ty
7526raise_stmt_rule(Parser *p)
7527{
7528 D(p->level++);
7529 if (p->error_indicator) {
7530 D(p->level--);
7531 return NULL;
7532 }
7533 stmt_ty _res = NULL;
7534 int _mark = p->mark;
7535 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
7536 p->error_indicator = 1;
7537 D(p->level--);
7538 return NULL;
7539 }
7540 int _start_lineno = p->tokens[_mark]->lineno;
7541 UNUSED(_start_lineno); // Only used by EXTRA macro
7542 int _start_col_offset = p->tokens[_mark]->col_offset;
7543 UNUSED(_start_col_offset); // Only used by EXTRA macro
7544 { // 'raise' expression ['from' expression]
7545 if (p->error_indicator) {
7546 D(p->level--);
7547 return NULL;
7548 }
7549 D(fprintf(stderr, "%*c> raise_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'raise' expression ['from' expression]"));
7550 Token * _keyword;
7551 expr_ty a;
7552 void *b;
7553 if (
7554 (_keyword = _PyPegen_expect_token(p, 501)) // token='raise'
7555 &&
7556 (a = expression_rule(p)) // expression
7557 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08007558 (b = _tmp_66_rule(p), 1) // ['from' expression]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007559 )
7560 {
7561 D(fprintf(stderr, "%*c+ raise_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'raise' expression ['from' expression]"));
7562 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7563 if (_token == NULL) {
7564 D(p->level--);
7565 return NULL;
7566 }
7567 int _end_lineno = _token->end_lineno;
7568 UNUSED(_end_lineno); // Only used by EXTRA macro
7569 int _end_col_offset = _token->end_col_offset;
7570 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02007571 _res = _PyAST_Raise ( a , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007572 if (_res == NULL && PyErr_Occurred()) {
7573 p->error_indicator = 1;
7574 D(p->level--);
7575 return NULL;
7576 }
7577 goto done;
7578 }
7579 p->mark = _mark;
7580 D(fprintf(stderr, "%*c%s raise_stmt[%d-%d]: %s failed!\n", p->level, ' ',
7581 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'raise' expression ['from' expression]"));
7582 }
7583 { // 'raise'
7584 if (p->error_indicator) {
7585 D(p->level--);
7586 return NULL;
7587 }
7588 D(fprintf(stderr, "%*c> raise_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'raise'"));
7589 Token * _keyword;
7590 if (
7591 (_keyword = _PyPegen_expect_token(p, 501)) // token='raise'
7592 )
7593 {
7594 D(fprintf(stderr, "%*c+ raise_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'raise'"));
7595 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7596 if (_token == NULL) {
7597 D(p->level--);
7598 return NULL;
7599 }
7600 int _end_lineno = _token->end_lineno;
7601 UNUSED(_end_lineno); // Only used by EXTRA macro
7602 int _end_col_offset = _token->end_col_offset;
7603 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02007604 _res = _PyAST_Raise ( NULL , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007605 if (_res == NULL && PyErr_Occurred()) {
7606 p->error_indicator = 1;
7607 D(p->level--);
7608 return NULL;
7609 }
7610 goto done;
7611 }
7612 p->mark = _mark;
7613 D(fprintf(stderr, "%*c%s raise_stmt[%d-%d]: %s failed!\n", p->level, ' ',
7614 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'raise'"));
7615 }
7616 _res = NULL;
7617 done:
7618 D(p->level--);
7619 return _res;
7620}
7621
7622// function_def: decorators function_def_raw | function_def_raw
7623static stmt_ty
7624function_def_rule(Parser *p)
7625{
7626 D(p->level++);
7627 if (p->error_indicator) {
7628 D(p->level--);
7629 return NULL;
7630 }
7631 stmt_ty _res = NULL;
7632 int _mark = p->mark;
7633 { // decorators function_def_raw
7634 if (p->error_indicator) {
7635 D(p->level--);
7636 return NULL;
7637 }
7638 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 +01007639 asdl_expr_seq* d;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007640 stmt_ty f;
7641 if (
7642 (d = decorators_rule(p)) // decorators
7643 &&
7644 (f = function_def_raw_rule(p)) // function_def_raw
7645 )
7646 {
7647 D(fprintf(stderr, "%*c+ function_def[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "decorators function_def_raw"));
7648 _res = _PyPegen_function_def_decorators ( p , d , f );
7649 if (_res == NULL && PyErr_Occurred()) {
7650 p->error_indicator = 1;
7651 D(p->level--);
7652 return NULL;
7653 }
7654 goto done;
7655 }
7656 p->mark = _mark;
7657 D(fprintf(stderr, "%*c%s function_def[%d-%d]: %s failed!\n", p->level, ' ',
7658 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "decorators function_def_raw"));
7659 }
7660 { // function_def_raw
7661 if (p->error_indicator) {
7662 D(p->level--);
7663 return NULL;
7664 }
7665 D(fprintf(stderr, "%*c> function_def[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "function_def_raw"));
7666 stmt_ty function_def_raw_var;
7667 if (
7668 (function_def_raw_var = function_def_raw_rule(p)) // function_def_raw
7669 )
7670 {
7671 D(fprintf(stderr, "%*c+ function_def[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "function_def_raw"));
7672 _res = function_def_raw_var;
7673 goto done;
7674 }
7675 p->mark = _mark;
7676 D(fprintf(stderr, "%*c%s function_def[%d-%d]: %s failed!\n", p->level, ' ',
7677 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "function_def_raw"));
7678 }
7679 _res = NULL;
7680 done:
7681 D(p->level--);
7682 return _res;
7683}
7684
7685// function_def_raw:
Pablo Galindo56c95df2021-04-21 15:28:21 +01007686// | invalid_def_raw
Pablo Galindo58fb1562021-02-02 19:54:22 +00007687// | 'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block
7688// | ASYNC 'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007689static stmt_ty
7690function_def_raw_rule(Parser *p)
7691{
7692 D(p->level++);
7693 if (p->error_indicator) {
7694 D(p->level--);
7695 return NULL;
7696 }
7697 stmt_ty _res = NULL;
7698 int _mark = p->mark;
7699 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
7700 p->error_indicator = 1;
7701 D(p->level--);
7702 return NULL;
7703 }
7704 int _start_lineno = p->tokens[_mark]->lineno;
7705 UNUSED(_start_lineno); // Only used by EXTRA macro
7706 int _start_col_offset = p->tokens[_mark]->col_offset;
7707 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo56c95df2021-04-21 15:28:21 +01007708 if (p->call_invalid_rules) { // invalid_def_raw
7709 if (p->error_indicator) {
7710 D(p->level--);
7711 return NULL;
7712 }
7713 D(fprintf(stderr, "%*c> function_def_raw[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_def_raw"));
7714 void *invalid_def_raw_var;
7715 if (
7716 (invalid_def_raw_var = invalid_def_raw_rule(p)) // invalid_def_raw
7717 )
7718 {
7719 D(fprintf(stderr, "%*c+ function_def_raw[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_def_raw"));
7720 _res = invalid_def_raw_var;
7721 goto done;
7722 }
7723 p->mark = _mark;
7724 D(fprintf(stderr, "%*c%s function_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
7725 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_def_raw"));
7726 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00007727 { // 'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007728 if (p->error_indicator) {
7729 D(p->level--);
7730 return NULL;
7731 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00007732 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 +01007733 Token * _keyword;
7734 Token * _literal;
7735 Token * _literal_1;
7736 Token * _literal_2;
7737 void *a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01007738 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007739 expr_ty n;
7740 void *params;
7741 void *tc;
7742 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08007743 (_keyword = _PyPegen_expect_token(p, 526)) // token='def'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007744 &&
7745 (n = _PyPegen_name_token(p)) // NAME
7746 &&
7747 (_literal = _PyPegen_expect_token(p, 7)) // token='('
7748 &&
7749 (params = params_rule(p), 1) // params?
7750 &&
7751 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
7752 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08007753 (a = _tmp_67_rule(p), 1) // ['->' expression]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007754 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00007755 (_literal_2 = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007756 &&
7757 (tc = func_type_comment_rule(p), 1) // func_type_comment?
7758 &&
7759 (b = block_rule(p)) // block
7760 )
7761 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00007762 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 +01007763 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7764 if (_token == NULL) {
7765 D(p->level--);
7766 return NULL;
7767 }
7768 int _end_lineno = _token->end_lineno;
7769 UNUSED(_end_lineno); // Only used by EXTRA macro
7770 int _end_col_offset = _token->end_col_offset;
7771 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02007772 _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 +01007773 if (_res == NULL && PyErr_Occurred()) {
7774 p->error_indicator = 1;
7775 D(p->level--);
7776 return NULL;
7777 }
7778 goto done;
7779 }
7780 p->mark = _mark;
7781 D(fprintf(stderr, "%*c%s function_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00007782 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007783 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00007784 { // ASYNC 'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007785 if (p->error_indicator) {
7786 D(p->level--);
7787 return NULL;
7788 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00007789 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 +01007790 Token * _keyword;
7791 Token * _literal;
7792 Token * _literal_1;
7793 Token * _literal_2;
7794 void *a;
7795 Token * async_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +01007796 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007797 expr_ty n;
7798 void *params;
7799 void *tc;
7800 if (
7801 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
7802 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08007803 (_keyword = _PyPegen_expect_token(p, 526)) // token='def'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007804 &&
7805 (n = _PyPegen_name_token(p)) // NAME
7806 &&
7807 (_literal = _PyPegen_expect_token(p, 7)) // token='('
7808 &&
7809 (params = params_rule(p), 1) // params?
7810 &&
7811 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
7812 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08007813 (a = _tmp_68_rule(p), 1) // ['->' expression]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007814 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00007815 (_literal_2 = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007816 &&
7817 (tc = func_type_comment_rule(p), 1) // func_type_comment?
7818 &&
7819 (b = block_rule(p)) // block
7820 )
7821 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00007822 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 +01007823 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7824 if (_token == NULL) {
7825 D(p->level--);
7826 return NULL;
7827 }
7828 int _end_lineno = _token->end_lineno;
7829 UNUSED(_end_lineno); // Only used by EXTRA macro
7830 int _end_col_offset = _token->end_col_offset;
7831 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02007832 _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 +01007833 if (_res == NULL && PyErr_Occurred()) {
7834 p->error_indicator = 1;
7835 D(p->level--);
7836 return NULL;
7837 }
7838 goto done;
7839 }
7840 p->mark = _mark;
7841 D(fprintf(stderr, "%*c%s function_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00007842 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007843 }
7844 _res = NULL;
7845 done:
7846 D(p->level--);
7847 return _res;
7848}
7849
7850// func_type_comment:
7851// | NEWLINE TYPE_COMMENT &(NEWLINE INDENT)
7852// | invalid_double_type_comments
7853// | TYPE_COMMENT
7854static Token*
7855func_type_comment_rule(Parser *p)
7856{
7857 D(p->level++);
7858 if (p->error_indicator) {
7859 D(p->level--);
7860 return NULL;
7861 }
7862 Token* _res = NULL;
7863 int _mark = p->mark;
7864 { // NEWLINE TYPE_COMMENT &(NEWLINE INDENT)
7865 if (p->error_indicator) {
7866 D(p->level--);
7867 return NULL;
7868 }
7869 D(fprintf(stderr, "%*c> func_type_comment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE TYPE_COMMENT &(NEWLINE INDENT)"));
7870 Token * newline_var;
7871 Token * t;
7872 if (
7873 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
7874 &&
7875 (t = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
7876 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08007877 _PyPegen_lookahead(1, _tmp_69_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007878 )
7879 {
7880 D(fprintf(stderr, "%*c+ func_type_comment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE TYPE_COMMENT &(NEWLINE INDENT)"));
7881 _res = t;
7882 if (_res == NULL && PyErr_Occurred()) {
7883 p->error_indicator = 1;
7884 D(p->level--);
7885 return NULL;
7886 }
7887 goto done;
7888 }
7889 p->mark = _mark;
7890 D(fprintf(stderr, "%*c%s func_type_comment[%d-%d]: %s failed!\n", p->level, ' ',
7891 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE TYPE_COMMENT &(NEWLINE INDENT)"));
7892 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02007893 if (p->call_invalid_rules) { // invalid_double_type_comments
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007894 if (p->error_indicator) {
7895 D(p->level--);
7896 return NULL;
7897 }
7898 D(fprintf(stderr, "%*c> func_type_comment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_double_type_comments"));
7899 void *invalid_double_type_comments_var;
7900 if (
7901 (invalid_double_type_comments_var = invalid_double_type_comments_rule(p)) // invalid_double_type_comments
7902 )
7903 {
7904 D(fprintf(stderr, "%*c+ func_type_comment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_double_type_comments"));
7905 _res = invalid_double_type_comments_var;
7906 goto done;
7907 }
7908 p->mark = _mark;
7909 D(fprintf(stderr, "%*c%s func_type_comment[%d-%d]: %s failed!\n", p->level, ' ',
7910 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_double_type_comments"));
7911 }
7912 { // TYPE_COMMENT
7913 if (p->error_indicator) {
7914 D(p->level--);
7915 return NULL;
7916 }
7917 D(fprintf(stderr, "%*c> func_type_comment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "TYPE_COMMENT"));
7918 Token * type_comment_var;
7919 if (
7920 (type_comment_var = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
7921 )
7922 {
7923 D(fprintf(stderr, "%*c+ func_type_comment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "TYPE_COMMENT"));
7924 _res = type_comment_var;
7925 goto done;
7926 }
7927 p->mark = _mark;
7928 D(fprintf(stderr, "%*c%s func_type_comment[%d-%d]: %s failed!\n", p->level, ' ',
7929 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "TYPE_COMMENT"));
7930 }
7931 _res = NULL;
7932 done:
7933 D(p->level--);
7934 return _res;
7935}
7936
7937// params: invalid_parameters | parameters
7938static arguments_ty
7939params_rule(Parser *p)
7940{
7941 D(p->level++);
7942 if (p->error_indicator) {
7943 D(p->level--);
7944 return NULL;
7945 }
7946 arguments_ty _res = NULL;
7947 int _mark = p->mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02007948 if (p->call_invalid_rules) { // invalid_parameters
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007949 if (p->error_indicator) {
7950 D(p->level--);
7951 return NULL;
7952 }
7953 D(fprintf(stderr, "%*c> params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_parameters"));
7954 void *invalid_parameters_var;
7955 if (
7956 (invalid_parameters_var = invalid_parameters_rule(p)) // invalid_parameters
7957 )
7958 {
7959 D(fprintf(stderr, "%*c+ params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_parameters"));
7960 _res = invalid_parameters_var;
7961 goto done;
7962 }
7963 p->mark = _mark;
7964 D(fprintf(stderr, "%*c%s params[%d-%d]: %s failed!\n", p->level, ' ',
7965 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_parameters"));
7966 }
7967 { // parameters
7968 if (p->error_indicator) {
7969 D(p->level--);
7970 return NULL;
7971 }
7972 D(fprintf(stderr, "%*c> params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "parameters"));
7973 arguments_ty parameters_var;
7974 if (
7975 (parameters_var = parameters_rule(p)) // parameters
7976 )
7977 {
7978 D(fprintf(stderr, "%*c+ params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "parameters"));
7979 _res = parameters_var;
7980 goto done;
7981 }
7982 p->mark = _mark;
7983 D(fprintf(stderr, "%*c%s params[%d-%d]: %s failed!\n", p->level, ' ',
7984 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "parameters"));
7985 }
7986 _res = NULL;
7987 done:
7988 D(p->level--);
7989 return _res;
7990}
7991
7992// parameters:
7993// | slash_no_default param_no_default* param_with_default* star_etc?
7994// | slash_with_default param_with_default* star_etc?
7995// | param_no_default+ param_with_default* star_etc?
7996// | param_with_default+ star_etc?
7997// | star_etc
7998static arguments_ty
7999parameters_rule(Parser *p)
8000{
8001 D(p->level++);
8002 if (p->error_indicator) {
8003 D(p->level--);
8004 return NULL;
8005 }
8006 arguments_ty _res = NULL;
8007 int _mark = p->mark;
8008 { // slash_no_default param_no_default* param_with_default* star_etc?
8009 if (p->error_indicator) {
8010 D(p->level--);
8011 return NULL;
8012 }
8013 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 +01008014 asdl_arg_seq* a;
8015 asdl_arg_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008016 asdl_seq * c;
8017 void *d;
8018 if (
8019 (a = slash_no_default_rule(p)) // slash_no_default
8020 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008021 (b = (asdl_arg_seq*)_loop0_70_rule(p)) // param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008022 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008023 (c = _loop0_71_rule(p)) // param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008024 &&
8025 (d = star_etc_rule(p), 1) // star_etc?
8026 )
8027 {
8028 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?"));
8029 _res = _PyPegen_make_arguments ( p , a , NULL , b , c , d );
8030 if (_res == NULL && PyErr_Occurred()) {
8031 p->error_indicator = 1;
8032 D(p->level--);
8033 return NULL;
8034 }
8035 goto done;
8036 }
8037 p->mark = _mark;
8038 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
8039 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_no_default param_no_default* param_with_default* star_etc?"));
8040 }
8041 { // slash_with_default param_with_default* star_etc?
8042 if (p->error_indicator) {
8043 D(p->level--);
8044 return NULL;
8045 }
8046 D(fprintf(stderr, "%*c> parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slash_with_default param_with_default* star_etc?"));
8047 SlashWithDefault* a;
8048 asdl_seq * b;
8049 void *c;
8050 if (
8051 (a = slash_with_default_rule(p)) // slash_with_default
8052 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008053 (b = _loop0_72_rule(p)) // param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008054 &&
8055 (c = star_etc_rule(p), 1) // star_etc?
8056 )
8057 {
8058 D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slash_with_default param_with_default* star_etc?"));
8059 _res = _PyPegen_make_arguments ( p , NULL , a , NULL , b , c );
8060 if (_res == NULL && PyErr_Occurred()) {
8061 p->error_indicator = 1;
8062 D(p->level--);
8063 return NULL;
8064 }
8065 goto done;
8066 }
8067 p->mark = _mark;
8068 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
8069 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_with_default param_with_default* star_etc?"));
8070 }
8071 { // param_no_default+ param_with_default* star_etc?
8072 if (p->error_indicator) {
8073 D(p->level--);
8074 return NULL;
8075 }
8076 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 +01008077 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008078 asdl_seq * b;
8079 void *c;
8080 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08008081 (a = (asdl_arg_seq*)_loop1_73_rule(p)) // param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008082 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008083 (b = _loop0_74_rule(p)) // param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008084 &&
8085 (c = star_etc_rule(p), 1) // star_etc?
8086 )
8087 {
8088 D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default+ param_with_default* star_etc?"));
8089 _res = _PyPegen_make_arguments ( p , NULL , NULL , a , b , c );
8090 if (_res == NULL && PyErr_Occurred()) {
8091 p->error_indicator = 1;
8092 D(p->level--);
8093 return NULL;
8094 }
8095 goto done;
8096 }
8097 p->mark = _mark;
8098 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
8099 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default+ param_with_default* star_etc?"));
8100 }
8101 { // param_with_default+ star_etc?
8102 if (p->error_indicator) {
8103 D(p->level--);
8104 return NULL;
8105 }
8106 D(fprintf(stderr, "%*c> parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default+ star_etc?"));
8107 asdl_seq * a;
8108 void *b;
8109 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08008110 (a = _loop1_75_rule(p)) // param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008111 &&
8112 (b = star_etc_rule(p), 1) // star_etc?
8113 )
8114 {
8115 D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_with_default+ star_etc?"));
8116 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , a , b );
8117 if (_res == NULL && PyErr_Occurred()) {
8118 p->error_indicator = 1;
8119 D(p->level--);
8120 return NULL;
8121 }
8122 goto done;
8123 }
8124 p->mark = _mark;
8125 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
8126 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default+ star_etc?"));
8127 }
8128 { // star_etc
8129 if (p->error_indicator) {
8130 D(p->level--);
8131 return NULL;
8132 }
8133 D(fprintf(stderr, "%*c> parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_etc"));
8134 StarEtc* a;
8135 if (
8136 (a = star_etc_rule(p)) // star_etc
8137 )
8138 {
8139 D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_etc"));
8140 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , NULL , a );
8141 if (_res == NULL && PyErr_Occurred()) {
8142 p->error_indicator = 1;
8143 D(p->level--);
8144 return NULL;
8145 }
8146 goto done;
8147 }
8148 p->mark = _mark;
8149 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
8150 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_etc"));
8151 }
8152 _res = NULL;
8153 done:
8154 D(p->level--);
8155 return _res;
8156}
8157
8158// slash_no_default: param_no_default+ '/' ',' | param_no_default+ '/' &')'
Pablo Galindoa5634c42020-09-16 19:42:00 +01008159static asdl_arg_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008160slash_no_default_rule(Parser *p)
8161{
8162 D(p->level++);
8163 if (p->error_indicator) {
8164 D(p->level--);
8165 return NULL;
8166 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01008167 asdl_arg_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008168 int _mark = p->mark;
8169 { // param_no_default+ '/' ','
8170 if (p->error_indicator) {
8171 D(p->level--);
8172 return NULL;
8173 }
8174 D(fprintf(stderr, "%*c> slash_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default+ '/' ','"));
8175 Token * _literal;
8176 Token * _literal_1;
Pablo Galindoa5634c42020-09-16 19:42:00 +01008177 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008178 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08008179 (a = (asdl_arg_seq*)_loop1_76_rule(p)) // param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008180 &&
8181 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
8182 &&
8183 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
8184 )
8185 {
8186 D(fprintf(stderr, "%*c+ slash_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default+ '/' ','"));
8187 _res = a;
8188 if (_res == NULL && PyErr_Occurred()) {
8189 p->error_indicator = 1;
8190 D(p->level--);
8191 return NULL;
8192 }
8193 goto done;
8194 }
8195 p->mark = _mark;
8196 D(fprintf(stderr, "%*c%s slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
8197 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default+ '/' ','"));
8198 }
8199 { // param_no_default+ '/' &')'
8200 if (p->error_indicator) {
8201 D(p->level--);
8202 return NULL;
8203 }
8204 D(fprintf(stderr, "%*c> slash_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default+ '/' &')'"));
8205 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01008206 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008207 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08008208 (a = (asdl_arg_seq*)_loop1_77_rule(p)) // param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008209 &&
8210 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
8211 &&
8212 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
8213 )
8214 {
8215 D(fprintf(stderr, "%*c+ slash_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default+ '/' &')'"));
8216 _res = a;
8217 if (_res == NULL && PyErr_Occurred()) {
8218 p->error_indicator = 1;
8219 D(p->level--);
8220 return NULL;
8221 }
8222 goto done;
8223 }
8224 p->mark = _mark;
8225 D(fprintf(stderr, "%*c%s slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
8226 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default+ '/' &')'"));
8227 }
8228 _res = NULL;
8229 done:
8230 D(p->level--);
8231 return _res;
8232}
8233
8234// slash_with_default:
8235// | param_no_default* param_with_default+ '/' ','
8236// | param_no_default* param_with_default+ '/' &')'
8237static SlashWithDefault*
8238slash_with_default_rule(Parser *p)
8239{
8240 D(p->level++);
8241 if (p->error_indicator) {
8242 D(p->level--);
8243 return NULL;
8244 }
8245 SlashWithDefault* _res = NULL;
8246 int _mark = p->mark;
8247 { // param_no_default* param_with_default+ '/' ','
8248 if (p->error_indicator) {
8249 D(p->level--);
8250 return NULL;
8251 }
8252 D(fprintf(stderr, "%*c> slash_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default* param_with_default+ '/' ','"));
8253 Token * _literal;
8254 Token * _literal_1;
8255 asdl_seq * a;
8256 asdl_seq * b;
8257 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08008258 (a = _loop0_78_rule(p)) // param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008259 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008260 (b = _loop1_79_rule(p)) // param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008261 &&
8262 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
8263 &&
8264 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
8265 )
8266 {
8267 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 +01008268 _res = _PyPegen_slash_with_default ( p , ( asdl_arg_seq * ) a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008269 if (_res == NULL && PyErr_Occurred()) {
8270 p->error_indicator = 1;
8271 D(p->level--);
8272 return NULL;
8273 }
8274 goto done;
8275 }
8276 p->mark = _mark;
8277 D(fprintf(stderr, "%*c%s slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
8278 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default* param_with_default+ '/' ','"));
8279 }
8280 { // param_no_default* param_with_default+ '/' &')'
8281 if (p->error_indicator) {
8282 D(p->level--);
8283 return NULL;
8284 }
8285 D(fprintf(stderr, "%*c> slash_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default* param_with_default+ '/' &')'"));
8286 Token * _literal;
8287 asdl_seq * a;
8288 asdl_seq * b;
8289 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08008290 (a = _loop0_80_rule(p)) // param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008291 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008292 (b = _loop1_81_rule(p)) // param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008293 &&
8294 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
8295 &&
8296 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
8297 )
8298 {
8299 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 +01008300 _res = _PyPegen_slash_with_default ( p , ( asdl_arg_seq * ) a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008301 if (_res == NULL && PyErr_Occurred()) {
8302 p->error_indicator = 1;
8303 D(p->level--);
8304 return NULL;
8305 }
8306 goto done;
8307 }
8308 p->mark = _mark;
8309 D(fprintf(stderr, "%*c%s slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
8310 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default* param_with_default+ '/' &')'"));
8311 }
8312 _res = NULL;
8313 done:
8314 D(p->level--);
8315 return _res;
8316}
8317
8318// star_etc:
8319// | '*' param_no_default param_maybe_default* kwds?
8320// | '*' ',' param_maybe_default+ kwds?
8321// | kwds
8322// | invalid_star_etc
8323static StarEtc*
8324star_etc_rule(Parser *p)
8325{
8326 D(p->level++);
8327 if (p->error_indicator) {
8328 D(p->level--);
8329 return NULL;
8330 }
8331 StarEtc* _res = NULL;
8332 int _mark = p->mark;
8333 { // '*' param_no_default param_maybe_default* kwds?
8334 if (p->error_indicator) {
8335 D(p->level--);
8336 return NULL;
8337 }
8338 D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' param_no_default param_maybe_default* kwds?"));
8339 Token * _literal;
8340 arg_ty a;
8341 asdl_seq * b;
8342 void *c;
8343 if (
8344 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
8345 &&
8346 (a = param_no_default_rule(p)) // param_no_default
8347 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008348 (b = _loop0_82_rule(p)) // param_maybe_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008349 &&
8350 (c = kwds_rule(p), 1) // kwds?
8351 )
8352 {
8353 D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' param_no_default param_maybe_default* kwds?"));
8354 _res = _PyPegen_star_etc ( p , a , b , c );
8355 if (_res == NULL && PyErr_Occurred()) {
8356 p->error_indicator = 1;
8357 D(p->level--);
8358 return NULL;
8359 }
8360 goto done;
8361 }
8362 p->mark = _mark;
8363 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
8364 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' param_no_default param_maybe_default* kwds?"));
8365 }
8366 { // '*' ',' param_maybe_default+ kwds?
8367 if (p->error_indicator) {
8368 D(p->level--);
8369 return NULL;
8370 }
8371 D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' ',' param_maybe_default+ kwds?"));
8372 Token * _literal;
8373 Token * _literal_1;
8374 asdl_seq * b;
8375 void *c;
8376 if (
8377 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
8378 &&
8379 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
8380 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008381 (b = _loop1_83_rule(p)) // param_maybe_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008382 &&
8383 (c = kwds_rule(p), 1) // kwds?
8384 )
8385 {
8386 D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' ',' param_maybe_default+ kwds?"));
8387 _res = _PyPegen_star_etc ( p , NULL , b , c );
8388 if (_res == NULL && PyErr_Occurred()) {
8389 p->error_indicator = 1;
8390 D(p->level--);
8391 return NULL;
8392 }
8393 goto done;
8394 }
8395 p->mark = _mark;
8396 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
8397 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' ',' param_maybe_default+ kwds?"));
8398 }
8399 { // kwds
8400 if (p->error_indicator) {
8401 D(p->level--);
8402 return NULL;
8403 }
8404 D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwds"));
8405 arg_ty a;
8406 if (
8407 (a = kwds_rule(p)) // kwds
8408 )
8409 {
8410 D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwds"));
8411 _res = _PyPegen_star_etc ( p , NULL , NULL , a );
8412 if (_res == NULL && PyErr_Occurred()) {
8413 p->error_indicator = 1;
8414 D(p->level--);
8415 return NULL;
8416 }
8417 goto done;
8418 }
8419 p->mark = _mark;
8420 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
8421 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwds"));
8422 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02008423 if (p->call_invalid_rules) { // invalid_star_etc
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008424 if (p->error_indicator) {
8425 D(p->level--);
8426 return NULL;
8427 }
8428 D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_star_etc"));
8429 void *invalid_star_etc_var;
8430 if (
8431 (invalid_star_etc_var = invalid_star_etc_rule(p)) // invalid_star_etc
8432 )
8433 {
8434 D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_star_etc"));
8435 _res = invalid_star_etc_var;
8436 goto done;
8437 }
8438 p->mark = _mark;
8439 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
8440 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_star_etc"));
8441 }
8442 _res = NULL;
8443 done:
8444 D(p->level--);
8445 return _res;
8446}
8447
8448// kwds: '**' param_no_default
8449static arg_ty
8450kwds_rule(Parser *p)
8451{
8452 D(p->level++);
8453 if (p->error_indicator) {
8454 D(p->level--);
8455 return NULL;
8456 }
8457 arg_ty _res = NULL;
8458 int _mark = p->mark;
8459 { // '**' param_no_default
8460 if (p->error_indicator) {
8461 D(p->level--);
8462 return NULL;
8463 }
8464 D(fprintf(stderr, "%*c> kwds[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' param_no_default"));
8465 Token * _literal;
8466 arg_ty a;
8467 if (
8468 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
8469 &&
8470 (a = param_no_default_rule(p)) // param_no_default
8471 )
8472 {
8473 D(fprintf(stderr, "%*c+ kwds[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' param_no_default"));
8474 _res = a;
8475 if (_res == NULL && PyErr_Occurred()) {
8476 p->error_indicator = 1;
8477 D(p->level--);
8478 return NULL;
8479 }
8480 goto done;
8481 }
8482 p->mark = _mark;
8483 D(fprintf(stderr, "%*c%s kwds[%d-%d]: %s failed!\n", p->level, ' ',
8484 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' param_no_default"));
8485 }
8486 _res = NULL;
8487 done:
8488 D(p->level--);
8489 return _res;
8490}
8491
8492// param_no_default: param ',' TYPE_COMMENT? | param TYPE_COMMENT? &')'
8493static arg_ty
8494param_no_default_rule(Parser *p)
8495{
8496 D(p->level++);
8497 if (p->error_indicator) {
8498 D(p->level--);
8499 return NULL;
8500 }
8501 arg_ty _res = NULL;
8502 int _mark = p->mark;
8503 { // param ',' TYPE_COMMENT?
8504 if (p->error_indicator) {
8505 D(p->level--);
8506 return NULL;
8507 }
8508 D(fprintf(stderr, "%*c> param_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param ',' TYPE_COMMENT?"));
8509 Token * _literal;
8510 arg_ty a;
8511 void *tc;
8512 if (
8513 (a = param_rule(p)) // param
8514 &&
8515 (_literal = _PyPegen_expect_token(p, 12)) // token=','
8516 &&
8517 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
8518 )
8519 {
8520 D(fprintf(stderr, "%*c+ param_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param ',' TYPE_COMMENT?"));
8521 _res = _PyPegen_add_type_comment_to_arg ( p , a , tc );
8522 if (_res == NULL && PyErr_Occurred()) {
8523 p->error_indicator = 1;
8524 D(p->level--);
8525 return NULL;
8526 }
8527 goto done;
8528 }
8529 p->mark = _mark;
8530 D(fprintf(stderr, "%*c%s param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
8531 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param ',' TYPE_COMMENT?"));
8532 }
8533 { // param TYPE_COMMENT? &')'
8534 if (p->error_indicator) {
8535 D(p->level--);
8536 return NULL;
8537 }
8538 D(fprintf(stderr, "%*c> param_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param TYPE_COMMENT? &')'"));
8539 arg_ty a;
8540 void *tc;
8541 if (
8542 (a = param_rule(p)) // param
8543 &&
8544 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
8545 &&
8546 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
8547 )
8548 {
8549 D(fprintf(stderr, "%*c+ param_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param TYPE_COMMENT? &')'"));
8550 _res = _PyPegen_add_type_comment_to_arg ( p , a , tc );
8551 if (_res == NULL && PyErr_Occurred()) {
8552 p->error_indicator = 1;
8553 D(p->level--);
8554 return NULL;
8555 }
8556 goto done;
8557 }
8558 p->mark = _mark;
8559 D(fprintf(stderr, "%*c%s param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
8560 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param TYPE_COMMENT? &')'"));
8561 }
8562 _res = NULL;
8563 done:
8564 D(p->level--);
8565 return _res;
8566}
8567
8568// param_with_default: param default ',' TYPE_COMMENT? | param default TYPE_COMMENT? &')'
8569static NameDefaultPair*
8570param_with_default_rule(Parser *p)
8571{
8572 D(p->level++);
8573 if (p->error_indicator) {
8574 D(p->level--);
8575 return NULL;
8576 }
8577 NameDefaultPair* _res = NULL;
8578 int _mark = p->mark;
8579 { // param default ',' TYPE_COMMENT?
8580 if (p->error_indicator) {
8581 D(p->level--);
8582 return NULL;
8583 }
8584 D(fprintf(stderr, "%*c> param_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param default ',' TYPE_COMMENT?"));
8585 Token * _literal;
8586 arg_ty a;
8587 expr_ty c;
8588 void *tc;
8589 if (
8590 (a = param_rule(p)) // param
8591 &&
8592 (c = default_rule(p)) // default
8593 &&
8594 (_literal = _PyPegen_expect_token(p, 12)) // token=','
8595 &&
8596 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
8597 )
8598 {
8599 D(fprintf(stderr, "%*c+ param_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param default ',' TYPE_COMMENT?"));
8600 _res = _PyPegen_name_default_pair ( p , a , c , tc );
8601 if (_res == NULL && PyErr_Occurred()) {
8602 p->error_indicator = 1;
8603 D(p->level--);
8604 return NULL;
8605 }
8606 goto done;
8607 }
8608 p->mark = _mark;
8609 D(fprintf(stderr, "%*c%s param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
8610 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default ',' TYPE_COMMENT?"));
8611 }
8612 { // param default TYPE_COMMENT? &')'
8613 if (p->error_indicator) {
8614 D(p->level--);
8615 return NULL;
8616 }
8617 D(fprintf(stderr, "%*c> param_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param default TYPE_COMMENT? &')'"));
8618 arg_ty a;
8619 expr_ty c;
8620 void *tc;
8621 if (
8622 (a = param_rule(p)) // param
8623 &&
8624 (c = default_rule(p)) // default
8625 &&
8626 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
8627 &&
8628 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
8629 )
8630 {
8631 D(fprintf(stderr, "%*c+ param_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param default TYPE_COMMENT? &')'"));
8632 _res = _PyPegen_name_default_pair ( p , a , c , tc );
8633 if (_res == NULL && PyErr_Occurred()) {
8634 p->error_indicator = 1;
8635 D(p->level--);
8636 return NULL;
8637 }
8638 goto done;
8639 }
8640 p->mark = _mark;
8641 D(fprintf(stderr, "%*c%s param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
8642 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default TYPE_COMMENT? &')'"));
8643 }
8644 _res = NULL;
8645 done:
8646 D(p->level--);
8647 return _res;
8648}
8649
8650// param_maybe_default:
8651// | param default? ',' TYPE_COMMENT?
8652// | param default? TYPE_COMMENT? &')'
8653static NameDefaultPair*
8654param_maybe_default_rule(Parser *p)
8655{
8656 D(p->level++);
8657 if (p->error_indicator) {
8658 D(p->level--);
8659 return NULL;
8660 }
8661 NameDefaultPair* _res = NULL;
8662 int _mark = p->mark;
8663 { // param default? ',' TYPE_COMMENT?
8664 if (p->error_indicator) {
8665 D(p->level--);
8666 return NULL;
8667 }
8668 D(fprintf(stderr, "%*c> param_maybe_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param default? ',' TYPE_COMMENT?"));
8669 Token * _literal;
8670 arg_ty a;
8671 void *c;
8672 void *tc;
8673 if (
8674 (a = param_rule(p)) // param
8675 &&
8676 (c = default_rule(p), 1) // default?
8677 &&
8678 (_literal = _PyPegen_expect_token(p, 12)) // token=','
8679 &&
8680 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
8681 )
8682 {
8683 D(fprintf(stderr, "%*c+ param_maybe_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param default? ',' TYPE_COMMENT?"));
8684 _res = _PyPegen_name_default_pair ( p , a , c , tc );
8685 if (_res == NULL && PyErr_Occurred()) {
8686 p->error_indicator = 1;
8687 D(p->level--);
8688 return NULL;
8689 }
8690 goto done;
8691 }
8692 p->mark = _mark;
8693 D(fprintf(stderr, "%*c%s param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
8694 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default? ',' TYPE_COMMENT?"));
8695 }
8696 { // param default? TYPE_COMMENT? &')'
8697 if (p->error_indicator) {
8698 D(p->level--);
8699 return NULL;
8700 }
8701 D(fprintf(stderr, "%*c> param_maybe_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param default? TYPE_COMMENT? &')'"));
8702 arg_ty a;
8703 void *c;
8704 void *tc;
8705 if (
8706 (a = param_rule(p)) // param
8707 &&
8708 (c = default_rule(p), 1) // default?
8709 &&
8710 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
8711 &&
8712 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
8713 )
8714 {
8715 D(fprintf(stderr, "%*c+ param_maybe_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param default? TYPE_COMMENT? &')'"));
8716 _res = _PyPegen_name_default_pair ( p , a , c , tc );
8717 if (_res == NULL && PyErr_Occurred()) {
8718 p->error_indicator = 1;
8719 D(p->level--);
8720 return NULL;
8721 }
8722 goto done;
8723 }
8724 p->mark = _mark;
8725 D(fprintf(stderr, "%*c%s param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
8726 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default? TYPE_COMMENT? &')'"));
8727 }
8728 _res = NULL;
8729 done:
8730 D(p->level--);
8731 return _res;
8732}
8733
8734// param: NAME annotation?
8735static arg_ty
8736param_rule(Parser *p)
8737{
8738 D(p->level++);
8739 if (p->error_indicator) {
8740 D(p->level--);
8741 return NULL;
8742 }
8743 arg_ty _res = NULL;
8744 int _mark = p->mark;
8745 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
8746 p->error_indicator = 1;
8747 D(p->level--);
8748 return NULL;
8749 }
8750 int _start_lineno = p->tokens[_mark]->lineno;
8751 UNUSED(_start_lineno); // Only used by EXTRA macro
8752 int _start_col_offset = p->tokens[_mark]->col_offset;
8753 UNUSED(_start_col_offset); // Only used by EXTRA macro
8754 { // NAME annotation?
8755 if (p->error_indicator) {
8756 D(p->level--);
8757 return NULL;
8758 }
8759 D(fprintf(stderr, "%*c> param[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME annotation?"));
8760 expr_ty a;
8761 void *b;
8762 if (
8763 (a = _PyPegen_name_token(p)) // NAME
8764 &&
8765 (b = annotation_rule(p), 1) // annotation?
8766 )
8767 {
8768 D(fprintf(stderr, "%*c+ param[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME annotation?"));
8769 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8770 if (_token == NULL) {
8771 D(p->level--);
8772 return NULL;
8773 }
8774 int _end_lineno = _token->end_lineno;
8775 UNUSED(_end_lineno); // Only used by EXTRA macro
8776 int _end_col_offset = _token->end_col_offset;
8777 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02008778 _res = _PyAST_arg ( a -> v . Name . id , b , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008779 if (_res == NULL && PyErr_Occurred()) {
8780 p->error_indicator = 1;
8781 D(p->level--);
8782 return NULL;
8783 }
8784 goto done;
8785 }
8786 p->mark = _mark;
8787 D(fprintf(stderr, "%*c%s param[%d-%d]: %s failed!\n", p->level, ' ',
8788 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME annotation?"));
8789 }
8790 _res = NULL;
8791 done:
8792 D(p->level--);
8793 return _res;
8794}
8795
8796// annotation: ':' expression
8797static expr_ty
8798annotation_rule(Parser *p)
8799{
8800 D(p->level++);
8801 if (p->error_indicator) {
8802 D(p->level--);
8803 return NULL;
8804 }
8805 expr_ty _res = NULL;
8806 int _mark = p->mark;
8807 { // ':' expression
8808 if (p->error_indicator) {
8809 D(p->level--);
8810 return NULL;
8811 }
8812 D(fprintf(stderr, "%*c> annotation[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':' expression"));
8813 Token * _literal;
8814 expr_ty a;
8815 if (
8816 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
8817 &&
8818 (a = expression_rule(p)) // expression
8819 )
8820 {
8821 D(fprintf(stderr, "%*c+ annotation[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':' expression"));
8822 _res = a;
8823 if (_res == NULL && PyErr_Occurred()) {
8824 p->error_indicator = 1;
8825 D(p->level--);
8826 return NULL;
8827 }
8828 goto done;
8829 }
8830 p->mark = _mark;
8831 D(fprintf(stderr, "%*c%s annotation[%d-%d]: %s failed!\n", p->level, ' ',
8832 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':' expression"));
8833 }
8834 _res = NULL;
8835 done:
8836 D(p->level--);
8837 return _res;
8838}
8839
8840// default: '=' expression
8841static expr_ty
8842default_rule(Parser *p)
8843{
8844 D(p->level++);
8845 if (p->error_indicator) {
8846 D(p->level--);
8847 return NULL;
8848 }
8849 expr_ty _res = NULL;
8850 int _mark = p->mark;
8851 { // '=' expression
8852 if (p->error_indicator) {
8853 D(p->level--);
8854 return NULL;
8855 }
8856 D(fprintf(stderr, "%*c> default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'=' expression"));
8857 Token * _literal;
8858 expr_ty a;
8859 if (
8860 (_literal = _PyPegen_expect_token(p, 22)) // token='='
8861 &&
8862 (a = expression_rule(p)) // expression
8863 )
8864 {
8865 D(fprintf(stderr, "%*c+ default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'=' expression"));
8866 _res = a;
8867 if (_res == NULL && PyErr_Occurred()) {
8868 p->error_indicator = 1;
8869 D(p->level--);
8870 return NULL;
8871 }
8872 goto done;
8873 }
8874 p->mark = _mark;
8875 D(fprintf(stderr, "%*c%s default[%d-%d]: %s failed!\n", p->level, ' ',
8876 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'=' expression"));
8877 }
8878 _res = NULL;
8879 done:
8880 D(p->level--);
8881 return _res;
8882}
8883
8884// decorators: (('@' named_expression NEWLINE))+
Pablo Galindoa5634c42020-09-16 19:42:00 +01008885static asdl_expr_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008886decorators_rule(Parser *p)
8887{
8888 D(p->level++);
8889 if (p->error_indicator) {
8890 D(p->level--);
8891 return NULL;
8892 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01008893 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008894 int _mark = p->mark;
8895 { // (('@' named_expression NEWLINE))+
8896 if (p->error_indicator) {
8897 D(p->level--);
8898 return NULL;
8899 }
8900 D(fprintf(stderr, "%*c> decorators[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(('@' named_expression NEWLINE))+"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01008901 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008902 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08008903 (a = (asdl_expr_seq*)_loop1_84_rule(p)) // (('@' named_expression NEWLINE))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008904 )
8905 {
8906 D(fprintf(stderr, "%*c+ decorators[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(('@' named_expression NEWLINE))+"));
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 decorators[%d-%d]: %s failed!\n", p->level, ' ',
8917 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(('@' named_expression NEWLINE))+"));
8918 }
8919 _res = NULL;
8920 done:
8921 D(p->level--);
8922 return _res;
8923}
8924
8925// class_def: decorators class_def_raw | class_def_raw
8926static stmt_ty
8927class_def_rule(Parser *p)
8928{
8929 D(p->level++);
8930 if (p->error_indicator) {
8931 D(p->level--);
8932 return NULL;
8933 }
8934 stmt_ty _res = NULL;
8935 int _mark = p->mark;
8936 { // decorators class_def_raw
8937 if (p->error_indicator) {
8938 D(p->level--);
8939 return NULL;
8940 }
8941 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 +01008942 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008943 stmt_ty b;
8944 if (
8945 (a = decorators_rule(p)) // decorators
8946 &&
8947 (b = class_def_raw_rule(p)) // class_def_raw
8948 )
8949 {
8950 D(fprintf(stderr, "%*c+ class_def[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "decorators class_def_raw"));
8951 _res = _PyPegen_class_def_decorators ( p , a , b );
8952 if (_res == NULL && PyErr_Occurred()) {
8953 p->error_indicator = 1;
8954 D(p->level--);
8955 return NULL;
8956 }
8957 goto done;
8958 }
8959 p->mark = _mark;
8960 D(fprintf(stderr, "%*c%s class_def[%d-%d]: %s failed!\n", p->level, ' ',
8961 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "decorators class_def_raw"));
8962 }
8963 { // class_def_raw
8964 if (p->error_indicator) {
8965 D(p->level--);
8966 return NULL;
8967 }
8968 D(fprintf(stderr, "%*c> class_def[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "class_def_raw"));
8969 stmt_ty class_def_raw_var;
8970 if (
8971 (class_def_raw_var = class_def_raw_rule(p)) // class_def_raw
8972 )
8973 {
8974 D(fprintf(stderr, "%*c+ class_def[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "class_def_raw"));
8975 _res = class_def_raw_var;
8976 goto done;
8977 }
8978 p->mark = _mark;
8979 D(fprintf(stderr, "%*c%s class_def[%d-%d]: %s failed!\n", p->level, ' ',
8980 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "class_def_raw"));
8981 }
8982 _res = NULL;
8983 done:
8984 D(p->level--);
8985 return _res;
8986}
8987
Pablo Galindo56c95df2021-04-21 15:28:21 +01008988// class_def_raw: invalid_class_def_raw | 'class' NAME ['(' arguments? ')'] &&':' block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008989static stmt_ty
8990class_def_raw_rule(Parser *p)
8991{
8992 D(p->level++);
8993 if (p->error_indicator) {
8994 D(p->level--);
8995 return NULL;
8996 }
8997 stmt_ty _res = NULL;
8998 int _mark = p->mark;
8999 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9000 p->error_indicator = 1;
9001 D(p->level--);
9002 return NULL;
9003 }
9004 int _start_lineno = p->tokens[_mark]->lineno;
9005 UNUSED(_start_lineno); // Only used by EXTRA macro
9006 int _start_col_offset = p->tokens[_mark]->col_offset;
9007 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo56c95df2021-04-21 15:28:21 +01009008 if (p->call_invalid_rules) { // invalid_class_def_raw
9009 if (p->error_indicator) {
9010 D(p->level--);
9011 return NULL;
9012 }
9013 D(fprintf(stderr, "%*c> class_def_raw[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_class_def_raw"));
9014 void *invalid_class_def_raw_var;
9015 if (
9016 (invalid_class_def_raw_var = invalid_class_def_raw_rule(p)) // invalid_class_def_raw
9017 )
9018 {
9019 D(fprintf(stderr, "%*c+ class_def_raw[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_class_def_raw"));
9020 _res = invalid_class_def_raw_var;
9021 goto done;
9022 }
9023 p->mark = _mark;
9024 D(fprintf(stderr, "%*c%s class_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
9025 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_class_def_raw"));
9026 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00009027 { // 'class' NAME ['(' arguments? ')'] &&':' block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009028 if (p->error_indicator) {
9029 D(p->level--);
9030 return NULL;
9031 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00009032 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 +01009033 Token * _keyword;
9034 Token * _literal;
9035 expr_ty a;
9036 void *b;
Pablo Galindoa5634c42020-09-16 19:42:00 +01009037 asdl_stmt_seq* c;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009038 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08009039 (_keyword = _PyPegen_expect_token(p, 527)) // token='class'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009040 &&
9041 (a = _PyPegen_name_token(p)) // NAME
9042 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08009043 (b = _tmp_85_rule(p), 1) // ['(' arguments? ')']
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009044 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00009045 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009046 &&
9047 (c = block_rule(p)) // block
9048 )
9049 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00009050 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 +01009051 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9052 if (_token == NULL) {
9053 D(p->level--);
9054 return NULL;
9055 }
9056 int _end_lineno = _token->end_lineno;
9057 UNUSED(_end_lineno); // Only used by EXTRA macro
9058 int _end_col_offset = _token->end_col_offset;
9059 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02009060 _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 +01009061 if (_res == NULL && PyErr_Occurred()) {
9062 p->error_indicator = 1;
9063 D(p->level--);
9064 return NULL;
9065 }
9066 goto done;
9067 }
9068 p->mark = _mark;
9069 D(fprintf(stderr, "%*c%s class_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00009070 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'class' NAME ['(' arguments? ')'] &&':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009071 }
9072 _res = NULL;
9073 done:
9074 D(p->level--);
9075 return _res;
9076}
9077
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00009078// block: NEWLINE INDENT statements DEDENT | simple_stmts | invalid_block
Pablo Galindoa5634c42020-09-16 19:42:00 +01009079static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009080block_rule(Parser *p)
9081{
9082 D(p->level++);
9083 if (p->error_indicator) {
9084 D(p->level--);
9085 return NULL;
9086 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01009087 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009088 if (_PyPegen_is_memoized(p, block_type, &_res)) {
9089 D(p->level--);
9090 return _res;
9091 }
9092 int _mark = p->mark;
9093 { // NEWLINE INDENT statements DEDENT
9094 if (p->error_indicator) {
9095 D(p->level--);
9096 return NULL;
9097 }
9098 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 +01009099 asdl_stmt_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009100 Token * dedent_var;
9101 Token * indent_var;
9102 Token * newline_var;
9103 if (
9104 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
9105 &&
9106 (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
9107 &&
9108 (a = statements_rule(p)) // statements
9109 &&
9110 (dedent_var = _PyPegen_expect_token(p, DEDENT)) // token='DEDENT'
9111 )
9112 {
9113 D(fprintf(stderr, "%*c+ block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE INDENT statements DEDENT"));
9114 _res = a;
9115 if (_res == NULL && PyErr_Occurred()) {
9116 p->error_indicator = 1;
9117 D(p->level--);
9118 return NULL;
9119 }
9120 goto done;
9121 }
9122 p->mark = _mark;
9123 D(fprintf(stderr, "%*c%s block[%d-%d]: %s failed!\n", p->level, ' ',
9124 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE INDENT statements DEDENT"));
9125 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00009126 { // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009127 if (p->error_indicator) {
9128 D(p->level--);
9129 return NULL;
9130 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00009131 D(fprintf(stderr, "%*c> block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
9132 asdl_stmt_seq* simple_stmts_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009133 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00009134 (simple_stmts_var = simple_stmts_rule(p)) // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009135 )
9136 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00009137 D(fprintf(stderr, "%*c+ block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
9138 _res = simple_stmts_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009139 goto done;
9140 }
9141 p->mark = _mark;
9142 D(fprintf(stderr, "%*c%s block[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00009143 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmts"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009144 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02009145 if (p->call_invalid_rules) { // invalid_block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009146 if (p->error_indicator) {
9147 D(p->level--);
9148 return NULL;
9149 }
9150 D(fprintf(stderr, "%*c> block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_block"));
9151 void *invalid_block_var;
9152 if (
9153 (invalid_block_var = invalid_block_rule(p)) // invalid_block
9154 )
9155 {
9156 D(fprintf(stderr, "%*c+ block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_block"));
9157 _res = invalid_block_var;
9158 goto done;
9159 }
9160 p->mark = _mark;
9161 D(fprintf(stderr, "%*c%s block[%d-%d]: %s failed!\n", p->level, ' ',
9162 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_block"));
9163 }
9164 _res = NULL;
9165 done:
9166 _PyPegen_insert_memo(p, _mark, block_type, _res);
9167 D(p->level--);
9168 return _res;
9169}
9170
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009171// star_expressions:
9172// | star_expression ((',' star_expression))+ ','?
9173// | star_expression ','
9174// | star_expression
9175static expr_ty
9176star_expressions_rule(Parser *p)
9177{
9178 D(p->level++);
9179 if (p->error_indicator) {
9180 D(p->level--);
9181 return NULL;
9182 }
9183 expr_ty _res = NULL;
9184 int _mark = p->mark;
9185 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9186 p->error_indicator = 1;
9187 D(p->level--);
9188 return NULL;
9189 }
9190 int _start_lineno = p->tokens[_mark]->lineno;
9191 UNUSED(_start_lineno); // Only used by EXTRA macro
9192 int _start_col_offset = p->tokens[_mark]->col_offset;
9193 UNUSED(_start_col_offset); // Only used by EXTRA macro
9194 { // star_expression ((',' star_expression))+ ','?
9195 if (p->error_indicator) {
9196 D(p->level--);
9197 return NULL;
9198 }
9199 D(fprintf(stderr, "%*c> star_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expression ((',' star_expression))+ ','?"));
9200 void *_opt_var;
9201 UNUSED(_opt_var); // Silence compiler warnings
9202 expr_ty a;
9203 asdl_seq * b;
9204 if (
9205 (a = star_expression_rule(p)) // star_expression
9206 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08009207 (b = _loop1_86_rule(p)) // ((',' star_expression))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009208 &&
9209 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
9210 )
9211 {
9212 D(fprintf(stderr, "%*c+ star_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expression ((',' star_expression))+ ','?"));
9213 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9214 if (_token == NULL) {
9215 D(p->level--);
9216 return NULL;
9217 }
9218 int _end_lineno = _token->end_lineno;
9219 UNUSED(_end_lineno); // Only used by EXTRA macro
9220 int _end_col_offset = _token->end_col_offset;
9221 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02009222 _res = _PyAST_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , a , b ) ) , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009223 if (_res == NULL && PyErr_Occurred()) {
9224 p->error_indicator = 1;
9225 D(p->level--);
9226 return NULL;
9227 }
9228 goto done;
9229 }
9230 p->mark = _mark;
9231 D(fprintf(stderr, "%*c%s star_expressions[%d-%d]: %s failed!\n", p->level, ' ',
9232 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expression ((',' star_expression))+ ','?"));
9233 }
9234 { // star_expression ','
9235 if (p->error_indicator) {
9236 D(p->level--);
9237 return NULL;
9238 }
9239 D(fprintf(stderr, "%*c> star_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expression ','"));
9240 Token * _literal;
9241 expr_ty a;
9242 if (
9243 (a = star_expression_rule(p)) // star_expression
9244 &&
9245 (_literal = _PyPegen_expect_token(p, 12)) // token=','
9246 )
9247 {
9248 D(fprintf(stderr, "%*c+ star_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expression ','"));
9249 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9250 if (_token == NULL) {
9251 D(p->level--);
9252 return NULL;
9253 }
9254 int _end_lineno = _token->end_lineno;
9255 UNUSED(_end_lineno); // Only used by EXTRA macro
9256 int _end_col_offset = _token->end_col_offset;
9257 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02009258 _res = _PyAST_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_singleton_seq ( p , a ) ) , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009259 if (_res == NULL && PyErr_Occurred()) {
9260 p->error_indicator = 1;
9261 D(p->level--);
9262 return NULL;
9263 }
9264 goto done;
9265 }
9266 p->mark = _mark;
9267 D(fprintf(stderr, "%*c%s star_expressions[%d-%d]: %s failed!\n", p->level, ' ',
9268 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expression ','"));
9269 }
9270 { // star_expression
9271 if (p->error_indicator) {
9272 D(p->level--);
9273 return NULL;
9274 }
9275 D(fprintf(stderr, "%*c> star_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expression"));
9276 expr_ty star_expression_var;
9277 if (
9278 (star_expression_var = star_expression_rule(p)) // star_expression
9279 )
9280 {
9281 D(fprintf(stderr, "%*c+ star_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expression"));
9282 _res = star_expression_var;
9283 goto done;
9284 }
9285 p->mark = _mark;
9286 D(fprintf(stderr, "%*c%s star_expressions[%d-%d]: %s failed!\n", p->level, ' ',
9287 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expression"));
9288 }
9289 _res = NULL;
9290 done:
9291 D(p->level--);
9292 return _res;
9293}
9294
9295// star_expression: '*' bitwise_or | expression
9296static expr_ty
9297star_expression_rule(Parser *p)
9298{
9299 D(p->level++);
9300 if (p->error_indicator) {
9301 D(p->level--);
9302 return NULL;
9303 }
9304 expr_ty _res = NULL;
9305 if (_PyPegen_is_memoized(p, star_expression_type, &_res)) {
9306 D(p->level--);
9307 return _res;
9308 }
9309 int _mark = p->mark;
9310 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9311 p->error_indicator = 1;
9312 D(p->level--);
9313 return NULL;
9314 }
9315 int _start_lineno = p->tokens[_mark]->lineno;
9316 UNUSED(_start_lineno); // Only used by EXTRA macro
9317 int _start_col_offset = p->tokens[_mark]->col_offset;
9318 UNUSED(_start_col_offset); // Only used by EXTRA macro
9319 { // '*' bitwise_or
9320 if (p->error_indicator) {
9321 D(p->level--);
9322 return NULL;
9323 }
9324 D(fprintf(stderr, "%*c> star_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or"));
9325 Token * _literal;
9326 expr_ty a;
9327 if (
9328 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
9329 &&
9330 (a = bitwise_or_rule(p)) // bitwise_or
9331 )
9332 {
9333 D(fprintf(stderr, "%*c+ star_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or"));
9334 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9335 if (_token == NULL) {
9336 D(p->level--);
9337 return NULL;
9338 }
9339 int _end_lineno = _token->end_lineno;
9340 UNUSED(_end_lineno); // Only used by EXTRA macro
9341 int _end_col_offset = _token->end_col_offset;
9342 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02009343 _res = _PyAST_Starred ( a , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009344 if (_res == NULL && PyErr_Occurred()) {
9345 p->error_indicator = 1;
9346 D(p->level--);
9347 return NULL;
9348 }
9349 goto done;
9350 }
9351 p->mark = _mark;
9352 D(fprintf(stderr, "%*c%s star_expression[%d-%d]: %s failed!\n", p->level, ' ',
9353 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' bitwise_or"));
9354 }
9355 { // expression
9356 if (p->error_indicator) {
9357 D(p->level--);
9358 return NULL;
9359 }
9360 D(fprintf(stderr, "%*c> star_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression"));
9361 expr_ty expression_var;
9362 if (
9363 (expression_var = expression_rule(p)) // expression
9364 )
9365 {
9366 D(fprintf(stderr, "%*c+ star_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression"));
9367 _res = expression_var;
9368 goto done;
9369 }
9370 p->mark = _mark;
9371 D(fprintf(stderr, "%*c%s star_expression[%d-%d]: %s failed!\n", p->level, ' ',
9372 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression"));
9373 }
9374 _res = NULL;
9375 done:
9376 _PyPegen_insert_memo(p, _mark, star_expression_type, _res);
9377 D(p->level--);
9378 return _res;
9379}
9380
9381// star_named_expressions: ','.star_named_expression+ ','?
Pablo Galindoa5634c42020-09-16 19:42:00 +01009382static asdl_expr_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009383star_named_expressions_rule(Parser *p)
9384{
9385 D(p->level++);
9386 if (p->error_indicator) {
9387 D(p->level--);
9388 return NULL;
9389 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01009390 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009391 int _mark = p->mark;
9392 { // ','.star_named_expression+ ','?
9393 if (p->error_indicator) {
9394 D(p->level--);
9395 return NULL;
9396 }
9397 D(fprintf(stderr, "%*c> star_named_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.star_named_expression+ ','?"));
9398 void *_opt_var;
9399 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +01009400 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009401 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08009402 (a = (asdl_expr_seq*)_gather_87_rule(p)) // ','.star_named_expression+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009403 &&
9404 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
9405 )
9406 {
9407 D(fprintf(stderr, "%*c+ star_named_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.star_named_expression+ ','?"));
9408 _res = a;
9409 if (_res == NULL && PyErr_Occurred()) {
9410 p->error_indicator = 1;
9411 D(p->level--);
9412 return NULL;
9413 }
9414 goto done;
9415 }
9416 p->mark = _mark;
9417 D(fprintf(stderr, "%*c%s star_named_expressions[%d-%d]: %s failed!\n", p->level, ' ',
9418 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.star_named_expression+ ','?"));
9419 }
9420 _res = NULL;
9421 done:
9422 D(p->level--);
9423 return _res;
9424}
9425
9426// star_named_expression: '*' bitwise_or | named_expression
9427static expr_ty
9428star_named_expression_rule(Parser *p)
9429{
9430 D(p->level++);
9431 if (p->error_indicator) {
9432 D(p->level--);
9433 return NULL;
9434 }
9435 expr_ty _res = NULL;
9436 int _mark = p->mark;
9437 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9438 p->error_indicator = 1;
9439 D(p->level--);
9440 return NULL;
9441 }
9442 int _start_lineno = p->tokens[_mark]->lineno;
9443 UNUSED(_start_lineno); // Only used by EXTRA macro
9444 int _start_col_offset = p->tokens[_mark]->col_offset;
9445 UNUSED(_start_col_offset); // Only used by EXTRA macro
9446 { // '*' bitwise_or
9447 if (p->error_indicator) {
9448 D(p->level--);
9449 return NULL;
9450 }
9451 D(fprintf(stderr, "%*c> star_named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or"));
9452 Token * _literal;
9453 expr_ty a;
9454 if (
9455 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
9456 &&
9457 (a = bitwise_or_rule(p)) // bitwise_or
9458 )
9459 {
9460 D(fprintf(stderr, "%*c+ star_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or"));
9461 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9462 if (_token == NULL) {
9463 D(p->level--);
9464 return NULL;
9465 }
9466 int _end_lineno = _token->end_lineno;
9467 UNUSED(_end_lineno); // Only used by EXTRA macro
9468 int _end_col_offset = _token->end_col_offset;
9469 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02009470 _res = _PyAST_Starred ( a , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009471 if (_res == NULL && PyErr_Occurred()) {
9472 p->error_indicator = 1;
9473 D(p->level--);
9474 return NULL;
9475 }
9476 goto done;
9477 }
9478 p->mark = _mark;
9479 D(fprintf(stderr, "%*c%s star_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
9480 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' bitwise_or"));
9481 }
9482 { // named_expression
9483 if (p->error_indicator) {
9484 D(p->level--);
9485 return NULL;
9486 }
9487 D(fprintf(stderr, "%*c> star_named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression"));
9488 expr_ty named_expression_var;
9489 if (
9490 (named_expression_var = named_expression_rule(p)) // named_expression
9491 )
9492 {
9493 D(fprintf(stderr, "%*c+ star_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "named_expression"));
9494 _res = named_expression_var;
9495 goto done;
9496 }
9497 p->mark = _mark;
9498 D(fprintf(stderr, "%*c%s star_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
9499 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression"));
9500 }
9501 _res = NULL;
9502 done:
9503 D(p->level--);
9504 return _res;
9505}
9506
Pablo Galindob86ed8e2021-04-12 16:59:30 +01009507// named_expression: NAME ':=' ~ expression | invalid_named_expression | expression !':='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009508static expr_ty
9509named_expression_rule(Parser *p)
9510{
9511 D(p->level++);
9512 if (p->error_indicator) {
9513 D(p->level--);
9514 return NULL;
9515 }
9516 expr_ty _res = NULL;
9517 int _mark = p->mark;
9518 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9519 p->error_indicator = 1;
9520 D(p->level--);
9521 return NULL;
9522 }
9523 int _start_lineno = p->tokens[_mark]->lineno;
9524 UNUSED(_start_lineno); // Only used by EXTRA macro
9525 int _start_col_offset = p->tokens[_mark]->col_offset;
9526 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03009527 { // NAME ':=' ~ expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009528 if (p->error_indicator) {
9529 D(p->level--);
9530 return NULL;
9531 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03009532 D(fprintf(stderr, "%*c> named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME ':=' ~ expression"));
9533 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009534 Token * _literal;
9535 expr_ty a;
9536 expr_ty b;
9537 if (
9538 (a = _PyPegen_name_token(p)) // NAME
9539 &&
9540 (_literal = _PyPegen_expect_token(p, 53)) // token=':='
9541 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03009542 (_cut_var = 1)
9543 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009544 (b = expression_rule(p)) // expression
9545 )
9546 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03009547 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 +01009548 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9549 if (_token == NULL) {
9550 D(p->level--);
9551 return NULL;
9552 }
9553 int _end_lineno = _token->end_lineno;
9554 UNUSED(_end_lineno); // Only used by EXTRA macro
9555 int _end_col_offset = _token->end_col_offset;
9556 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02009557 _res = _PyAST_NamedExpr ( CHECK ( expr_ty , _PyPegen_set_expr_context ( p , a , Store ) ) , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009558 if (_res == NULL && PyErr_Occurred()) {
9559 p->error_indicator = 1;
9560 D(p->level--);
9561 return NULL;
9562 }
9563 goto done;
9564 }
9565 p->mark = _mark;
9566 D(fprintf(stderr, "%*c%s named_expression[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03009567 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME ':=' ~ expression"));
9568 if (_cut_var) {
9569 D(p->level--);
9570 return NULL;
9571 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009572 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01009573 if (p->call_invalid_rules) { // invalid_named_expression
9574 if (p->error_indicator) {
9575 D(p->level--);
9576 return NULL;
9577 }
9578 D(fprintf(stderr, "%*c> named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_named_expression"));
9579 void *invalid_named_expression_var;
9580 if (
9581 (invalid_named_expression_var = invalid_named_expression_rule(p)) // invalid_named_expression
9582 )
9583 {
9584 D(fprintf(stderr, "%*c+ named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_named_expression"));
9585 _res = invalid_named_expression_var;
9586 goto done;
9587 }
9588 p->mark = _mark;
9589 D(fprintf(stderr, "%*c%s named_expression[%d-%d]: %s failed!\n", p->level, ' ',
9590 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_named_expression"));
9591 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009592 { // expression !':='
9593 if (p->error_indicator) {
9594 D(p->level--);
9595 return NULL;
9596 }
9597 D(fprintf(stderr, "%*c> named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression !':='"));
9598 expr_ty expression_var;
9599 if (
9600 (expression_var = expression_rule(p)) // expression
9601 &&
9602 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 53) // token=':='
9603 )
9604 {
9605 D(fprintf(stderr, "%*c+ named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression !':='"));
9606 _res = expression_var;
9607 goto done;
9608 }
9609 p->mark = _mark;
9610 D(fprintf(stderr, "%*c%s named_expression[%d-%d]: %s failed!\n", p->level, ' ',
9611 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression !':='"));
9612 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009613 _res = NULL;
9614 done:
9615 D(p->level--);
9616 return _res;
9617}
9618
Pablo Galindod9151cb2021-04-13 02:32:33 +01009619// direct_named_expression: NAME ':=' ~ expression | expression !':='
9620static expr_ty
9621direct_named_expression_rule(Parser *p)
9622{
9623 D(p->level++);
9624 if (p->error_indicator) {
9625 D(p->level--);
9626 return NULL;
9627 }
9628 expr_ty _res = NULL;
9629 int _mark = p->mark;
9630 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9631 p->error_indicator = 1;
9632 D(p->level--);
9633 return NULL;
9634 }
9635 int _start_lineno = p->tokens[_mark]->lineno;
9636 UNUSED(_start_lineno); // Only used by EXTRA macro
9637 int _start_col_offset = p->tokens[_mark]->col_offset;
9638 UNUSED(_start_col_offset); // Only used by EXTRA macro
9639 { // NAME ':=' ~ expression
9640 if (p->error_indicator) {
9641 D(p->level--);
9642 return NULL;
9643 }
9644 D(fprintf(stderr, "%*c> direct_named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME ':=' ~ expression"));
9645 int _cut_var = 0;
9646 Token * _literal;
9647 expr_ty a;
9648 expr_ty b;
9649 if (
9650 (a = _PyPegen_name_token(p)) // NAME
9651 &&
9652 (_literal = _PyPegen_expect_token(p, 53)) // token=':='
9653 &&
9654 (_cut_var = 1)
9655 &&
9656 (b = expression_rule(p)) // expression
9657 )
9658 {
9659 D(fprintf(stderr, "%*c+ direct_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME ':=' ~ expression"));
9660 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9661 if (_token == NULL) {
9662 D(p->level--);
9663 return NULL;
9664 }
9665 int _end_lineno = _token->end_lineno;
9666 UNUSED(_end_lineno); // Only used by EXTRA macro
9667 int _end_col_offset = _token->end_col_offset;
9668 UNUSED(_end_col_offset); // Only used by EXTRA macro
9669 _res = _PyAST_NamedExpr ( CHECK ( expr_ty , _PyPegen_set_expr_context ( p , a , Store ) ) , b , EXTRA );
9670 if (_res == NULL && PyErr_Occurred()) {
9671 p->error_indicator = 1;
9672 D(p->level--);
9673 return NULL;
9674 }
9675 goto done;
9676 }
9677 p->mark = _mark;
9678 D(fprintf(stderr, "%*c%s direct_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
9679 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME ':=' ~ expression"));
9680 if (_cut_var) {
9681 D(p->level--);
9682 return NULL;
9683 }
9684 }
9685 { // expression !':='
9686 if (p->error_indicator) {
9687 D(p->level--);
9688 return NULL;
9689 }
9690 D(fprintf(stderr, "%*c> direct_named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression !':='"));
9691 expr_ty expression_var;
9692 if (
9693 (expression_var = expression_rule(p)) // expression
9694 &&
9695 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 53) // token=':='
9696 )
9697 {
9698 D(fprintf(stderr, "%*c+ direct_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression !':='"));
9699 _res = expression_var;
9700 goto done;
9701 }
9702 p->mark = _mark;
9703 D(fprintf(stderr, "%*c%s direct_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
9704 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression !':='"));
9705 }
9706 _res = NULL;
9707 done:
9708 D(p->level--);
9709 return _res;
9710}
9711
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009712// annotated_rhs: yield_expr | star_expressions
9713static expr_ty
9714annotated_rhs_rule(Parser *p)
9715{
9716 D(p->level++);
9717 if (p->error_indicator) {
9718 D(p->level--);
9719 return NULL;
9720 }
9721 expr_ty _res = NULL;
9722 int _mark = p->mark;
9723 { // yield_expr
9724 if (p->error_indicator) {
9725 D(p->level--);
9726 return NULL;
9727 }
9728 D(fprintf(stderr, "%*c> annotated_rhs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
9729 expr_ty yield_expr_var;
9730 if (
9731 (yield_expr_var = yield_expr_rule(p)) // yield_expr
9732 )
9733 {
9734 D(fprintf(stderr, "%*c+ annotated_rhs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
9735 _res = yield_expr_var;
9736 goto done;
9737 }
9738 p->mark = _mark;
9739 D(fprintf(stderr, "%*c%s annotated_rhs[%d-%d]: %s failed!\n", p->level, ' ',
9740 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
9741 }
9742 { // star_expressions
9743 if (p->error_indicator) {
9744 D(p->level--);
9745 return NULL;
9746 }
9747 D(fprintf(stderr, "%*c> annotated_rhs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
9748 expr_ty star_expressions_var;
9749 if (
9750 (star_expressions_var = star_expressions_rule(p)) // star_expressions
9751 )
9752 {
9753 D(fprintf(stderr, "%*c+ annotated_rhs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
9754 _res = star_expressions_var;
9755 goto done;
9756 }
9757 p->mark = _mark;
9758 D(fprintf(stderr, "%*c%s annotated_rhs[%d-%d]: %s failed!\n", p->level, ' ',
9759 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
9760 }
9761 _res = NULL;
9762 done:
9763 D(p->level--);
9764 return _res;
9765}
9766
9767// expressions: expression ((',' expression))+ ','? | expression ',' | expression
9768static expr_ty
9769expressions_rule(Parser *p)
9770{
9771 D(p->level++);
9772 if (p->error_indicator) {
9773 D(p->level--);
9774 return NULL;
9775 }
9776 expr_ty _res = NULL;
9777 int _mark = p->mark;
9778 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9779 p->error_indicator = 1;
9780 D(p->level--);
9781 return NULL;
9782 }
9783 int _start_lineno = p->tokens[_mark]->lineno;
9784 UNUSED(_start_lineno); // Only used by EXTRA macro
9785 int _start_col_offset = p->tokens[_mark]->col_offset;
9786 UNUSED(_start_col_offset); // Only used by EXTRA macro
9787 { // expression ((',' expression))+ ','?
9788 if (p->error_indicator) {
9789 D(p->level--);
9790 return NULL;
9791 }
9792 D(fprintf(stderr, "%*c> expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ((',' expression))+ ','?"));
9793 void *_opt_var;
9794 UNUSED(_opt_var); // Silence compiler warnings
9795 expr_ty a;
9796 asdl_seq * b;
9797 if (
9798 (a = expression_rule(p)) // expression
9799 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08009800 (b = _loop1_89_rule(p)) // ((',' expression))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009801 &&
9802 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
9803 )
9804 {
9805 D(fprintf(stderr, "%*c+ expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ((',' expression))+ ','?"));
9806 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9807 if (_token == NULL) {
9808 D(p->level--);
9809 return NULL;
9810 }
9811 int _end_lineno = _token->end_lineno;
9812 UNUSED(_end_lineno); // Only used by EXTRA macro
9813 int _end_col_offset = _token->end_col_offset;
9814 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02009815 _res = _PyAST_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , a , b ) ) , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009816 if (_res == NULL && PyErr_Occurred()) {
9817 p->error_indicator = 1;
9818 D(p->level--);
9819 return NULL;
9820 }
9821 goto done;
9822 }
9823 p->mark = _mark;
9824 D(fprintf(stderr, "%*c%s expressions[%d-%d]: %s failed!\n", p->level, ' ',
9825 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ((',' expression))+ ','?"));
9826 }
9827 { // expression ','
9828 if (p->error_indicator) {
9829 D(p->level--);
9830 return NULL;
9831 }
9832 D(fprintf(stderr, "%*c> expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ','"));
9833 Token * _literal;
9834 expr_ty a;
9835 if (
9836 (a = expression_rule(p)) // expression
9837 &&
9838 (_literal = _PyPegen_expect_token(p, 12)) // token=','
9839 )
9840 {
9841 D(fprintf(stderr, "%*c+ expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ','"));
9842 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9843 if (_token == NULL) {
9844 D(p->level--);
9845 return NULL;
9846 }
9847 int _end_lineno = _token->end_lineno;
9848 UNUSED(_end_lineno); // Only used by EXTRA macro
9849 int _end_col_offset = _token->end_col_offset;
9850 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02009851 _res = _PyAST_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_singleton_seq ( p , a ) ) , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009852 if (_res == NULL && PyErr_Occurred()) {
9853 p->error_indicator = 1;
9854 D(p->level--);
9855 return NULL;
9856 }
9857 goto done;
9858 }
9859 p->mark = _mark;
9860 D(fprintf(stderr, "%*c%s expressions[%d-%d]: %s failed!\n", p->level, ' ',
9861 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ','"));
9862 }
9863 { // expression
9864 if (p->error_indicator) {
9865 D(p->level--);
9866 return NULL;
9867 }
9868 D(fprintf(stderr, "%*c> expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression"));
9869 expr_ty expression_var;
9870 if (
9871 (expression_var = expression_rule(p)) // expression
9872 )
9873 {
9874 D(fprintf(stderr, "%*c+ expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression"));
9875 _res = expression_var;
9876 goto done;
9877 }
9878 p->mark = _mark;
9879 D(fprintf(stderr, "%*c%s expressions[%d-%d]: %s failed!\n", p->level, ' ',
9880 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression"));
9881 }
9882 _res = NULL;
9883 done:
9884 D(p->level--);
9885 return _res;
9886}
9887
Pablo Galindob2802482021-04-15 21:38:45 +01009888// expression:
9889// | invalid_expression
9890// | disjunction 'if' disjunction 'else' expression
9891// | disjunction
9892// | lambdef
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009893static expr_ty
9894expression_rule(Parser *p)
9895{
9896 D(p->level++);
9897 if (p->error_indicator) {
9898 D(p->level--);
9899 return NULL;
9900 }
9901 expr_ty _res = NULL;
9902 if (_PyPegen_is_memoized(p, expression_type, &_res)) {
9903 D(p->level--);
9904 return _res;
9905 }
9906 int _mark = p->mark;
9907 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9908 p->error_indicator = 1;
9909 D(p->level--);
9910 return NULL;
9911 }
9912 int _start_lineno = p->tokens[_mark]->lineno;
9913 UNUSED(_start_lineno); // Only used by EXTRA macro
9914 int _start_col_offset = p->tokens[_mark]->col_offset;
9915 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindob2802482021-04-15 21:38:45 +01009916 if (p->call_invalid_rules) { // invalid_expression
9917 if (p->error_indicator) {
9918 D(p->level--);
9919 return NULL;
9920 }
9921 D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_expression"));
9922 void *invalid_expression_var;
9923 if (
9924 (invalid_expression_var = invalid_expression_rule(p)) // invalid_expression
9925 )
9926 {
9927 D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_expression"));
9928 _res = invalid_expression_var;
9929 goto done;
9930 }
9931 p->mark = _mark;
9932 D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
9933 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_expression"));
9934 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009935 { // disjunction 'if' disjunction 'else' expression
9936 if (p->error_indicator) {
9937 D(p->level--);
9938 return NULL;
9939 }
9940 D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction 'else' expression"));
9941 Token * _keyword;
9942 Token * _keyword_1;
9943 expr_ty a;
9944 expr_ty b;
9945 expr_ty c;
9946 if (
9947 (a = disjunction_rule(p)) // disjunction
9948 &&
9949 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
9950 &&
9951 (b = disjunction_rule(p)) // disjunction
9952 &&
9953 (_keyword_1 = _PyPegen_expect_token(p, 516)) // token='else'
9954 &&
9955 (c = expression_rule(p)) // expression
9956 )
9957 {
9958 D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction 'else' expression"));
9959 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9960 if (_token == NULL) {
9961 D(p->level--);
9962 return NULL;
9963 }
9964 int _end_lineno = _token->end_lineno;
9965 UNUSED(_end_lineno); // Only used by EXTRA macro
9966 int _end_col_offset = _token->end_col_offset;
9967 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02009968 _res = _PyAST_IfExp ( b , a , c , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009969 if (_res == NULL && PyErr_Occurred()) {
9970 p->error_indicator = 1;
9971 D(p->level--);
9972 return NULL;
9973 }
9974 goto done;
9975 }
9976 p->mark = _mark;
9977 D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
9978 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction 'if' disjunction 'else' expression"));
9979 }
9980 { // disjunction
9981 if (p->error_indicator) {
9982 D(p->level--);
9983 return NULL;
9984 }
9985 D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "disjunction"));
9986 expr_ty disjunction_var;
9987 if (
9988 (disjunction_var = disjunction_rule(p)) // disjunction
9989 )
9990 {
9991 D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "disjunction"));
9992 _res = disjunction_var;
9993 goto done;
9994 }
9995 p->mark = _mark;
9996 D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
9997 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction"));
9998 }
9999 { // lambdef
10000 if (p->error_indicator) {
10001 D(p->level--);
10002 return NULL;
10003 }
10004 D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambdef"));
10005 expr_ty lambdef_var;
10006 if (
10007 (lambdef_var = lambdef_rule(p)) // lambdef
10008 )
10009 {
10010 D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambdef"));
10011 _res = lambdef_var;
10012 goto done;
10013 }
10014 p->mark = _mark;
10015 D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
10016 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambdef"));
10017 }
10018 _res = NULL;
10019 done:
10020 _PyPegen_insert_memo(p, _mark, expression_type, _res);
10021 D(p->level--);
10022 return _res;
10023}
10024
10025// lambdef: 'lambda' lambda_params? ':' expression
10026static expr_ty
10027lambdef_rule(Parser *p)
10028{
10029 D(p->level++);
10030 if (p->error_indicator) {
10031 D(p->level--);
10032 return NULL;
10033 }
10034 expr_ty _res = NULL;
10035 int _mark = p->mark;
10036 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10037 p->error_indicator = 1;
10038 D(p->level--);
10039 return NULL;
10040 }
10041 int _start_lineno = p->tokens[_mark]->lineno;
10042 UNUSED(_start_lineno); // Only used by EXTRA macro
10043 int _start_col_offset = p->tokens[_mark]->col_offset;
10044 UNUSED(_start_col_offset); // Only used by EXTRA macro
10045 { // 'lambda' lambda_params? ':' expression
10046 if (p->error_indicator) {
10047 D(p->level--);
10048 return NULL;
10049 }
10050 D(fprintf(stderr, "%*c> lambdef[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'lambda' lambda_params? ':' expression"));
10051 Token * _keyword;
10052 Token * _literal;
10053 void *a;
10054 expr_ty b;
10055 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080010056 (_keyword = _PyPegen_expect_token(p, 528)) // token='lambda'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010057 &&
10058 (a = lambda_params_rule(p), 1) // lambda_params?
10059 &&
10060 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
10061 &&
10062 (b = expression_rule(p)) // expression
10063 )
10064 {
10065 D(fprintf(stderr, "%*c+ lambdef[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'lambda' lambda_params? ':' expression"));
10066 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10067 if (_token == NULL) {
10068 D(p->level--);
10069 return NULL;
10070 }
10071 int _end_lineno = _token->end_lineno;
10072 UNUSED(_end_lineno); // Only used by EXTRA macro
10073 int _end_col_offset = _token->end_col_offset;
10074 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020010075 _res = _PyAST_Lambda ( ( a ) ? a : CHECK ( arguments_ty , _PyPegen_empty_arguments ( p ) ) , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010076 if (_res == NULL && PyErr_Occurred()) {
10077 p->error_indicator = 1;
10078 D(p->level--);
10079 return NULL;
10080 }
10081 goto done;
10082 }
10083 p->mark = _mark;
10084 D(fprintf(stderr, "%*c%s lambdef[%d-%d]: %s failed!\n", p->level, ' ',
10085 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'lambda' lambda_params? ':' expression"));
10086 }
10087 _res = NULL;
10088 done:
10089 D(p->level--);
10090 return _res;
10091}
10092
10093// lambda_params: invalid_lambda_parameters | lambda_parameters
10094static arguments_ty
10095lambda_params_rule(Parser *p)
10096{
10097 D(p->level++);
10098 if (p->error_indicator) {
10099 D(p->level--);
10100 return NULL;
10101 }
10102 arguments_ty _res = NULL;
10103 int _mark = p->mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020010104 if (p->call_invalid_rules) { // invalid_lambda_parameters
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010105 if (p->error_indicator) {
10106 D(p->level--);
10107 return NULL;
10108 }
10109 D(fprintf(stderr, "%*c> lambda_params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_lambda_parameters"));
10110 void *invalid_lambda_parameters_var;
10111 if (
10112 (invalid_lambda_parameters_var = invalid_lambda_parameters_rule(p)) // invalid_lambda_parameters
10113 )
10114 {
10115 D(fprintf(stderr, "%*c+ lambda_params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_lambda_parameters"));
10116 _res = invalid_lambda_parameters_var;
10117 goto done;
10118 }
10119 p->mark = _mark;
10120 D(fprintf(stderr, "%*c%s lambda_params[%d-%d]: %s failed!\n", p->level, ' ',
10121 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_lambda_parameters"));
10122 }
10123 { // lambda_parameters
10124 if (p->error_indicator) {
10125 D(p->level--);
10126 return NULL;
10127 }
10128 D(fprintf(stderr, "%*c> lambda_params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_parameters"));
10129 arguments_ty lambda_parameters_var;
10130 if (
10131 (lambda_parameters_var = lambda_parameters_rule(p)) // lambda_parameters
10132 )
10133 {
10134 D(fprintf(stderr, "%*c+ lambda_params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_parameters"));
10135 _res = lambda_parameters_var;
10136 goto done;
10137 }
10138 p->mark = _mark;
10139 D(fprintf(stderr, "%*c%s lambda_params[%d-%d]: %s failed!\n", p->level, ' ',
10140 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_parameters"));
10141 }
10142 _res = NULL;
10143 done:
10144 D(p->level--);
10145 return _res;
10146}
10147
10148// lambda_parameters:
10149// | lambda_slash_no_default lambda_param_no_default* lambda_param_with_default* lambda_star_etc?
10150// | lambda_slash_with_default lambda_param_with_default* lambda_star_etc?
10151// | lambda_param_no_default+ lambda_param_with_default* lambda_star_etc?
10152// | lambda_param_with_default+ lambda_star_etc?
10153// | lambda_star_etc
10154static arguments_ty
10155lambda_parameters_rule(Parser *p)
10156{
10157 D(p->level++);
10158 if (p->error_indicator) {
10159 D(p->level--);
10160 return NULL;
10161 }
10162 arguments_ty _res = NULL;
10163 int _mark = p->mark;
10164 { // lambda_slash_no_default lambda_param_no_default* lambda_param_with_default* lambda_star_etc?
10165 if (p->error_indicator) {
10166 D(p->level--);
10167 return NULL;
10168 }
10169 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 +010010170 asdl_arg_seq* a;
10171 asdl_arg_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010172 asdl_seq * c;
10173 void *d;
10174 if (
10175 (a = lambda_slash_no_default_rule(p)) // lambda_slash_no_default
10176 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080010177 (b = (asdl_arg_seq*)_loop0_90_rule(p)) // lambda_param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010178 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080010179 (c = _loop0_91_rule(p)) // lambda_param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010180 &&
10181 (d = lambda_star_etc_rule(p), 1) // lambda_star_etc?
10182 )
10183 {
10184 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?"));
10185 _res = _PyPegen_make_arguments ( p , a , NULL , b , c , d );
10186 if (_res == NULL && PyErr_Occurred()) {
10187 p->error_indicator = 1;
10188 D(p->level--);
10189 return NULL;
10190 }
10191 goto done;
10192 }
10193 p->mark = _mark;
10194 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
10195 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_slash_no_default lambda_param_no_default* lambda_param_with_default* lambda_star_etc?"));
10196 }
10197 { // lambda_slash_with_default lambda_param_with_default* lambda_star_etc?
10198 if (p->error_indicator) {
10199 D(p->level--);
10200 return NULL;
10201 }
10202 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?"));
10203 SlashWithDefault* a;
10204 asdl_seq * b;
10205 void *c;
10206 if (
10207 (a = lambda_slash_with_default_rule(p)) // lambda_slash_with_default
10208 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080010209 (b = _loop0_92_rule(p)) // lambda_param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010210 &&
10211 (c = lambda_star_etc_rule(p), 1) // lambda_star_etc?
10212 )
10213 {
10214 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?"));
10215 _res = _PyPegen_make_arguments ( p , NULL , a , NULL , b , c );
10216 if (_res == NULL && PyErr_Occurred()) {
10217 p->error_indicator = 1;
10218 D(p->level--);
10219 return NULL;
10220 }
10221 goto done;
10222 }
10223 p->mark = _mark;
10224 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
10225 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_slash_with_default lambda_param_with_default* lambda_star_etc?"));
10226 }
10227 { // lambda_param_no_default+ lambda_param_with_default* lambda_star_etc?
10228 if (p->error_indicator) {
10229 D(p->level--);
10230 return NULL;
10231 }
10232 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 +010010233 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010234 asdl_seq * b;
10235 void *c;
10236 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080010237 (a = (asdl_arg_seq*)_loop1_93_rule(p)) // lambda_param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010238 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080010239 (b = _loop0_94_rule(p)) // lambda_param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010240 &&
10241 (c = lambda_star_etc_rule(p), 1) // lambda_star_etc?
10242 )
10243 {
10244 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?"));
10245 _res = _PyPegen_make_arguments ( p , NULL , NULL , a , b , c );
10246 if (_res == NULL && PyErr_Occurred()) {
10247 p->error_indicator = 1;
10248 D(p->level--);
10249 return NULL;
10250 }
10251 goto done;
10252 }
10253 p->mark = _mark;
10254 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
10255 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default+ lambda_param_with_default* lambda_star_etc?"));
10256 }
10257 { // lambda_param_with_default+ lambda_star_etc?
10258 if (p->error_indicator) {
10259 D(p->level--);
10260 return NULL;
10261 }
10262 D(fprintf(stderr, "%*c> lambda_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+ lambda_star_etc?"));
10263 asdl_seq * a;
10264 void *b;
10265 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080010266 (a = _loop1_95_rule(p)) // lambda_param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010267 &&
10268 (b = lambda_star_etc_rule(p), 1) // lambda_star_etc?
10269 )
10270 {
10271 D(fprintf(stderr, "%*c+ lambda_parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+ lambda_star_etc?"));
10272 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , a , b );
10273 if (_res == NULL && PyErr_Occurred()) {
10274 p->error_indicator = 1;
10275 D(p->level--);
10276 return NULL;
10277 }
10278 goto done;
10279 }
10280 p->mark = _mark;
10281 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
10282 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default+ lambda_star_etc?"));
10283 }
10284 { // lambda_star_etc
10285 if (p->error_indicator) {
10286 D(p->level--);
10287 return NULL;
10288 }
10289 D(fprintf(stderr, "%*c> lambda_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_star_etc"));
10290 StarEtc* a;
10291 if (
10292 (a = lambda_star_etc_rule(p)) // lambda_star_etc
10293 )
10294 {
10295 D(fprintf(stderr, "%*c+ lambda_parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_star_etc"));
10296 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , NULL , a );
10297 if (_res == NULL && PyErr_Occurred()) {
10298 p->error_indicator = 1;
10299 D(p->level--);
10300 return NULL;
10301 }
10302 goto done;
10303 }
10304 p->mark = _mark;
10305 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
10306 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_star_etc"));
10307 }
10308 _res = NULL;
10309 done:
10310 D(p->level--);
10311 return _res;
10312}
10313
10314// lambda_slash_no_default:
10315// | lambda_param_no_default+ '/' ','
10316// | lambda_param_no_default+ '/' &':'
Pablo Galindoa5634c42020-09-16 19:42:00 +010010317static asdl_arg_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010318lambda_slash_no_default_rule(Parser *p)
10319{
10320 D(p->level++);
10321 if (p->error_indicator) {
10322 D(p->level--);
10323 return NULL;
10324 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010010325 asdl_arg_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010326 int _mark = p->mark;
10327 { // lambda_param_no_default+ '/' ','
10328 if (p->error_indicator) {
10329 D(p->level--);
10330 return NULL;
10331 }
10332 D(fprintf(stderr, "%*c> lambda_slash_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ '/' ','"));
10333 Token * _literal;
10334 Token * _literal_1;
Pablo Galindoa5634c42020-09-16 19:42:00 +010010335 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010336 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080010337 (a = (asdl_arg_seq*)_loop1_96_rule(p)) // lambda_param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010338 &&
10339 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
10340 &&
10341 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
10342 )
10343 {
10344 D(fprintf(stderr, "%*c+ lambda_slash_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ '/' ','"));
10345 _res = a;
10346 if (_res == NULL && PyErr_Occurred()) {
10347 p->error_indicator = 1;
10348 D(p->level--);
10349 return NULL;
10350 }
10351 goto done;
10352 }
10353 p->mark = _mark;
10354 D(fprintf(stderr, "%*c%s lambda_slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
10355 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default+ '/' ','"));
10356 }
10357 { // lambda_param_no_default+ '/' &':'
10358 if (p->error_indicator) {
10359 D(p->level--);
10360 return NULL;
10361 }
10362 D(fprintf(stderr, "%*c> lambda_slash_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ '/' &':'"));
10363 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +010010364 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010365 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080010366 (a = (asdl_arg_seq*)_loop1_97_rule(p)) // lambda_param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010367 &&
10368 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
10369 &&
10370 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
10371 )
10372 {
10373 D(fprintf(stderr, "%*c+ lambda_slash_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ '/' &':'"));
10374 _res = a;
10375 if (_res == NULL && PyErr_Occurred()) {
10376 p->error_indicator = 1;
10377 D(p->level--);
10378 return NULL;
10379 }
10380 goto done;
10381 }
10382 p->mark = _mark;
10383 D(fprintf(stderr, "%*c%s lambda_slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
10384 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default+ '/' &':'"));
10385 }
10386 _res = NULL;
10387 done:
10388 D(p->level--);
10389 return _res;
10390}
10391
10392// lambda_slash_with_default:
10393// | lambda_param_no_default* lambda_param_with_default+ '/' ','
10394// | lambda_param_no_default* lambda_param_with_default+ '/' &':'
10395static SlashWithDefault*
10396lambda_slash_with_default_rule(Parser *p)
10397{
10398 D(p->level++);
10399 if (p->error_indicator) {
10400 D(p->level--);
10401 return NULL;
10402 }
10403 SlashWithDefault* _res = NULL;
10404 int _mark = p->mark;
10405 { // lambda_param_no_default* lambda_param_with_default+ '/' ','
10406 if (p->error_indicator) {
10407 D(p->level--);
10408 return NULL;
10409 }
10410 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+ '/' ','"));
10411 Token * _literal;
10412 Token * _literal_1;
10413 asdl_seq * a;
10414 asdl_seq * b;
10415 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080010416 (a = _loop0_98_rule(p)) // lambda_param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010417 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080010418 (b = _loop1_99_rule(p)) // lambda_param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010419 &&
10420 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
10421 &&
10422 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
10423 )
10424 {
10425 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 +010010426 _res = _PyPegen_slash_with_default ( p , ( asdl_arg_seq * ) a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010427 if (_res == NULL && PyErr_Occurred()) {
10428 p->error_indicator = 1;
10429 D(p->level--);
10430 return NULL;
10431 }
10432 goto done;
10433 }
10434 p->mark = _mark;
10435 D(fprintf(stderr, "%*c%s lambda_slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
10436 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default* lambda_param_with_default+ '/' ','"));
10437 }
10438 { // lambda_param_no_default* lambda_param_with_default+ '/' &':'
10439 if (p->error_indicator) {
10440 D(p->level--);
10441 return NULL;
10442 }
10443 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+ '/' &':'"));
10444 Token * _literal;
10445 asdl_seq * a;
10446 asdl_seq * b;
10447 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080010448 (a = _loop0_100_rule(p)) // lambda_param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010449 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080010450 (b = _loop1_101_rule(p)) // lambda_param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010451 &&
10452 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
10453 &&
10454 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
10455 )
10456 {
10457 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 +010010458 _res = _PyPegen_slash_with_default ( p , ( asdl_arg_seq * ) a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010459 if (_res == NULL && PyErr_Occurred()) {
10460 p->error_indicator = 1;
10461 D(p->level--);
10462 return NULL;
10463 }
10464 goto done;
10465 }
10466 p->mark = _mark;
10467 D(fprintf(stderr, "%*c%s lambda_slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
10468 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default* lambda_param_with_default+ '/' &':'"));
10469 }
10470 _res = NULL;
10471 done:
10472 D(p->level--);
10473 return _res;
10474}
10475
10476// lambda_star_etc:
10477// | '*' lambda_param_no_default lambda_param_maybe_default* lambda_kwds?
10478// | '*' ',' lambda_param_maybe_default+ lambda_kwds?
10479// | lambda_kwds
10480// | invalid_lambda_star_etc
10481static StarEtc*
10482lambda_star_etc_rule(Parser *p)
10483{
10484 D(p->level++);
10485 if (p->error_indicator) {
10486 D(p->level--);
10487 return NULL;
10488 }
10489 StarEtc* _res = NULL;
10490 int _mark = p->mark;
10491 { // '*' lambda_param_no_default lambda_param_maybe_default* lambda_kwds?
10492 if (p->error_indicator) {
10493 D(p->level--);
10494 return NULL;
10495 }
10496 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?"));
10497 Token * _literal;
10498 arg_ty a;
10499 asdl_seq * b;
10500 void *c;
10501 if (
10502 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
10503 &&
10504 (a = lambda_param_no_default_rule(p)) // lambda_param_no_default
10505 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080010506 (b = _loop0_102_rule(p)) // lambda_param_maybe_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010507 &&
10508 (c = lambda_kwds_rule(p), 1) // lambda_kwds?
10509 )
10510 {
10511 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?"));
10512 _res = _PyPegen_star_etc ( p , a , b , c );
10513 if (_res == NULL && PyErr_Occurred()) {
10514 p->error_indicator = 1;
10515 D(p->level--);
10516 return NULL;
10517 }
10518 goto done;
10519 }
10520 p->mark = _mark;
10521 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
10522 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' lambda_param_no_default lambda_param_maybe_default* lambda_kwds?"));
10523 }
10524 { // '*' ',' lambda_param_maybe_default+ lambda_kwds?
10525 if (p->error_indicator) {
10526 D(p->level--);
10527 return NULL;
10528 }
10529 D(fprintf(stderr, "%*c> lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' ',' lambda_param_maybe_default+ lambda_kwds?"));
10530 Token * _literal;
10531 Token * _literal_1;
10532 asdl_seq * b;
10533 void *c;
10534 if (
10535 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
10536 &&
10537 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
10538 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080010539 (b = _loop1_103_rule(p)) // lambda_param_maybe_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010540 &&
10541 (c = lambda_kwds_rule(p), 1) // lambda_kwds?
10542 )
10543 {
10544 D(fprintf(stderr, "%*c+ lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' ',' lambda_param_maybe_default+ lambda_kwds?"));
10545 _res = _PyPegen_star_etc ( p , NULL , b , c );
10546 if (_res == NULL && PyErr_Occurred()) {
10547 p->error_indicator = 1;
10548 D(p->level--);
10549 return NULL;
10550 }
10551 goto done;
10552 }
10553 p->mark = _mark;
10554 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
10555 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' ',' lambda_param_maybe_default+ lambda_kwds?"));
10556 }
10557 { // lambda_kwds
10558 if (p->error_indicator) {
10559 D(p->level--);
10560 return NULL;
10561 }
10562 D(fprintf(stderr, "%*c> lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_kwds"));
10563 arg_ty a;
10564 if (
10565 (a = lambda_kwds_rule(p)) // lambda_kwds
10566 )
10567 {
10568 D(fprintf(stderr, "%*c+ lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_kwds"));
10569 _res = _PyPegen_star_etc ( p , NULL , NULL , a );
10570 if (_res == NULL && PyErr_Occurred()) {
10571 p->error_indicator = 1;
10572 D(p->level--);
10573 return NULL;
10574 }
10575 goto done;
10576 }
10577 p->mark = _mark;
10578 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
10579 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_kwds"));
10580 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020010581 if (p->call_invalid_rules) { // invalid_lambda_star_etc
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010582 if (p->error_indicator) {
10583 D(p->level--);
10584 return NULL;
10585 }
10586 D(fprintf(stderr, "%*c> lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_lambda_star_etc"));
10587 void *invalid_lambda_star_etc_var;
10588 if (
10589 (invalid_lambda_star_etc_var = invalid_lambda_star_etc_rule(p)) // invalid_lambda_star_etc
10590 )
10591 {
10592 D(fprintf(stderr, "%*c+ lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_lambda_star_etc"));
10593 _res = invalid_lambda_star_etc_var;
10594 goto done;
10595 }
10596 p->mark = _mark;
10597 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
10598 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_lambda_star_etc"));
10599 }
10600 _res = NULL;
10601 done:
10602 D(p->level--);
10603 return _res;
10604}
10605
10606// lambda_kwds: '**' lambda_param_no_default
10607static arg_ty
10608lambda_kwds_rule(Parser *p)
10609{
10610 D(p->level++);
10611 if (p->error_indicator) {
10612 D(p->level--);
10613 return NULL;
10614 }
10615 arg_ty _res = NULL;
10616 int _mark = p->mark;
10617 { // '**' lambda_param_no_default
10618 if (p->error_indicator) {
10619 D(p->level--);
10620 return NULL;
10621 }
10622 D(fprintf(stderr, "%*c> lambda_kwds[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' lambda_param_no_default"));
10623 Token * _literal;
10624 arg_ty a;
10625 if (
10626 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
10627 &&
10628 (a = lambda_param_no_default_rule(p)) // lambda_param_no_default
10629 )
10630 {
10631 D(fprintf(stderr, "%*c+ lambda_kwds[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' lambda_param_no_default"));
10632 _res = a;
10633 if (_res == NULL && PyErr_Occurred()) {
10634 p->error_indicator = 1;
10635 D(p->level--);
10636 return NULL;
10637 }
10638 goto done;
10639 }
10640 p->mark = _mark;
10641 D(fprintf(stderr, "%*c%s lambda_kwds[%d-%d]: %s failed!\n", p->level, ' ',
10642 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' lambda_param_no_default"));
10643 }
10644 _res = NULL;
10645 done:
10646 D(p->level--);
10647 return _res;
10648}
10649
10650// lambda_param_no_default: lambda_param ',' | lambda_param &':'
10651static arg_ty
10652lambda_param_no_default_rule(Parser *p)
10653{
10654 D(p->level++);
10655 if (p->error_indicator) {
10656 D(p->level--);
10657 return NULL;
10658 }
10659 arg_ty _res = NULL;
10660 int _mark = p->mark;
10661 { // lambda_param ','
10662 if (p->error_indicator) {
10663 D(p->level--);
10664 return NULL;
10665 }
10666 D(fprintf(stderr, "%*c> lambda_param_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param ','"));
10667 Token * _literal;
10668 arg_ty a;
10669 if (
10670 (a = lambda_param_rule(p)) // lambda_param
10671 &&
10672 (_literal = _PyPegen_expect_token(p, 12)) // token=','
10673 )
10674 {
10675 D(fprintf(stderr, "%*c+ lambda_param_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param ','"));
10676 _res = a;
10677 if (_res == NULL && PyErr_Occurred()) {
10678 p->error_indicator = 1;
10679 D(p->level--);
10680 return NULL;
10681 }
10682 goto done;
10683 }
10684 p->mark = _mark;
10685 D(fprintf(stderr, "%*c%s lambda_param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
10686 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param ','"));
10687 }
10688 { // lambda_param &':'
10689 if (p->error_indicator) {
10690 D(p->level--);
10691 return NULL;
10692 }
10693 D(fprintf(stderr, "%*c> lambda_param_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param &':'"));
10694 arg_ty a;
10695 if (
10696 (a = lambda_param_rule(p)) // lambda_param
10697 &&
10698 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
10699 )
10700 {
10701 D(fprintf(stderr, "%*c+ lambda_param_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param &':'"));
10702 _res = a;
10703 if (_res == NULL && PyErr_Occurred()) {
10704 p->error_indicator = 1;
10705 D(p->level--);
10706 return NULL;
10707 }
10708 goto done;
10709 }
10710 p->mark = _mark;
10711 D(fprintf(stderr, "%*c%s lambda_param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
10712 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param &':'"));
10713 }
10714 _res = NULL;
10715 done:
10716 D(p->level--);
10717 return _res;
10718}
10719
10720// lambda_param_with_default: lambda_param default ',' | lambda_param default &':'
10721static NameDefaultPair*
10722lambda_param_with_default_rule(Parser *p)
10723{
10724 D(p->level++);
10725 if (p->error_indicator) {
10726 D(p->level--);
10727 return NULL;
10728 }
10729 NameDefaultPair* _res = NULL;
10730 int _mark = p->mark;
10731 { // lambda_param default ','
10732 if (p->error_indicator) {
10733 D(p->level--);
10734 return NULL;
10735 }
10736 D(fprintf(stderr, "%*c> lambda_param_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param default ','"));
10737 Token * _literal;
10738 arg_ty a;
10739 expr_ty c;
10740 if (
10741 (a = lambda_param_rule(p)) // lambda_param
10742 &&
10743 (c = default_rule(p)) // default
10744 &&
10745 (_literal = _PyPegen_expect_token(p, 12)) // token=','
10746 )
10747 {
10748 D(fprintf(stderr, "%*c+ lambda_param_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param default ','"));
10749 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
10750 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 lambda_param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
10759 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default ','"));
10760 }
10761 { // lambda_param default &':'
10762 if (p->error_indicator) {
10763 D(p->level--);
10764 return NULL;
10765 }
10766 D(fprintf(stderr, "%*c> lambda_param_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param default &':'"));
10767 arg_ty a;
10768 expr_ty c;
10769 if (
10770 (a = lambda_param_rule(p)) // lambda_param
10771 &&
10772 (c = default_rule(p)) // default
10773 &&
10774 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
10775 )
10776 {
10777 D(fprintf(stderr, "%*c+ lambda_param_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param default &':'"));
10778 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
10779 if (_res == NULL && PyErr_Occurred()) {
10780 p->error_indicator = 1;
10781 D(p->level--);
10782 return NULL;
10783 }
10784 goto done;
10785 }
10786 p->mark = _mark;
10787 D(fprintf(stderr, "%*c%s lambda_param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
10788 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default &':'"));
10789 }
10790 _res = NULL;
10791 done:
10792 D(p->level--);
10793 return _res;
10794}
10795
10796// lambda_param_maybe_default: lambda_param default? ',' | lambda_param default? &':'
10797static NameDefaultPair*
10798lambda_param_maybe_default_rule(Parser *p)
10799{
10800 D(p->level++);
10801 if (p->error_indicator) {
10802 D(p->level--);
10803 return NULL;
10804 }
10805 NameDefaultPair* _res = NULL;
10806 int _mark = p->mark;
10807 { // lambda_param default? ','
10808 if (p->error_indicator) {
10809 D(p->level--);
10810 return NULL;
10811 }
10812 D(fprintf(stderr, "%*c> lambda_param_maybe_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param default? ','"));
10813 Token * _literal;
10814 arg_ty a;
10815 void *c;
10816 if (
10817 (a = lambda_param_rule(p)) // lambda_param
10818 &&
10819 (c = default_rule(p), 1) // default?
10820 &&
10821 (_literal = _PyPegen_expect_token(p, 12)) // token=','
10822 )
10823 {
10824 D(fprintf(stderr, "%*c+ lambda_param_maybe_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param default? ','"));
10825 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
10826 if (_res == NULL && PyErr_Occurred()) {
10827 p->error_indicator = 1;
10828 D(p->level--);
10829 return NULL;
10830 }
10831 goto done;
10832 }
10833 p->mark = _mark;
10834 D(fprintf(stderr, "%*c%s lambda_param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
10835 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default? ','"));
10836 }
10837 { // lambda_param default? &':'
10838 if (p->error_indicator) {
10839 D(p->level--);
10840 return NULL;
10841 }
10842 D(fprintf(stderr, "%*c> lambda_param_maybe_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param default? &':'"));
10843 arg_ty a;
10844 void *c;
10845 if (
10846 (a = lambda_param_rule(p)) // lambda_param
10847 &&
10848 (c = default_rule(p), 1) // default?
10849 &&
10850 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
10851 )
10852 {
10853 D(fprintf(stderr, "%*c+ lambda_param_maybe_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param default? &':'"));
10854 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
10855 if (_res == NULL && PyErr_Occurred()) {
10856 p->error_indicator = 1;
10857 D(p->level--);
10858 return NULL;
10859 }
10860 goto done;
10861 }
10862 p->mark = _mark;
10863 D(fprintf(stderr, "%*c%s lambda_param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
10864 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default? &':'"));
10865 }
10866 _res = NULL;
10867 done:
10868 D(p->level--);
10869 return _res;
10870}
10871
10872// lambda_param: NAME
10873static arg_ty
10874lambda_param_rule(Parser *p)
10875{
10876 D(p->level++);
10877 if (p->error_indicator) {
10878 D(p->level--);
10879 return NULL;
10880 }
10881 arg_ty _res = NULL;
10882 int _mark = p->mark;
10883 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10884 p->error_indicator = 1;
10885 D(p->level--);
10886 return NULL;
10887 }
10888 int _start_lineno = p->tokens[_mark]->lineno;
10889 UNUSED(_start_lineno); // Only used by EXTRA macro
10890 int _start_col_offset = p->tokens[_mark]->col_offset;
10891 UNUSED(_start_col_offset); // Only used by EXTRA macro
10892 { // NAME
10893 if (p->error_indicator) {
10894 D(p->level--);
10895 return NULL;
10896 }
10897 D(fprintf(stderr, "%*c> lambda_param[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
10898 expr_ty a;
10899 if (
10900 (a = _PyPegen_name_token(p)) // NAME
10901 )
10902 {
10903 D(fprintf(stderr, "%*c+ lambda_param[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
10904 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10905 if (_token == NULL) {
10906 D(p->level--);
10907 return NULL;
10908 }
10909 int _end_lineno = _token->end_lineno;
10910 UNUSED(_end_lineno); // Only used by EXTRA macro
10911 int _end_col_offset = _token->end_col_offset;
10912 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020010913 _res = _PyAST_arg ( a -> v . Name . id , NULL , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010914 if (_res == NULL && PyErr_Occurred()) {
10915 p->error_indicator = 1;
10916 D(p->level--);
10917 return NULL;
10918 }
10919 goto done;
10920 }
10921 p->mark = _mark;
10922 D(fprintf(stderr, "%*c%s lambda_param[%d-%d]: %s failed!\n", p->level, ' ',
10923 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
10924 }
10925 _res = NULL;
10926 done:
10927 D(p->level--);
10928 return _res;
10929}
10930
10931// disjunction: conjunction (('or' conjunction))+ | conjunction
10932static expr_ty
10933disjunction_rule(Parser *p)
10934{
10935 D(p->level++);
10936 if (p->error_indicator) {
10937 D(p->level--);
10938 return NULL;
10939 }
10940 expr_ty _res = NULL;
10941 if (_PyPegen_is_memoized(p, disjunction_type, &_res)) {
10942 D(p->level--);
10943 return _res;
10944 }
10945 int _mark = p->mark;
10946 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10947 p->error_indicator = 1;
10948 D(p->level--);
10949 return NULL;
10950 }
10951 int _start_lineno = p->tokens[_mark]->lineno;
10952 UNUSED(_start_lineno); // Only used by EXTRA macro
10953 int _start_col_offset = p->tokens[_mark]->col_offset;
10954 UNUSED(_start_col_offset); // Only used by EXTRA macro
10955 { // conjunction (('or' conjunction))+
10956 if (p->error_indicator) {
10957 D(p->level--);
10958 return NULL;
10959 }
10960 D(fprintf(stderr, "%*c> disjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "conjunction (('or' conjunction))+"));
10961 expr_ty a;
10962 asdl_seq * b;
10963 if (
10964 (a = conjunction_rule(p)) // conjunction
10965 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080010966 (b = _loop1_104_rule(p)) // (('or' conjunction))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010967 )
10968 {
10969 D(fprintf(stderr, "%*c+ disjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "conjunction (('or' conjunction))+"));
10970 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10971 if (_token == NULL) {
10972 D(p->level--);
10973 return NULL;
10974 }
10975 int _end_lineno = _token->end_lineno;
10976 UNUSED(_end_lineno); // Only used by EXTRA macro
10977 int _end_col_offset = _token->end_col_offset;
10978 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020010979 _res = _PyAST_BoolOp ( Or , CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , a , b ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010980 if (_res == NULL && PyErr_Occurred()) {
10981 p->error_indicator = 1;
10982 D(p->level--);
10983 return NULL;
10984 }
10985 goto done;
10986 }
10987 p->mark = _mark;
10988 D(fprintf(stderr, "%*c%s disjunction[%d-%d]: %s failed!\n", p->level, ' ',
10989 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "conjunction (('or' conjunction))+"));
10990 }
10991 { // conjunction
10992 if (p->error_indicator) {
10993 D(p->level--);
10994 return NULL;
10995 }
10996 D(fprintf(stderr, "%*c> disjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "conjunction"));
10997 expr_ty conjunction_var;
10998 if (
10999 (conjunction_var = conjunction_rule(p)) // conjunction
11000 )
11001 {
11002 D(fprintf(stderr, "%*c+ disjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "conjunction"));
11003 _res = conjunction_var;
11004 goto done;
11005 }
11006 p->mark = _mark;
11007 D(fprintf(stderr, "%*c%s disjunction[%d-%d]: %s failed!\n", p->level, ' ',
11008 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "conjunction"));
11009 }
11010 _res = NULL;
11011 done:
11012 _PyPegen_insert_memo(p, _mark, disjunction_type, _res);
11013 D(p->level--);
11014 return _res;
11015}
11016
11017// conjunction: inversion (('and' inversion))+ | inversion
11018static expr_ty
11019conjunction_rule(Parser *p)
11020{
11021 D(p->level++);
11022 if (p->error_indicator) {
11023 D(p->level--);
11024 return NULL;
11025 }
11026 expr_ty _res = NULL;
11027 if (_PyPegen_is_memoized(p, conjunction_type, &_res)) {
11028 D(p->level--);
11029 return _res;
11030 }
11031 int _mark = p->mark;
11032 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11033 p->error_indicator = 1;
11034 D(p->level--);
11035 return NULL;
11036 }
11037 int _start_lineno = p->tokens[_mark]->lineno;
11038 UNUSED(_start_lineno); // Only used by EXTRA macro
11039 int _start_col_offset = p->tokens[_mark]->col_offset;
11040 UNUSED(_start_col_offset); // Only used by EXTRA macro
11041 { // inversion (('and' inversion))+
11042 if (p->error_indicator) {
11043 D(p->level--);
11044 return NULL;
11045 }
11046 D(fprintf(stderr, "%*c> conjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "inversion (('and' inversion))+"));
11047 expr_ty a;
11048 asdl_seq * b;
11049 if (
11050 (a = inversion_rule(p)) // inversion
11051 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080011052 (b = _loop1_105_rule(p)) // (('and' inversion))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011053 )
11054 {
11055 D(fprintf(stderr, "%*c+ conjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "inversion (('and' inversion))+"));
11056 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11057 if (_token == NULL) {
11058 D(p->level--);
11059 return NULL;
11060 }
11061 int _end_lineno = _token->end_lineno;
11062 UNUSED(_end_lineno); // Only used by EXTRA macro
11063 int _end_col_offset = _token->end_col_offset;
11064 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020011065 _res = _PyAST_BoolOp ( And , CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , a , b ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011066 if (_res == NULL && PyErr_Occurred()) {
11067 p->error_indicator = 1;
11068 D(p->level--);
11069 return NULL;
11070 }
11071 goto done;
11072 }
11073 p->mark = _mark;
11074 D(fprintf(stderr, "%*c%s conjunction[%d-%d]: %s failed!\n", p->level, ' ',
11075 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "inversion (('and' inversion))+"));
11076 }
11077 { // inversion
11078 if (p->error_indicator) {
11079 D(p->level--);
11080 return NULL;
11081 }
11082 D(fprintf(stderr, "%*c> conjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "inversion"));
11083 expr_ty inversion_var;
11084 if (
11085 (inversion_var = inversion_rule(p)) // inversion
11086 )
11087 {
11088 D(fprintf(stderr, "%*c+ conjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "inversion"));
11089 _res = inversion_var;
11090 goto done;
11091 }
11092 p->mark = _mark;
11093 D(fprintf(stderr, "%*c%s conjunction[%d-%d]: %s failed!\n", p->level, ' ',
11094 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "inversion"));
11095 }
11096 _res = NULL;
11097 done:
11098 _PyPegen_insert_memo(p, _mark, conjunction_type, _res);
11099 D(p->level--);
11100 return _res;
11101}
11102
11103// inversion: 'not' inversion | comparison
11104static expr_ty
11105inversion_rule(Parser *p)
11106{
11107 D(p->level++);
11108 if (p->error_indicator) {
11109 D(p->level--);
11110 return NULL;
11111 }
11112 expr_ty _res = NULL;
11113 if (_PyPegen_is_memoized(p, inversion_type, &_res)) {
11114 D(p->level--);
11115 return _res;
11116 }
11117 int _mark = p->mark;
11118 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11119 p->error_indicator = 1;
11120 D(p->level--);
11121 return NULL;
11122 }
11123 int _start_lineno = p->tokens[_mark]->lineno;
11124 UNUSED(_start_lineno); // Only used by EXTRA macro
11125 int _start_col_offset = p->tokens[_mark]->col_offset;
11126 UNUSED(_start_col_offset); // Only used by EXTRA macro
11127 { // 'not' inversion
11128 if (p->error_indicator) {
11129 D(p->level--);
11130 return NULL;
11131 }
11132 D(fprintf(stderr, "%*c> inversion[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'not' inversion"));
11133 Token * _keyword;
11134 expr_ty a;
11135 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080011136 (_keyword = _PyPegen_expect_token(p, 529)) // token='not'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011137 &&
11138 (a = inversion_rule(p)) // inversion
11139 )
11140 {
11141 D(fprintf(stderr, "%*c+ inversion[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'not' inversion"));
11142 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11143 if (_token == NULL) {
11144 D(p->level--);
11145 return NULL;
11146 }
11147 int _end_lineno = _token->end_lineno;
11148 UNUSED(_end_lineno); // Only used by EXTRA macro
11149 int _end_col_offset = _token->end_col_offset;
11150 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020011151 _res = _PyAST_UnaryOp ( Not , a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011152 if (_res == NULL && PyErr_Occurred()) {
11153 p->error_indicator = 1;
11154 D(p->level--);
11155 return NULL;
11156 }
11157 goto done;
11158 }
11159 p->mark = _mark;
11160 D(fprintf(stderr, "%*c%s inversion[%d-%d]: %s failed!\n", p->level, ' ',
11161 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'not' inversion"));
11162 }
11163 { // comparison
11164 if (p->error_indicator) {
11165 D(p->level--);
11166 return NULL;
11167 }
11168 D(fprintf(stderr, "%*c> inversion[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "comparison"));
11169 expr_ty comparison_var;
11170 if (
11171 (comparison_var = comparison_rule(p)) // comparison
11172 )
11173 {
11174 D(fprintf(stderr, "%*c+ inversion[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "comparison"));
11175 _res = comparison_var;
11176 goto done;
11177 }
11178 p->mark = _mark;
11179 D(fprintf(stderr, "%*c%s inversion[%d-%d]: %s failed!\n", p->level, ' ',
11180 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "comparison"));
11181 }
11182 _res = NULL;
11183 done:
11184 _PyPegen_insert_memo(p, _mark, inversion_type, _res);
11185 D(p->level--);
11186 return _res;
11187}
11188
11189// comparison: bitwise_or compare_op_bitwise_or_pair+ | bitwise_or
11190static expr_ty
11191comparison_rule(Parser *p)
11192{
11193 D(p->level++);
11194 if (p->error_indicator) {
11195 D(p->level--);
11196 return NULL;
11197 }
11198 expr_ty _res = NULL;
11199 int _mark = p->mark;
11200 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11201 p->error_indicator = 1;
11202 D(p->level--);
11203 return NULL;
11204 }
11205 int _start_lineno = p->tokens[_mark]->lineno;
11206 UNUSED(_start_lineno); // Only used by EXTRA macro
11207 int _start_col_offset = p->tokens[_mark]->col_offset;
11208 UNUSED(_start_col_offset); // Only used by EXTRA macro
11209 { // bitwise_or compare_op_bitwise_or_pair+
11210 if (p->error_indicator) {
11211 D(p->level--);
11212 return NULL;
11213 }
11214 D(fprintf(stderr, "%*c> comparison[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_or compare_op_bitwise_or_pair+"));
11215 expr_ty a;
11216 asdl_seq * b;
11217 if (
11218 (a = bitwise_or_rule(p)) // bitwise_or
11219 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080011220 (b = _loop1_106_rule(p)) // compare_op_bitwise_or_pair+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011221 )
11222 {
11223 D(fprintf(stderr, "%*c+ comparison[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_or compare_op_bitwise_or_pair+"));
11224 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11225 if (_token == NULL) {
11226 D(p->level--);
11227 return NULL;
11228 }
11229 int _end_lineno = _token->end_lineno;
11230 UNUSED(_end_lineno); // Only used by EXTRA macro
11231 int _end_col_offset = _token->end_col_offset;
11232 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020011233 _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 +010011234 if (_res == NULL && PyErr_Occurred()) {
11235 p->error_indicator = 1;
11236 D(p->level--);
11237 return NULL;
11238 }
11239 goto done;
11240 }
11241 p->mark = _mark;
11242 D(fprintf(stderr, "%*c%s comparison[%d-%d]: %s failed!\n", p->level, ' ',
11243 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_or compare_op_bitwise_or_pair+"));
11244 }
11245 { // bitwise_or
11246 if (p->error_indicator) {
11247 D(p->level--);
11248 return NULL;
11249 }
11250 D(fprintf(stderr, "%*c> comparison[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_or"));
11251 expr_ty bitwise_or_var;
11252 if (
11253 (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or
11254 )
11255 {
11256 D(fprintf(stderr, "%*c+ comparison[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_or"));
11257 _res = bitwise_or_var;
11258 goto done;
11259 }
11260 p->mark = _mark;
11261 D(fprintf(stderr, "%*c%s comparison[%d-%d]: %s failed!\n", p->level, ' ',
11262 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_or"));
11263 }
11264 _res = NULL;
11265 done:
11266 D(p->level--);
11267 return _res;
11268}
11269
11270// compare_op_bitwise_or_pair:
11271// | eq_bitwise_or
11272// | noteq_bitwise_or
11273// | lte_bitwise_or
11274// | lt_bitwise_or
11275// | gte_bitwise_or
11276// | gt_bitwise_or
11277// | notin_bitwise_or
11278// | in_bitwise_or
11279// | isnot_bitwise_or
11280// | is_bitwise_or
11281static CmpopExprPair*
11282compare_op_bitwise_or_pair_rule(Parser *p)
11283{
11284 D(p->level++);
11285 if (p->error_indicator) {
11286 D(p->level--);
11287 return NULL;
11288 }
11289 CmpopExprPair* _res = NULL;
11290 int _mark = p->mark;
11291 { // eq_bitwise_or
11292 if (p->error_indicator) {
11293 D(p->level--);
11294 return NULL;
11295 }
11296 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "eq_bitwise_or"));
11297 CmpopExprPair* eq_bitwise_or_var;
11298 if (
11299 (eq_bitwise_or_var = eq_bitwise_or_rule(p)) // eq_bitwise_or
11300 )
11301 {
11302 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "eq_bitwise_or"));
11303 _res = eq_bitwise_or_var;
11304 goto done;
11305 }
11306 p->mark = _mark;
11307 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
11308 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "eq_bitwise_or"));
11309 }
11310 { // noteq_bitwise_or
11311 if (p->error_indicator) {
11312 D(p->level--);
11313 return NULL;
11314 }
11315 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "noteq_bitwise_or"));
11316 CmpopExprPair* noteq_bitwise_or_var;
11317 if (
11318 (noteq_bitwise_or_var = noteq_bitwise_or_rule(p)) // noteq_bitwise_or
11319 )
11320 {
11321 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "noteq_bitwise_or"));
11322 _res = noteq_bitwise_or_var;
11323 goto done;
11324 }
11325 p->mark = _mark;
11326 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
11327 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "noteq_bitwise_or"));
11328 }
11329 { // lte_bitwise_or
11330 if (p->error_indicator) {
11331 D(p->level--);
11332 return NULL;
11333 }
11334 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lte_bitwise_or"));
11335 CmpopExprPair* lte_bitwise_or_var;
11336 if (
11337 (lte_bitwise_or_var = lte_bitwise_or_rule(p)) // lte_bitwise_or
11338 )
11339 {
11340 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lte_bitwise_or"));
11341 _res = lte_bitwise_or_var;
11342 goto done;
11343 }
11344 p->mark = _mark;
11345 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
11346 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lte_bitwise_or"));
11347 }
11348 { // lt_bitwise_or
11349 if (p->error_indicator) {
11350 D(p->level--);
11351 return NULL;
11352 }
11353 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lt_bitwise_or"));
11354 CmpopExprPair* lt_bitwise_or_var;
11355 if (
11356 (lt_bitwise_or_var = lt_bitwise_or_rule(p)) // lt_bitwise_or
11357 )
11358 {
11359 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lt_bitwise_or"));
11360 _res = lt_bitwise_or_var;
11361 goto done;
11362 }
11363 p->mark = _mark;
11364 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
11365 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lt_bitwise_or"));
11366 }
11367 { // gte_bitwise_or
11368 if (p->error_indicator) {
11369 D(p->level--);
11370 return NULL;
11371 }
11372 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "gte_bitwise_or"));
11373 CmpopExprPair* gte_bitwise_or_var;
11374 if (
11375 (gte_bitwise_or_var = gte_bitwise_or_rule(p)) // gte_bitwise_or
11376 )
11377 {
11378 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "gte_bitwise_or"));
11379 _res = gte_bitwise_or_var;
11380 goto done;
11381 }
11382 p->mark = _mark;
11383 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
11384 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "gte_bitwise_or"));
11385 }
11386 { // gt_bitwise_or
11387 if (p->error_indicator) {
11388 D(p->level--);
11389 return NULL;
11390 }
11391 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "gt_bitwise_or"));
11392 CmpopExprPair* gt_bitwise_or_var;
11393 if (
11394 (gt_bitwise_or_var = gt_bitwise_or_rule(p)) // gt_bitwise_or
11395 )
11396 {
11397 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "gt_bitwise_or"));
11398 _res = gt_bitwise_or_var;
11399 goto done;
11400 }
11401 p->mark = _mark;
11402 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
11403 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "gt_bitwise_or"));
11404 }
11405 { // notin_bitwise_or
11406 if (p->error_indicator) {
11407 D(p->level--);
11408 return NULL;
11409 }
11410 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "notin_bitwise_or"));
11411 CmpopExprPair* notin_bitwise_or_var;
11412 if (
11413 (notin_bitwise_or_var = notin_bitwise_or_rule(p)) // notin_bitwise_or
11414 )
11415 {
11416 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "notin_bitwise_or"));
11417 _res = notin_bitwise_or_var;
11418 goto done;
11419 }
11420 p->mark = _mark;
11421 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
11422 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "notin_bitwise_or"));
11423 }
11424 { // in_bitwise_or
11425 if (p->error_indicator) {
11426 D(p->level--);
11427 return NULL;
11428 }
11429 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "in_bitwise_or"));
11430 CmpopExprPair* in_bitwise_or_var;
11431 if (
11432 (in_bitwise_or_var = in_bitwise_or_rule(p)) // in_bitwise_or
11433 )
11434 {
11435 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "in_bitwise_or"));
11436 _res = in_bitwise_or_var;
11437 goto done;
11438 }
11439 p->mark = _mark;
11440 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
11441 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "in_bitwise_or"));
11442 }
11443 { // isnot_bitwise_or
11444 if (p->error_indicator) {
11445 D(p->level--);
11446 return NULL;
11447 }
11448 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "isnot_bitwise_or"));
11449 CmpopExprPair* isnot_bitwise_or_var;
11450 if (
11451 (isnot_bitwise_or_var = isnot_bitwise_or_rule(p)) // isnot_bitwise_or
11452 )
11453 {
11454 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "isnot_bitwise_or"));
11455 _res = isnot_bitwise_or_var;
11456 goto done;
11457 }
11458 p->mark = _mark;
11459 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
11460 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "isnot_bitwise_or"));
11461 }
11462 { // is_bitwise_or
11463 if (p->error_indicator) {
11464 D(p->level--);
11465 return NULL;
11466 }
11467 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "is_bitwise_or"));
11468 CmpopExprPair* is_bitwise_or_var;
11469 if (
11470 (is_bitwise_or_var = is_bitwise_or_rule(p)) // is_bitwise_or
11471 )
11472 {
11473 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "is_bitwise_or"));
11474 _res = is_bitwise_or_var;
11475 goto done;
11476 }
11477 p->mark = _mark;
11478 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
11479 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "is_bitwise_or"));
11480 }
11481 _res = NULL;
11482 done:
11483 D(p->level--);
11484 return _res;
11485}
11486
11487// eq_bitwise_or: '==' bitwise_or
11488static CmpopExprPair*
11489eq_bitwise_or_rule(Parser *p)
11490{
11491 D(p->level++);
11492 if (p->error_indicator) {
11493 D(p->level--);
11494 return NULL;
11495 }
11496 CmpopExprPair* _res = NULL;
11497 int _mark = p->mark;
11498 { // '==' bitwise_or
11499 if (p->error_indicator) {
11500 D(p->level--);
11501 return NULL;
11502 }
11503 D(fprintf(stderr, "%*c> eq_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'==' bitwise_or"));
11504 Token * _literal;
11505 expr_ty a;
11506 if (
11507 (_literal = _PyPegen_expect_token(p, 27)) // token='=='
11508 &&
11509 (a = bitwise_or_rule(p)) // bitwise_or
11510 )
11511 {
11512 D(fprintf(stderr, "%*c+ eq_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'==' bitwise_or"));
11513 _res = _PyPegen_cmpop_expr_pair ( p , Eq , a );
11514 if (_res == NULL && PyErr_Occurred()) {
11515 p->error_indicator = 1;
11516 D(p->level--);
11517 return NULL;
11518 }
11519 goto done;
11520 }
11521 p->mark = _mark;
11522 D(fprintf(stderr, "%*c%s eq_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
11523 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'==' bitwise_or"));
11524 }
11525 _res = NULL;
11526 done:
11527 D(p->level--);
11528 return _res;
11529}
11530
11531// noteq_bitwise_or: ('!=') bitwise_or
11532static CmpopExprPair*
11533noteq_bitwise_or_rule(Parser *p)
11534{
11535 D(p->level++);
11536 if (p->error_indicator) {
11537 D(p->level--);
11538 return NULL;
11539 }
11540 CmpopExprPair* _res = NULL;
11541 int _mark = p->mark;
11542 { // ('!=') bitwise_or
11543 if (p->error_indicator) {
11544 D(p->level--);
11545 return NULL;
11546 }
11547 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 -080011548 void *_tmp_107_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011549 expr_ty a;
11550 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080011551 (_tmp_107_var = _tmp_107_rule(p)) // '!='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011552 &&
11553 (a = bitwise_or_rule(p)) // bitwise_or
11554 )
11555 {
11556 D(fprintf(stderr, "%*c+ noteq_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "('!=') bitwise_or"));
11557 _res = _PyPegen_cmpop_expr_pair ( p , NotEq , a );
11558 if (_res == NULL && PyErr_Occurred()) {
11559 p->error_indicator = 1;
11560 D(p->level--);
11561 return NULL;
11562 }
11563 goto done;
11564 }
11565 p->mark = _mark;
11566 D(fprintf(stderr, "%*c%s noteq_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
11567 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('!=') bitwise_or"));
11568 }
11569 _res = NULL;
11570 done:
11571 D(p->level--);
11572 return _res;
11573}
11574
11575// lte_bitwise_or: '<=' bitwise_or
11576static CmpopExprPair*
11577lte_bitwise_or_rule(Parser *p)
11578{
11579 D(p->level++);
11580 if (p->error_indicator) {
11581 D(p->level--);
11582 return NULL;
11583 }
11584 CmpopExprPair* _res = NULL;
11585 int _mark = p->mark;
11586 { // '<=' bitwise_or
11587 if (p->error_indicator) {
11588 D(p->level--);
11589 return NULL;
11590 }
11591 D(fprintf(stderr, "%*c> lte_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'<=' bitwise_or"));
11592 Token * _literal;
11593 expr_ty a;
11594 if (
11595 (_literal = _PyPegen_expect_token(p, 29)) // token='<='
11596 &&
11597 (a = bitwise_or_rule(p)) // bitwise_or
11598 )
11599 {
11600 D(fprintf(stderr, "%*c+ lte_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'<=' bitwise_or"));
11601 _res = _PyPegen_cmpop_expr_pair ( p , LtE , a );
11602 if (_res == NULL && PyErr_Occurred()) {
11603 p->error_indicator = 1;
11604 D(p->level--);
11605 return NULL;
11606 }
11607 goto done;
11608 }
11609 p->mark = _mark;
11610 D(fprintf(stderr, "%*c%s lte_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
11611 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'<=' bitwise_or"));
11612 }
11613 _res = NULL;
11614 done:
11615 D(p->level--);
11616 return _res;
11617}
11618
11619// lt_bitwise_or: '<' bitwise_or
11620static CmpopExprPair*
11621lt_bitwise_or_rule(Parser *p)
11622{
11623 D(p->level++);
11624 if (p->error_indicator) {
11625 D(p->level--);
11626 return NULL;
11627 }
11628 CmpopExprPair* _res = NULL;
11629 int _mark = p->mark;
11630 { // '<' bitwise_or
11631 if (p->error_indicator) {
11632 D(p->level--);
11633 return NULL;
11634 }
11635 D(fprintf(stderr, "%*c> lt_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'<' bitwise_or"));
11636 Token * _literal;
11637 expr_ty a;
11638 if (
11639 (_literal = _PyPegen_expect_token(p, 20)) // token='<'
11640 &&
11641 (a = bitwise_or_rule(p)) // bitwise_or
11642 )
11643 {
11644 D(fprintf(stderr, "%*c+ lt_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'<' bitwise_or"));
11645 _res = _PyPegen_cmpop_expr_pair ( p , Lt , a );
11646 if (_res == NULL && PyErr_Occurred()) {
11647 p->error_indicator = 1;
11648 D(p->level--);
11649 return NULL;
11650 }
11651 goto done;
11652 }
11653 p->mark = _mark;
11654 D(fprintf(stderr, "%*c%s lt_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
11655 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'<' bitwise_or"));
11656 }
11657 _res = NULL;
11658 done:
11659 D(p->level--);
11660 return _res;
11661}
11662
11663// gte_bitwise_or: '>=' bitwise_or
11664static CmpopExprPair*
11665gte_bitwise_or_rule(Parser *p)
11666{
11667 D(p->level++);
11668 if (p->error_indicator) {
11669 D(p->level--);
11670 return NULL;
11671 }
11672 CmpopExprPair* _res = NULL;
11673 int _mark = p->mark;
11674 { // '>=' bitwise_or
11675 if (p->error_indicator) {
11676 D(p->level--);
11677 return NULL;
11678 }
11679 D(fprintf(stderr, "%*c> gte_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'>=' bitwise_or"));
11680 Token * _literal;
11681 expr_ty a;
11682 if (
11683 (_literal = _PyPegen_expect_token(p, 30)) // token='>='
11684 &&
11685 (a = bitwise_or_rule(p)) // bitwise_or
11686 )
11687 {
11688 D(fprintf(stderr, "%*c+ gte_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'>=' bitwise_or"));
11689 _res = _PyPegen_cmpop_expr_pair ( p , GtE , a );
11690 if (_res == NULL && PyErr_Occurred()) {
11691 p->error_indicator = 1;
11692 D(p->level--);
11693 return NULL;
11694 }
11695 goto done;
11696 }
11697 p->mark = _mark;
11698 D(fprintf(stderr, "%*c%s gte_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
11699 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'>=' bitwise_or"));
11700 }
11701 _res = NULL;
11702 done:
11703 D(p->level--);
11704 return _res;
11705}
11706
11707// gt_bitwise_or: '>' bitwise_or
11708static CmpopExprPair*
11709gt_bitwise_or_rule(Parser *p)
11710{
11711 D(p->level++);
11712 if (p->error_indicator) {
11713 D(p->level--);
11714 return NULL;
11715 }
11716 CmpopExprPair* _res = NULL;
11717 int _mark = p->mark;
11718 { // '>' bitwise_or
11719 if (p->error_indicator) {
11720 D(p->level--);
11721 return NULL;
11722 }
11723 D(fprintf(stderr, "%*c> gt_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'>' bitwise_or"));
11724 Token * _literal;
11725 expr_ty a;
11726 if (
11727 (_literal = _PyPegen_expect_token(p, 21)) // token='>'
11728 &&
11729 (a = bitwise_or_rule(p)) // bitwise_or
11730 )
11731 {
11732 D(fprintf(stderr, "%*c+ gt_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'>' bitwise_or"));
11733 _res = _PyPegen_cmpop_expr_pair ( p , Gt , a );
11734 if (_res == NULL && PyErr_Occurred()) {
11735 p->error_indicator = 1;
11736 D(p->level--);
11737 return NULL;
11738 }
11739 goto done;
11740 }
11741 p->mark = _mark;
11742 D(fprintf(stderr, "%*c%s gt_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
11743 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'>' bitwise_or"));
11744 }
11745 _res = NULL;
11746 done:
11747 D(p->level--);
11748 return _res;
11749}
11750
11751// notin_bitwise_or: 'not' 'in' bitwise_or
11752static CmpopExprPair*
11753notin_bitwise_or_rule(Parser *p)
11754{
11755 D(p->level++);
11756 if (p->error_indicator) {
11757 D(p->level--);
11758 return NULL;
11759 }
11760 CmpopExprPair* _res = NULL;
11761 int _mark = p->mark;
11762 { // 'not' 'in' bitwise_or
11763 if (p->error_indicator) {
11764 D(p->level--);
11765 return NULL;
11766 }
11767 D(fprintf(stderr, "%*c> notin_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'not' 'in' bitwise_or"));
11768 Token * _keyword;
11769 Token * _keyword_1;
11770 expr_ty a;
11771 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080011772 (_keyword = _PyPegen_expect_token(p, 529)) // token='not'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011773 &&
11774 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
11775 &&
11776 (a = bitwise_or_rule(p)) // bitwise_or
11777 )
11778 {
11779 D(fprintf(stderr, "%*c+ notin_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'not' 'in' bitwise_or"));
11780 _res = _PyPegen_cmpop_expr_pair ( p , NotIn , a );
11781 if (_res == NULL && PyErr_Occurred()) {
11782 p->error_indicator = 1;
11783 D(p->level--);
11784 return NULL;
11785 }
11786 goto done;
11787 }
11788 p->mark = _mark;
11789 D(fprintf(stderr, "%*c%s notin_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
11790 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'not' 'in' bitwise_or"));
11791 }
11792 _res = NULL;
11793 done:
11794 D(p->level--);
11795 return _res;
11796}
11797
11798// in_bitwise_or: 'in' bitwise_or
11799static CmpopExprPair*
11800in_bitwise_or_rule(Parser *p)
11801{
11802 D(p->level++);
11803 if (p->error_indicator) {
11804 D(p->level--);
11805 return NULL;
11806 }
11807 CmpopExprPair* _res = NULL;
11808 int _mark = p->mark;
11809 { // 'in' bitwise_or
11810 if (p->error_indicator) {
11811 D(p->level--);
11812 return NULL;
11813 }
11814 D(fprintf(stderr, "%*c> in_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'in' bitwise_or"));
11815 Token * _keyword;
11816 expr_ty a;
11817 if (
11818 (_keyword = _PyPegen_expect_token(p, 518)) // token='in'
11819 &&
11820 (a = bitwise_or_rule(p)) // bitwise_or
11821 )
11822 {
11823 D(fprintf(stderr, "%*c+ in_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'in' bitwise_or"));
11824 _res = _PyPegen_cmpop_expr_pair ( p , In , a );
11825 if (_res == NULL && PyErr_Occurred()) {
11826 p->error_indicator = 1;
11827 D(p->level--);
11828 return NULL;
11829 }
11830 goto done;
11831 }
11832 p->mark = _mark;
11833 D(fprintf(stderr, "%*c%s in_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
11834 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'in' bitwise_or"));
11835 }
11836 _res = NULL;
11837 done:
11838 D(p->level--);
11839 return _res;
11840}
11841
11842// isnot_bitwise_or: 'is' 'not' bitwise_or
11843static CmpopExprPair*
11844isnot_bitwise_or_rule(Parser *p)
11845{
11846 D(p->level++);
11847 if (p->error_indicator) {
11848 D(p->level--);
11849 return NULL;
11850 }
11851 CmpopExprPair* _res = NULL;
11852 int _mark = p->mark;
11853 { // 'is' 'not' bitwise_or
11854 if (p->error_indicator) {
11855 D(p->level--);
11856 return NULL;
11857 }
11858 D(fprintf(stderr, "%*c> isnot_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'is' 'not' bitwise_or"));
11859 Token * _keyword;
11860 Token * _keyword_1;
11861 expr_ty a;
11862 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080011863 (_keyword = _PyPegen_expect_token(p, 530)) // token='is'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011864 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080011865 (_keyword_1 = _PyPegen_expect_token(p, 529)) // token='not'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011866 &&
11867 (a = bitwise_or_rule(p)) // bitwise_or
11868 )
11869 {
11870 D(fprintf(stderr, "%*c+ isnot_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'is' 'not' bitwise_or"));
11871 _res = _PyPegen_cmpop_expr_pair ( p , IsNot , a );
11872 if (_res == NULL && PyErr_Occurred()) {
11873 p->error_indicator = 1;
11874 D(p->level--);
11875 return NULL;
11876 }
11877 goto done;
11878 }
11879 p->mark = _mark;
11880 D(fprintf(stderr, "%*c%s isnot_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
11881 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'is' 'not' bitwise_or"));
11882 }
11883 _res = NULL;
11884 done:
11885 D(p->level--);
11886 return _res;
11887}
11888
11889// is_bitwise_or: 'is' bitwise_or
11890static CmpopExprPair*
11891is_bitwise_or_rule(Parser *p)
11892{
11893 D(p->level++);
11894 if (p->error_indicator) {
11895 D(p->level--);
11896 return NULL;
11897 }
11898 CmpopExprPair* _res = NULL;
11899 int _mark = p->mark;
11900 { // 'is' bitwise_or
11901 if (p->error_indicator) {
11902 D(p->level--);
11903 return NULL;
11904 }
11905 D(fprintf(stderr, "%*c> is_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'is' bitwise_or"));
11906 Token * _keyword;
11907 expr_ty a;
11908 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080011909 (_keyword = _PyPegen_expect_token(p, 530)) // token='is'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011910 &&
11911 (a = bitwise_or_rule(p)) // bitwise_or
11912 )
11913 {
11914 D(fprintf(stderr, "%*c+ is_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'is' bitwise_or"));
11915 _res = _PyPegen_cmpop_expr_pair ( p , Is , a );
11916 if (_res == NULL && PyErr_Occurred()) {
11917 p->error_indicator = 1;
11918 D(p->level--);
11919 return NULL;
11920 }
11921 goto done;
11922 }
11923 p->mark = _mark;
11924 D(fprintf(stderr, "%*c%s is_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
11925 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'is' bitwise_or"));
11926 }
11927 _res = NULL;
11928 done:
11929 D(p->level--);
11930 return _res;
11931}
11932
11933// Left-recursive
11934// bitwise_or: bitwise_or '|' bitwise_xor | bitwise_xor
11935static expr_ty bitwise_or_raw(Parser *);
11936static expr_ty
11937bitwise_or_rule(Parser *p)
11938{
11939 D(p->level++);
11940 expr_ty _res = NULL;
11941 if (_PyPegen_is_memoized(p, bitwise_or_type, &_res)) {
11942 D(p->level--);
11943 return _res;
11944 }
11945 int _mark = p->mark;
11946 int _resmark = p->mark;
11947 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080011948 int tmpvar_2 = _PyPegen_update_memo(p, _mark, bitwise_or_type, _res);
11949 if (tmpvar_2) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011950 D(p->level--);
11951 return _res;
11952 }
11953 p->mark = _mark;
11954 void *_raw = bitwise_or_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020011955 if (p->error_indicator)
11956 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011957 if (_raw == NULL || p->mark <= _resmark)
11958 break;
11959 _resmark = p->mark;
11960 _res = _raw;
11961 }
11962 p->mark = _resmark;
11963 D(p->level--);
11964 return _res;
11965}
11966static expr_ty
11967bitwise_or_raw(Parser *p)
11968{
11969 D(p->level++);
11970 if (p->error_indicator) {
11971 D(p->level--);
11972 return NULL;
11973 }
11974 expr_ty _res = NULL;
11975 int _mark = p->mark;
11976 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11977 p->error_indicator = 1;
11978 D(p->level--);
11979 return NULL;
11980 }
11981 int _start_lineno = p->tokens[_mark]->lineno;
11982 UNUSED(_start_lineno); // Only used by EXTRA macro
11983 int _start_col_offset = p->tokens[_mark]->col_offset;
11984 UNUSED(_start_col_offset); // Only used by EXTRA macro
11985 { // bitwise_or '|' bitwise_xor
11986 if (p->error_indicator) {
11987 D(p->level--);
11988 return NULL;
11989 }
11990 D(fprintf(stderr, "%*c> bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_or '|' bitwise_xor"));
11991 Token * _literal;
11992 expr_ty a;
11993 expr_ty b;
11994 if (
11995 (a = bitwise_or_rule(p)) // bitwise_or
11996 &&
11997 (_literal = _PyPegen_expect_token(p, 18)) // token='|'
11998 &&
11999 (b = bitwise_xor_rule(p)) // bitwise_xor
12000 )
12001 {
12002 D(fprintf(stderr, "%*c+ bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_or '|' bitwise_xor"));
12003 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12004 if (_token == NULL) {
12005 D(p->level--);
12006 return NULL;
12007 }
12008 int _end_lineno = _token->end_lineno;
12009 UNUSED(_end_lineno); // Only used by EXTRA macro
12010 int _end_col_offset = _token->end_col_offset;
12011 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020012012 _res = _PyAST_BinOp ( a , BitOr , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012013 if (_res == NULL && PyErr_Occurred()) {
12014 p->error_indicator = 1;
12015 D(p->level--);
12016 return NULL;
12017 }
12018 goto done;
12019 }
12020 p->mark = _mark;
12021 D(fprintf(stderr, "%*c%s bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12022 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_or '|' bitwise_xor"));
12023 }
12024 { // bitwise_xor
12025 if (p->error_indicator) {
12026 D(p->level--);
12027 return NULL;
12028 }
12029 D(fprintf(stderr, "%*c> bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_xor"));
12030 expr_ty bitwise_xor_var;
12031 if (
12032 (bitwise_xor_var = bitwise_xor_rule(p)) // bitwise_xor
12033 )
12034 {
12035 D(fprintf(stderr, "%*c+ bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_xor"));
12036 _res = bitwise_xor_var;
12037 goto done;
12038 }
12039 p->mark = _mark;
12040 D(fprintf(stderr, "%*c%s bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12041 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_xor"));
12042 }
12043 _res = NULL;
12044 done:
12045 D(p->level--);
12046 return _res;
12047}
12048
12049// Left-recursive
12050// bitwise_xor: bitwise_xor '^' bitwise_and | bitwise_and
12051static expr_ty bitwise_xor_raw(Parser *);
12052static expr_ty
12053bitwise_xor_rule(Parser *p)
12054{
12055 D(p->level++);
12056 expr_ty _res = NULL;
12057 if (_PyPegen_is_memoized(p, bitwise_xor_type, &_res)) {
12058 D(p->level--);
12059 return _res;
12060 }
12061 int _mark = p->mark;
12062 int _resmark = p->mark;
12063 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080012064 int tmpvar_3 = _PyPegen_update_memo(p, _mark, bitwise_xor_type, _res);
12065 if (tmpvar_3) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012066 D(p->level--);
12067 return _res;
12068 }
12069 p->mark = _mark;
12070 void *_raw = bitwise_xor_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020012071 if (p->error_indicator)
12072 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012073 if (_raw == NULL || p->mark <= _resmark)
12074 break;
12075 _resmark = p->mark;
12076 _res = _raw;
12077 }
12078 p->mark = _resmark;
12079 D(p->level--);
12080 return _res;
12081}
12082static expr_ty
12083bitwise_xor_raw(Parser *p)
12084{
12085 D(p->level++);
12086 if (p->error_indicator) {
12087 D(p->level--);
12088 return NULL;
12089 }
12090 expr_ty _res = NULL;
12091 int _mark = p->mark;
12092 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12093 p->error_indicator = 1;
12094 D(p->level--);
12095 return NULL;
12096 }
12097 int _start_lineno = p->tokens[_mark]->lineno;
12098 UNUSED(_start_lineno); // Only used by EXTRA macro
12099 int _start_col_offset = p->tokens[_mark]->col_offset;
12100 UNUSED(_start_col_offset); // Only used by EXTRA macro
12101 { // bitwise_xor '^' bitwise_and
12102 if (p->error_indicator) {
12103 D(p->level--);
12104 return NULL;
12105 }
12106 D(fprintf(stderr, "%*c> bitwise_xor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_xor '^' bitwise_and"));
12107 Token * _literal;
12108 expr_ty a;
12109 expr_ty b;
12110 if (
12111 (a = bitwise_xor_rule(p)) // bitwise_xor
12112 &&
12113 (_literal = _PyPegen_expect_token(p, 32)) // token='^'
12114 &&
12115 (b = bitwise_and_rule(p)) // bitwise_and
12116 )
12117 {
12118 D(fprintf(stderr, "%*c+ bitwise_xor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_xor '^' bitwise_and"));
12119 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12120 if (_token == NULL) {
12121 D(p->level--);
12122 return NULL;
12123 }
12124 int _end_lineno = _token->end_lineno;
12125 UNUSED(_end_lineno); // Only used by EXTRA macro
12126 int _end_col_offset = _token->end_col_offset;
12127 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020012128 _res = _PyAST_BinOp ( a , BitXor , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012129 if (_res == NULL && PyErr_Occurred()) {
12130 p->error_indicator = 1;
12131 D(p->level--);
12132 return NULL;
12133 }
12134 goto done;
12135 }
12136 p->mark = _mark;
12137 D(fprintf(stderr, "%*c%s bitwise_xor[%d-%d]: %s failed!\n", p->level, ' ',
12138 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_xor '^' bitwise_and"));
12139 }
12140 { // bitwise_and
12141 if (p->error_indicator) {
12142 D(p->level--);
12143 return NULL;
12144 }
12145 D(fprintf(stderr, "%*c> bitwise_xor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_and"));
12146 expr_ty bitwise_and_var;
12147 if (
12148 (bitwise_and_var = bitwise_and_rule(p)) // bitwise_and
12149 )
12150 {
12151 D(fprintf(stderr, "%*c+ bitwise_xor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_and"));
12152 _res = bitwise_and_var;
12153 goto done;
12154 }
12155 p->mark = _mark;
12156 D(fprintf(stderr, "%*c%s bitwise_xor[%d-%d]: %s failed!\n", p->level, ' ',
12157 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_and"));
12158 }
12159 _res = NULL;
12160 done:
12161 D(p->level--);
12162 return _res;
12163}
12164
12165// Left-recursive
12166// bitwise_and: bitwise_and '&' shift_expr | shift_expr
12167static expr_ty bitwise_and_raw(Parser *);
12168static expr_ty
12169bitwise_and_rule(Parser *p)
12170{
12171 D(p->level++);
12172 expr_ty _res = NULL;
12173 if (_PyPegen_is_memoized(p, bitwise_and_type, &_res)) {
12174 D(p->level--);
12175 return _res;
12176 }
12177 int _mark = p->mark;
12178 int _resmark = p->mark;
12179 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080012180 int tmpvar_4 = _PyPegen_update_memo(p, _mark, bitwise_and_type, _res);
12181 if (tmpvar_4) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012182 D(p->level--);
12183 return _res;
12184 }
12185 p->mark = _mark;
12186 void *_raw = bitwise_and_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020012187 if (p->error_indicator)
12188 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012189 if (_raw == NULL || p->mark <= _resmark)
12190 break;
12191 _resmark = p->mark;
12192 _res = _raw;
12193 }
12194 p->mark = _resmark;
12195 D(p->level--);
12196 return _res;
12197}
12198static expr_ty
12199bitwise_and_raw(Parser *p)
12200{
12201 D(p->level++);
12202 if (p->error_indicator) {
12203 D(p->level--);
12204 return NULL;
12205 }
12206 expr_ty _res = NULL;
12207 int _mark = p->mark;
12208 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12209 p->error_indicator = 1;
12210 D(p->level--);
12211 return NULL;
12212 }
12213 int _start_lineno = p->tokens[_mark]->lineno;
12214 UNUSED(_start_lineno); // Only used by EXTRA macro
12215 int _start_col_offset = p->tokens[_mark]->col_offset;
12216 UNUSED(_start_col_offset); // Only used by EXTRA macro
12217 { // bitwise_and '&' shift_expr
12218 if (p->error_indicator) {
12219 D(p->level--);
12220 return NULL;
12221 }
12222 D(fprintf(stderr, "%*c> bitwise_and[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_and '&' shift_expr"));
12223 Token * _literal;
12224 expr_ty a;
12225 expr_ty b;
12226 if (
12227 (a = bitwise_and_rule(p)) // bitwise_and
12228 &&
12229 (_literal = _PyPegen_expect_token(p, 19)) // token='&'
12230 &&
12231 (b = shift_expr_rule(p)) // shift_expr
12232 )
12233 {
12234 D(fprintf(stderr, "%*c+ bitwise_and[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_and '&' shift_expr"));
12235 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12236 if (_token == NULL) {
12237 D(p->level--);
12238 return NULL;
12239 }
12240 int _end_lineno = _token->end_lineno;
12241 UNUSED(_end_lineno); // Only used by EXTRA macro
12242 int _end_col_offset = _token->end_col_offset;
12243 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020012244 _res = _PyAST_BinOp ( a , BitAnd , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012245 if (_res == NULL && PyErr_Occurred()) {
12246 p->error_indicator = 1;
12247 D(p->level--);
12248 return NULL;
12249 }
12250 goto done;
12251 }
12252 p->mark = _mark;
12253 D(fprintf(stderr, "%*c%s bitwise_and[%d-%d]: %s failed!\n", p->level, ' ',
12254 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_and '&' shift_expr"));
12255 }
12256 { // shift_expr
12257 if (p->error_indicator) {
12258 D(p->level--);
12259 return NULL;
12260 }
12261 D(fprintf(stderr, "%*c> bitwise_and[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "shift_expr"));
12262 expr_ty shift_expr_var;
12263 if (
12264 (shift_expr_var = shift_expr_rule(p)) // shift_expr
12265 )
12266 {
12267 D(fprintf(stderr, "%*c+ bitwise_and[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "shift_expr"));
12268 _res = shift_expr_var;
12269 goto done;
12270 }
12271 p->mark = _mark;
12272 D(fprintf(stderr, "%*c%s bitwise_and[%d-%d]: %s failed!\n", p->level, ' ',
12273 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "shift_expr"));
12274 }
12275 _res = NULL;
12276 done:
12277 D(p->level--);
12278 return _res;
12279}
12280
12281// Left-recursive
12282// shift_expr: shift_expr '<<' sum | shift_expr '>>' sum | sum
12283static expr_ty shift_expr_raw(Parser *);
12284static expr_ty
12285shift_expr_rule(Parser *p)
12286{
12287 D(p->level++);
12288 expr_ty _res = NULL;
12289 if (_PyPegen_is_memoized(p, shift_expr_type, &_res)) {
12290 D(p->level--);
12291 return _res;
12292 }
12293 int _mark = p->mark;
12294 int _resmark = p->mark;
12295 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080012296 int tmpvar_5 = _PyPegen_update_memo(p, _mark, shift_expr_type, _res);
12297 if (tmpvar_5) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012298 D(p->level--);
12299 return _res;
12300 }
12301 p->mark = _mark;
12302 void *_raw = shift_expr_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020012303 if (p->error_indicator)
12304 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012305 if (_raw == NULL || p->mark <= _resmark)
12306 break;
12307 _resmark = p->mark;
12308 _res = _raw;
12309 }
12310 p->mark = _resmark;
12311 D(p->level--);
12312 return _res;
12313}
12314static expr_ty
12315shift_expr_raw(Parser *p)
12316{
12317 D(p->level++);
12318 if (p->error_indicator) {
12319 D(p->level--);
12320 return NULL;
12321 }
12322 expr_ty _res = NULL;
12323 int _mark = p->mark;
12324 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12325 p->error_indicator = 1;
12326 D(p->level--);
12327 return NULL;
12328 }
12329 int _start_lineno = p->tokens[_mark]->lineno;
12330 UNUSED(_start_lineno); // Only used by EXTRA macro
12331 int _start_col_offset = p->tokens[_mark]->col_offset;
12332 UNUSED(_start_col_offset); // Only used by EXTRA macro
12333 { // shift_expr '<<' sum
12334 if (p->error_indicator) {
12335 D(p->level--);
12336 return NULL;
12337 }
12338 D(fprintf(stderr, "%*c> shift_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "shift_expr '<<' sum"));
12339 Token * _literal;
12340 expr_ty a;
12341 expr_ty b;
12342 if (
12343 (a = shift_expr_rule(p)) // shift_expr
12344 &&
12345 (_literal = _PyPegen_expect_token(p, 33)) // token='<<'
12346 &&
12347 (b = sum_rule(p)) // sum
12348 )
12349 {
12350 D(fprintf(stderr, "%*c+ shift_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "shift_expr '<<' sum"));
12351 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12352 if (_token == NULL) {
12353 D(p->level--);
12354 return NULL;
12355 }
12356 int _end_lineno = _token->end_lineno;
12357 UNUSED(_end_lineno); // Only used by EXTRA macro
12358 int _end_col_offset = _token->end_col_offset;
12359 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020012360 _res = _PyAST_BinOp ( a , LShift , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012361 if (_res == NULL && PyErr_Occurred()) {
12362 p->error_indicator = 1;
12363 D(p->level--);
12364 return NULL;
12365 }
12366 goto done;
12367 }
12368 p->mark = _mark;
12369 D(fprintf(stderr, "%*c%s shift_expr[%d-%d]: %s failed!\n", p->level, ' ',
12370 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "shift_expr '<<' sum"));
12371 }
12372 { // shift_expr '>>' sum
12373 if (p->error_indicator) {
12374 D(p->level--);
12375 return NULL;
12376 }
12377 D(fprintf(stderr, "%*c> shift_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "shift_expr '>>' sum"));
12378 Token * _literal;
12379 expr_ty a;
12380 expr_ty b;
12381 if (
12382 (a = shift_expr_rule(p)) // shift_expr
12383 &&
12384 (_literal = _PyPegen_expect_token(p, 34)) // token='>>'
12385 &&
12386 (b = sum_rule(p)) // sum
12387 )
12388 {
12389 D(fprintf(stderr, "%*c+ shift_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "shift_expr '>>' sum"));
12390 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12391 if (_token == NULL) {
12392 D(p->level--);
12393 return NULL;
12394 }
12395 int _end_lineno = _token->end_lineno;
12396 UNUSED(_end_lineno); // Only used by EXTRA macro
12397 int _end_col_offset = _token->end_col_offset;
12398 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020012399 _res = _PyAST_BinOp ( a , RShift , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012400 if (_res == NULL && PyErr_Occurred()) {
12401 p->error_indicator = 1;
12402 D(p->level--);
12403 return NULL;
12404 }
12405 goto done;
12406 }
12407 p->mark = _mark;
12408 D(fprintf(stderr, "%*c%s shift_expr[%d-%d]: %s failed!\n", p->level, ' ',
12409 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "shift_expr '>>' sum"));
12410 }
12411 { // sum
12412 if (p->error_indicator) {
12413 D(p->level--);
12414 return NULL;
12415 }
12416 D(fprintf(stderr, "%*c> shift_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sum"));
12417 expr_ty sum_var;
12418 if (
12419 (sum_var = sum_rule(p)) // sum
12420 )
12421 {
12422 D(fprintf(stderr, "%*c+ shift_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sum"));
12423 _res = sum_var;
12424 goto done;
12425 }
12426 p->mark = _mark;
12427 D(fprintf(stderr, "%*c%s shift_expr[%d-%d]: %s failed!\n", p->level, ' ',
12428 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sum"));
12429 }
12430 _res = NULL;
12431 done:
12432 D(p->level--);
12433 return _res;
12434}
12435
12436// Left-recursive
12437// sum: sum '+' term | sum '-' term | term
12438static expr_ty sum_raw(Parser *);
12439static expr_ty
12440sum_rule(Parser *p)
12441{
12442 D(p->level++);
12443 expr_ty _res = NULL;
12444 if (_PyPegen_is_memoized(p, sum_type, &_res)) {
12445 D(p->level--);
12446 return _res;
12447 }
12448 int _mark = p->mark;
12449 int _resmark = p->mark;
12450 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080012451 int tmpvar_6 = _PyPegen_update_memo(p, _mark, sum_type, _res);
12452 if (tmpvar_6) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012453 D(p->level--);
12454 return _res;
12455 }
12456 p->mark = _mark;
12457 void *_raw = sum_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020012458 if (p->error_indicator)
12459 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012460 if (_raw == NULL || p->mark <= _resmark)
12461 break;
12462 _resmark = p->mark;
12463 _res = _raw;
12464 }
12465 p->mark = _resmark;
12466 D(p->level--);
12467 return _res;
12468}
12469static expr_ty
12470sum_raw(Parser *p)
12471{
12472 D(p->level++);
12473 if (p->error_indicator) {
12474 D(p->level--);
12475 return NULL;
12476 }
12477 expr_ty _res = NULL;
12478 int _mark = p->mark;
12479 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12480 p->error_indicator = 1;
12481 D(p->level--);
12482 return NULL;
12483 }
12484 int _start_lineno = p->tokens[_mark]->lineno;
12485 UNUSED(_start_lineno); // Only used by EXTRA macro
12486 int _start_col_offset = p->tokens[_mark]->col_offset;
12487 UNUSED(_start_col_offset); // Only used by EXTRA macro
12488 { // sum '+' term
12489 if (p->error_indicator) {
12490 D(p->level--);
12491 return NULL;
12492 }
12493 D(fprintf(stderr, "%*c> sum[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sum '+' term"));
12494 Token * _literal;
12495 expr_ty a;
12496 expr_ty b;
12497 if (
12498 (a = sum_rule(p)) // sum
12499 &&
12500 (_literal = _PyPegen_expect_token(p, 14)) // token='+'
12501 &&
12502 (b = term_rule(p)) // term
12503 )
12504 {
12505 D(fprintf(stderr, "%*c+ sum[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sum '+' term"));
12506 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12507 if (_token == NULL) {
12508 D(p->level--);
12509 return NULL;
12510 }
12511 int _end_lineno = _token->end_lineno;
12512 UNUSED(_end_lineno); // Only used by EXTRA macro
12513 int _end_col_offset = _token->end_col_offset;
12514 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020012515 _res = _PyAST_BinOp ( a , Add , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012516 if (_res == NULL && PyErr_Occurred()) {
12517 p->error_indicator = 1;
12518 D(p->level--);
12519 return NULL;
12520 }
12521 goto done;
12522 }
12523 p->mark = _mark;
12524 D(fprintf(stderr, "%*c%s sum[%d-%d]: %s failed!\n", p->level, ' ',
12525 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sum '+' term"));
12526 }
12527 { // sum '-' term
12528 if (p->error_indicator) {
12529 D(p->level--);
12530 return NULL;
12531 }
12532 D(fprintf(stderr, "%*c> sum[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sum '-' term"));
12533 Token * _literal;
12534 expr_ty a;
12535 expr_ty b;
12536 if (
12537 (a = sum_rule(p)) // sum
12538 &&
12539 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
12540 &&
12541 (b = term_rule(p)) // term
12542 )
12543 {
12544 D(fprintf(stderr, "%*c+ sum[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sum '-' term"));
12545 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12546 if (_token == NULL) {
12547 D(p->level--);
12548 return NULL;
12549 }
12550 int _end_lineno = _token->end_lineno;
12551 UNUSED(_end_lineno); // Only used by EXTRA macro
12552 int _end_col_offset = _token->end_col_offset;
12553 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020012554 _res = _PyAST_BinOp ( a , Sub , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012555 if (_res == NULL && PyErr_Occurred()) {
12556 p->error_indicator = 1;
12557 D(p->level--);
12558 return NULL;
12559 }
12560 goto done;
12561 }
12562 p->mark = _mark;
12563 D(fprintf(stderr, "%*c%s sum[%d-%d]: %s failed!\n", p->level, ' ',
12564 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sum '-' term"));
12565 }
12566 { // term
12567 if (p->error_indicator) {
12568 D(p->level--);
12569 return NULL;
12570 }
12571 D(fprintf(stderr, "%*c> sum[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term"));
12572 expr_ty term_var;
12573 if (
12574 (term_var = term_rule(p)) // term
12575 )
12576 {
12577 D(fprintf(stderr, "%*c+ sum[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term"));
12578 _res = term_var;
12579 goto done;
12580 }
12581 p->mark = _mark;
12582 D(fprintf(stderr, "%*c%s sum[%d-%d]: %s failed!\n", p->level, ' ',
12583 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term"));
12584 }
12585 _res = NULL;
12586 done:
12587 D(p->level--);
12588 return _res;
12589}
12590
12591// Left-recursive
12592// term:
12593// | term '*' factor
12594// | term '/' factor
12595// | term '//' factor
12596// | term '%' factor
12597// | term '@' factor
12598// | factor
12599static expr_ty term_raw(Parser *);
12600static expr_ty
12601term_rule(Parser *p)
12602{
12603 D(p->level++);
12604 expr_ty _res = NULL;
12605 if (_PyPegen_is_memoized(p, term_type, &_res)) {
12606 D(p->level--);
12607 return _res;
12608 }
12609 int _mark = p->mark;
12610 int _resmark = p->mark;
12611 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080012612 int tmpvar_7 = _PyPegen_update_memo(p, _mark, term_type, _res);
12613 if (tmpvar_7) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012614 D(p->level--);
12615 return _res;
12616 }
12617 p->mark = _mark;
12618 void *_raw = term_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020012619 if (p->error_indicator)
12620 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012621 if (_raw == NULL || p->mark <= _resmark)
12622 break;
12623 _resmark = p->mark;
12624 _res = _raw;
12625 }
12626 p->mark = _resmark;
12627 D(p->level--);
12628 return _res;
12629}
12630static expr_ty
12631term_raw(Parser *p)
12632{
12633 D(p->level++);
12634 if (p->error_indicator) {
12635 D(p->level--);
12636 return NULL;
12637 }
12638 expr_ty _res = NULL;
12639 int _mark = p->mark;
12640 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12641 p->error_indicator = 1;
12642 D(p->level--);
12643 return NULL;
12644 }
12645 int _start_lineno = p->tokens[_mark]->lineno;
12646 UNUSED(_start_lineno); // Only used by EXTRA macro
12647 int _start_col_offset = p->tokens[_mark]->col_offset;
12648 UNUSED(_start_col_offset); // Only used by EXTRA macro
12649 { // term '*' factor
12650 if (p->error_indicator) {
12651 D(p->level--);
12652 return NULL;
12653 }
12654 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '*' factor"));
12655 Token * _literal;
12656 expr_ty a;
12657 expr_ty b;
12658 if (
12659 (a = term_rule(p)) // term
12660 &&
12661 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
12662 &&
12663 (b = factor_rule(p)) // factor
12664 )
12665 {
12666 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '*' factor"));
12667 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12668 if (_token == NULL) {
12669 D(p->level--);
12670 return NULL;
12671 }
12672 int _end_lineno = _token->end_lineno;
12673 UNUSED(_end_lineno); // Only used by EXTRA macro
12674 int _end_col_offset = _token->end_col_offset;
12675 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020012676 _res = _PyAST_BinOp ( a , Mult , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012677 if (_res == NULL && PyErr_Occurred()) {
12678 p->error_indicator = 1;
12679 D(p->level--);
12680 return NULL;
12681 }
12682 goto done;
12683 }
12684 p->mark = _mark;
12685 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
12686 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '*' factor"));
12687 }
12688 { // term '/' factor
12689 if (p->error_indicator) {
12690 D(p->level--);
12691 return NULL;
12692 }
12693 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '/' factor"));
12694 Token * _literal;
12695 expr_ty a;
12696 expr_ty b;
12697 if (
12698 (a = term_rule(p)) // term
12699 &&
12700 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
12701 &&
12702 (b = factor_rule(p)) // factor
12703 )
12704 {
12705 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '/' factor"));
12706 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12707 if (_token == NULL) {
12708 D(p->level--);
12709 return NULL;
12710 }
12711 int _end_lineno = _token->end_lineno;
12712 UNUSED(_end_lineno); // Only used by EXTRA macro
12713 int _end_col_offset = _token->end_col_offset;
12714 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020012715 _res = _PyAST_BinOp ( a , Div , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012716 if (_res == NULL && PyErr_Occurred()) {
12717 p->error_indicator = 1;
12718 D(p->level--);
12719 return NULL;
12720 }
12721 goto done;
12722 }
12723 p->mark = _mark;
12724 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
12725 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '/' factor"));
12726 }
12727 { // term '//' factor
12728 if (p->error_indicator) {
12729 D(p->level--);
12730 return NULL;
12731 }
12732 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '//' factor"));
12733 Token * _literal;
12734 expr_ty a;
12735 expr_ty b;
12736 if (
12737 (a = term_rule(p)) // term
12738 &&
12739 (_literal = _PyPegen_expect_token(p, 47)) // token='//'
12740 &&
12741 (b = factor_rule(p)) // factor
12742 )
12743 {
12744 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '//' factor"));
12745 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12746 if (_token == NULL) {
12747 D(p->level--);
12748 return NULL;
12749 }
12750 int _end_lineno = _token->end_lineno;
12751 UNUSED(_end_lineno); // Only used by EXTRA macro
12752 int _end_col_offset = _token->end_col_offset;
12753 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020012754 _res = _PyAST_BinOp ( a , FloorDiv , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012755 if (_res == NULL && PyErr_Occurred()) {
12756 p->error_indicator = 1;
12757 D(p->level--);
12758 return NULL;
12759 }
12760 goto done;
12761 }
12762 p->mark = _mark;
12763 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
12764 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '//' factor"));
12765 }
12766 { // term '%' factor
12767 if (p->error_indicator) {
12768 D(p->level--);
12769 return NULL;
12770 }
12771 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '%' factor"));
12772 Token * _literal;
12773 expr_ty a;
12774 expr_ty b;
12775 if (
12776 (a = term_rule(p)) // term
12777 &&
12778 (_literal = _PyPegen_expect_token(p, 24)) // token='%'
12779 &&
12780 (b = factor_rule(p)) // factor
12781 )
12782 {
12783 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '%' factor"));
12784 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12785 if (_token == NULL) {
12786 D(p->level--);
12787 return NULL;
12788 }
12789 int _end_lineno = _token->end_lineno;
12790 UNUSED(_end_lineno); // Only used by EXTRA macro
12791 int _end_col_offset = _token->end_col_offset;
12792 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020012793 _res = _PyAST_BinOp ( a , Mod , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012794 if (_res == NULL && PyErr_Occurred()) {
12795 p->error_indicator = 1;
12796 D(p->level--);
12797 return NULL;
12798 }
12799 goto done;
12800 }
12801 p->mark = _mark;
12802 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
12803 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '%' factor"));
12804 }
12805 { // term '@' factor
12806 if (p->error_indicator) {
12807 D(p->level--);
12808 return NULL;
12809 }
12810 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '@' factor"));
12811 Token * _literal;
12812 expr_ty a;
12813 expr_ty b;
12814 if (
12815 (a = term_rule(p)) // term
12816 &&
12817 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
12818 &&
12819 (b = factor_rule(p)) // factor
12820 )
12821 {
12822 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '@' factor"));
12823 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12824 if (_token == NULL) {
12825 D(p->level--);
12826 return NULL;
12827 }
12828 int _end_lineno = _token->end_lineno;
12829 UNUSED(_end_lineno); // Only used by EXTRA macro
12830 int _end_col_offset = _token->end_col_offset;
12831 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020012832 _res = CHECK_VERSION ( expr_ty , 5 , "The '@' operator is" , _PyAST_BinOp ( a , MatMult , b , EXTRA ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012833 if (_res == NULL && PyErr_Occurred()) {
12834 p->error_indicator = 1;
12835 D(p->level--);
12836 return NULL;
12837 }
12838 goto done;
12839 }
12840 p->mark = _mark;
12841 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
12842 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '@' factor"));
12843 }
12844 { // factor
12845 if (p->error_indicator) {
12846 D(p->level--);
12847 return NULL;
12848 }
12849 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "factor"));
12850 expr_ty factor_var;
12851 if (
12852 (factor_var = factor_rule(p)) // factor
12853 )
12854 {
12855 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "factor"));
12856 _res = factor_var;
12857 goto done;
12858 }
12859 p->mark = _mark;
12860 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
12861 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "factor"));
12862 }
12863 _res = NULL;
12864 done:
12865 D(p->level--);
12866 return _res;
12867}
12868
12869// factor: '+' factor | '-' factor | '~' factor | power
12870static expr_ty
12871factor_rule(Parser *p)
12872{
12873 D(p->level++);
12874 if (p->error_indicator) {
12875 D(p->level--);
12876 return NULL;
12877 }
12878 expr_ty _res = NULL;
12879 if (_PyPegen_is_memoized(p, factor_type, &_res)) {
12880 D(p->level--);
12881 return _res;
12882 }
12883 int _mark = p->mark;
12884 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12885 p->error_indicator = 1;
12886 D(p->level--);
12887 return NULL;
12888 }
12889 int _start_lineno = p->tokens[_mark]->lineno;
12890 UNUSED(_start_lineno); // Only used by EXTRA macro
12891 int _start_col_offset = p->tokens[_mark]->col_offset;
12892 UNUSED(_start_col_offset); // Only used by EXTRA macro
12893 { // '+' factor
12894 if (p->error_indicator) {
12895 D(p->level--);
12896 return NULL;
12897 }
12898 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'+' factor"));
12899 Token * _literal;
12900 expr_ty a;
12901 if (
12902 (_literal = _PyPegen_expect_token(p, 14)) // token='+'
12903 &&
12904 (a = factor_rule(p)) // factor
12905 )
12906 {
12907 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'+' factor"));
12908 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12909 if (_token == NULL) {
12910 D(p->level--);
12911 return NULL;
12912 }
12913 int _end_lineno = _token->end_lineno;
12914 UNUSED(_end_lineno); // Only used by EXTRA macro
12915 int _end_col_offset = _token->end_col_offset;
12916 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020012917 _res = _PyAST_UnaryOp ( UAdd , a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012918 if (_res == NULL && PyErr_Occurred()) {
12919 p->error_indicator = 1;
12920 D(p->level--);
12921 return NULL;
12922 }
12923 goto done;
12924 }
12925 p->mark = _mark;
12926 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
12927 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+' factor"));
12928 }
12929 { // '-' factor
12930 if (p->error_indicator) {
12931 D(p->level--);
12932 return NULL;
12933 }
12934 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-' factor"));
12935 Token * _literal;
12936 expr_ty a;
12937 if (
12938 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
12939 &&
12940 (a = factor_rule(p)) // factor
12941 )
12942 {
12943 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-' factor"));
12944 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12945 if (_token == NULL) {
12946 D(p->level--);
12947 return NULL;
12948 }
12949 int _end_lineno = _token->end_lineno;
12950 UNUSED(_end_lineno); // Only used by EXTRA macro
12951 int _end_col_offset = _token->end_col_offset;
12952 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020012953 _res = _PyAST_UnaryOp ( USub , a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012954 if (_res == NULL && PyErr_Occurred()) {
12955 p->error_indicator = 1;
12956 D(p->level--);
12957 return NULL;
12958 }
12959 goto done;
12960 }
12961 p->mark = _mark;
12962 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
12963 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-' factor"));
12964 }
12965 { // '~' factor
12966 if (p->error_indicator) {
12967 D(p->level--);
12968 return NULL;
12969 }
12970 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'~' factor"));
12971 Token * _literal;
12972 expr_ty a;
12973 if (
12974 (_literal = _PyPegen_expect_token(p, 31)) // token='~'
12975 &&
12976 (a = factor_rule(p)) // factor
12977 )
12978 {
12979 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'~' factor"));
12980 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12981 if (_token == NULL) {
12982 D(p->level--);
12983 return NULL;
12984 }
12985 int _end_lineno = _token->end_lineno;
12986 UNUSED(_end_lineno); // Only used by EXTRA macro
12987 int _end_col_offset = _token->end_col_offset;
12988 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020012989 _res = _PyAST_UnaryOp ( Invert , a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012990 if (_res == NULL && PyErr_Occurred()) {
12991 p->error_indicator = 1;
12992 D(p->level--);
12993 return NULL;
12994 }
12995 goto done;
12996 }
12997 p->mark = _mark;
12998 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
12999 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'~' factor"));
13000 }
13001 { // power
13002 if (p->error_indicator) {
13003 D(p->level--);
13004 return NULL;
13005 }
13006 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "power"));
13007 expr_ty power_var;
13008 if (
13009 (power_var = power_rule(p)) // power
13010 )
13011 {
13012 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "power"));
13013 _res = power_var;
13014 goto done;
13015 }
13016 p->mark = _mark;
13017 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
13018 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "power"));
13019 }
13020 _res = NULL;
13021 done:
13022 _PyPegen_insert_memo(p, _mark, factor_type, _res);
13023 D(p->level--);
13024 return _res;
13025}
13026
13027// power: await_primary '**' factor | await_primary
13028static expr_ty
13029power_rule(Parser *p)
13030{
13031 D(p->level++);
13032 if (p->error_indicator) {
13033 D(p->level--);
13034 return NULL;
13035 }
13036 expr_ty _res = NULL;
13037 int _mark = p->mark;
13038 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13039 p->error_indicator = 1;
13040 D(p->level--);
13041 return NULL;
13042 }
13043 int _start_lineno = p->tokens[_mark]->lineno;
13044 UNUSED(_start_lineno); // Only used by EXTRA macro
13045 int _start_col_offset = p->tokens[_mark]->col_offset;
13046 UNUSED(_start_col_offset); // Only used by EXTRA macro
13047 { // await_primary '**' factor
13048 if (p->error_indicator) {
13049 D(p->level--);
13050 return NULL;
13051 }
13052 D(fprintf(stderr, "%*c> power[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "await_primary '**' factor"));
13053 Token * _literal;
13054 expr_ty a;
13055 expr_ty b;
13056 if (
13057 (a = await_primary_rule(p)) // await_primary
13058 &&
13059 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
13060 &&
13061 (b = factor_rule(p)) // factor
13062 )
13063 {
13064 D(fprintf(stderr, "%*c+ power[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "await_primary '**' factor"));
13065 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13066 if (_token == NULL) {
13067 D(p->level--);
13068 return NULL;
13069 }
13070 int _end_lineno = _token->end_lineno;
13071 UNUSED(_end_lineno); // Only used by EXTRA macro
13072 int _end_col_offset = _token->end_col_offset;
13073 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013074 _res = _PyAST_BinOp ( a , Pow , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013075 if (_res == NULL && PyErr_Occurred()) {
13076 p->error_indicator = 1;
13077 D(p->level--);
13078 return NULL;
13079 }
13080 goto done;
13081 }
13082 p->mark = _mark;
13083 D(fprintf(stderr, "%*c%s power[%d-%d]: %s failed!\n", p->level, ' ',
13084 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "await_primary '**' factor"));
13085 }
13086 { // await_primary
13087 if (p->error_indicator) {
13088 D(p->level--);
13089 return NULL;
13090 }
13091 D(fprintf(stderr, "%*c> power[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "await_primary"));
13092 expr_ty await_primary_var;
13093 if (
13094 (await_primary_var = await_primary_rule(p)) // await_primary
13095 )
13096 {
13097 D(fprintf(stderr, "%*c+ power[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "await_primary"));
13098 _res = await_primary_var;
13099 goto done;
13100 }
13101 p->mark = _mark;
13102 D(fprintf(stderr, "%*c%s power[%d-%d]: %s failed!\n", p->level, ' ',
13103 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "await_primary"));
13104 }
13105 _res = NULL;
13106 done:
13107 D(p->level--);
13108 return _res;
13109}
13110
13111// await_primary: AWAIT primary | primary
13112static expr_ty
13113await_primary_rule(Parser *p)
13114{
13115 D(p->level++);
13116 if (p->error_indicator) {
13117 D(p->level--);
13118 return NULL;
13119 }
13120 expr_ty _res = NULL;
13121 if (_PyPegen_is_memoized(p, await_primary_type, &_res)) {
13122 D(p->level--);
13123 return _res;
13124 }
13125 int _mark = p->mark;
13126 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13127 p->error_indicator = 1;
13128 D(p->level--);
13129 return NULL;
13130 }
13131 int _start_lineno = p->tokens[_mark]->lineno;
13132 UNUSED(_start_lineno); // Only used by EXTRA macro
13133 int _start_col_offset = p->tokens[_mark]->col_offset;
13134 UNUSED(_start_col_offset); // Only used by EXTRA macro
13135 { // AWAIT primary
13136 if (p->error_indicator) {
13137 D(p->level--);
13138 return NULL;
13139 }
13140 D(fprintf(stderr, "%*c> await_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "AWAIT primary"));
13141 expr_ty a;
13142 Token * await_var;
13143 if (
13144 (await_var = _PyPegen_expect_token(p, AWAIT)) // token='AWAIT'
13145 &&
13146 (a = primary_rule(p)) // primary
13147 )
13148 {
13149 D(fprintf(stderr, "%*c+ await_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "AWAIT primary"));
13150 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13151 if (_token == NULL) {
13152 D(p->level--);
13153 return NULL;
13154 }
13155 int _end_lineno = _token->end_lineno;
13156 UNUSED(_end_lineno); // Only used by EXTRA macro
13157 int _end_col_offset = _token->end_col_offset;
13158 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013159 _res = CHECK_VERSION ( expr_ty , 5 , "Await expressions are" , _PyAST_Await ( a , EXTRA ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013160 if (_res == NULL && PyErr_Occurred()) {
13161 p->error_indicator = 1;
13162 D(p->level--);
13163 return NULL;
13164 }
13165 goto done;
13166 }
13167 p->mark = _mark;
13168 D(fprintf(stderr, "%*c%s await_primary[%d-%d]: %s failed!\n", p->level, ' ',
13169 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "AWAIT primary"));
13170 }
13171 { // primary
13172 if (p->error_indicator) {
13173 D(p->level--);
13174 return NULL;
13175 }
13176 D(fprintf(stderr, "%*c> await_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary"));
13177 expr_ty primary_var;
13178 if (
13179 (primary_var = primary_rule(p)) // primary
13180 )
13181 {
13182 D(fprintf(stderr, "%*c+ await_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary"));
13183 _res = primary_var;
13184 goto done;
13185 }
13186 p->mark = _mark;
13187 D(fprintf(stderr, "%*c%s await_primary[%d-%d]: %s failed!\n", p->level, ' ',
13188 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary"));
13189 }
13190 _res = NULL;
13191 done:
13192 _PyPegen_insert_memo(p, _mark, await_primary_type, _res);
13193 D(p->level--);
13194 return _res;
13195}
13196
13197// Left-recursive
13198// primary:
Lysandros Nikolaou15acc4e2020-10-27 20:54:20 +020013199// | invalid_primary
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013200// | primary '.' NAME
13201// | primary genexp
13202// | primary '(' arguments? ')'
13203// | primary '[' slices ']'
13204// | atom
13205static expr_ty primary_raw(Parser *);
13206static expr_ty
13207primary_rule(Parser *p)
13208{
13209 D(p->level++);
13210 expr_ty _res = NULL;
13211 if (_PyPegen_is_memoized(p, primary_type, &_res)) {
13212 D(p->level--);
13213 return _res;
13214 }
13215 int _mark = p->mark;
13216 int _resmark = p->mark;
13217 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080013218 int tmpvar_8 = _PyPegen_update_memo(p, _mark, primary_type, _res);
13219 if (tmpvar_8) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013220 D(p->level--);
13221 return _res;
13222 }
13223 p->mark = _mark;
13224 void *_raw = primary_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020013225 if (p->error_indicator)
13226 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013227 if (_raw == NULL || p->mark <= _resmark)
13228 break;
13229 _resmark = p->mark;
13230 _res = _raw;
13231 }
13232 p->mark = _resmark;
13233 D(p->level--);
13234 return _res;
13235}
13236static expr_ty
13237primary_raw(Parser *p)
13238{
13239 D(p->level++);
13240 if (p->error_indicator) {
13241 D(p->level--);
13242 return NULL;
13243 }
13244 expr_ty _res = NULL;
13245 int _mark = p->mark;
13246 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13247 p->error_indicator = 1;
13248 D(p->level--);
13249 return NULL;
13250 }
13251 int _start_lineno = p->tokens[_mark]->lineno;
13252 UNUSED(_start_lineno); // Only used by EXTRA macro
13253 int _start_col_offset = p->tokens[_mark]->col_offset;
13254 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou15acc4e2020-10-27 20:54:20 +020013255 if (p->call_invalid_rules) { // invalid_primary
13256 if (p->error_indicator) {
13257 D(p->level--);
13258 return NULL;
13259 }
13260 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_primary"));
13261 void *invalid_primary_var;
13262 if (
13263 (invalid_primary_var = invalid_primary_rule(p)) // invalid_primary
13264 )
13265 {
13266 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_primary"));
13267 _res = invalid_primary_var;
13268 goto done;
13269 }
13270 p->mark = _mark;
13271 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
13272 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_primary"));
13273 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013274 { // primary '.' NAME
13275 if (p->error_indicator) {
13276 D(p->level--);
13277 return NULL;
13278 }
13279 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '.' NAME"));
13280 Token * _literal;
13281 expr_ty a;
13282 expr_ty b;
13283 if (
13284 (a = primary_rule(p)) // primary
13285 &&
13286 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
13287 &&
13288 (b = _PyPegen_name_token(p)) // NAME
13289 )
13290 {
13291 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '.' NAME"));
13292 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13293 if (_token == NULL) {
13294 D(p->level--);
13295 return NULL;
13296 }
13297 int _end_lineno = _token->end_lineno;
13298 UNUSED(_end_lineno); // Only used by EXTRA macro
13299 int _end_col_offset = _token->end_col_offset;
13300 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013301 _res = _PyAST_Attribute ( a , b -> v . Name . id , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013302 if (_res == NULL && PyErr_Occurred()) {
13303 p->error_indicator = 1;
13304 D(p->level--);
13305 return NULL;
13306 }
13307 goto done;
13308 }
13309 p->mark = _mark;
13310 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
13311 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '.' NAME"));
13312 }
13313 { // primary genexp
13314 if (p->error_indicator) {
13315 D(p->level--);
13316 return NULL;
13317 }
13318 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary genexp"));
13319 expr_ty a;
13320 expr_ty b;
13321 if (
13322 (a = primary_rule(p)) // primary
13323 &&
13324 (b = genexp_rule(p)) // genexp
13325 )
13326 {
13327 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary genexp"));
13328 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13329 if (_token == NULL) {
13330 D(p->level--);
13331 return NULL;
13332 }
13333 int _end_lineno = _token->end_lineno;
13334 UNUSED(_end_lineno); // Only used by EXTRA macro
13335 int _end_col_offset = _token->end_col_offset;
13336 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013337 _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 +010013338 if (_res == NULL && PyErr_Occurred()) {
13339 p->error_indicator = 1;
13340 D(p->level--);
13341 return NULL;
13342 }
13343 goto done;
13344 }
13345 p->mark = _mark;
13346 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
13347 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary genexp"));
13348 }
13349 { // primary '(' arguments? ')'
13350 if (p->error_indicator) {
13351 D(p->level--);
13352 return NULL;
13353 }
13354 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '(' arguments? ')'"));
13355 Token * _literal;
13356 Token * _literal_1;
13357 expr_ty a;
13358 void *b;
13359 if (
13360 (a = primary_rule(p)) // primary
13361 &&
13362 (_literal = _PyPegen_expect_token(p, 7)) // token='('
13363 &&
13364 (b = arguments_rule(p), 1) // arguments?
13365 &&
13366 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
13367 )
13368 {
13369 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '(' arguments? ')'"));
13370 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13371 if (_token == NULL) {
13372 D(p->level--);
13373 return NULL;
13374 }
13375 int _end_lineno = _token->end_lineno;
13376 UNUSED(_end_lineno); // Only used by EXTRA macro
13377 int _end_col_offset = _token->end_col_offset;
13378 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013379 _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 +010013380 if (_res == NULL && PyErr_Occurred()) {
13381 p->error_indicator = 1;
13382 D(p->level--);
13383 return NULL;
13384 }
13385 goto done;
13386 }
13387 p->mark = _mark;
13388 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
13389 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '(' arguments? ')'"));
13390 }
13391 { // primary '[' slices ']'
13392 if (p->error_indicator) {
13393 D(p->level--);
13394 return NULL;
13395 }
13396 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '[' slices ']'"));
13397 Token * _literal;
13398 Token * _literal_1;
13399 expr_ty a;
13400 expr_ty b;
13401 if (
13402 (a = primary_rule(p)) // primary
13403 &&
13404 (_literal = _PyPegen_expect_token(p, 9)) // token='['
13405 &&
13406 (b = slices_rule(p)) // slices
13407 &&
13408 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
13409 )
13410 {
13411 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '[' slices ']'"));
13412 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13413 if (_token == NULL) {
13414 D(p->level--);
13415 return NULL;
13416 }
13417 int _end_lineno = _token->end_lineno;
13418 UNUSED(_end_lineno); // Only used by EXTRA macro
13419 int _end_col_offset = _token->end_col_offset;
13420 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013421 _res = _PyAST_Subscript ( a , b , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013422 if (_res == NULL && PyErr_Occurred()) {
13423 p->error_indicator = 1;
13424 D(p->level--);
13425 return NULL;
13426 }
13427 goto done;
13428 }
13429 p->mark = _mark;
13430 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
13431 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '[' slices ']'"));
13432 }
13433 { // atom
13434 if (p->error_indicator) {
13435 D(p->level--);
13436 return NULL;
13437 }
13438 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "atom"));
13439 expr_ty atom_var;
13440 if (
13441 (atom_var = atom_rule(p)) // atom
13442 )
13443 {
13444 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "atom"));
13445 _res = atom_var;
13446 goto done;
13447 }
13448 p->mark = _mark;
13449 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
13450 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "atom"));
13451 }
13452 _res = NULL;
13453 done:
13454 D(p->level--);
13455 return _res;
13456}
13457
13458// slices: slice !',' | ','.slice+ ','?
13459static expr_ty
13460slices_rule(Parser *p)
13461{
13462 D(p->level++);
13463 if (p->error_indicator) {
13464 D(p->level--);
13465 return NULL;
13466 }
13467 expr_ty _res = NULL;
13468 int _mark = p->mark;
13469 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13470 p->error_indicator = 1;
13471 D(p->level--);
13472 return NULL;
13473 }
13474 int _start_lineno = p->tokens[_mark]->lineno;
13475 UNUSED(_start_lineno); // Only used by EXTRA macro
13476 int _start_col_offset = p->tokens[_mark]->col_offset;
13477 UNUSED(_start_col_offset); // Only used by EXTRA macro
13478 { // slice !','
13479 if (p->error_indicator) {
13480 D(p->level--);
13481 return NULL;
13482 }
13483 D(fprintf(stderr, "%*c> slices[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slice !','"));
13484 expr_ty a;
13485 if (
13486 (a = slice_rule(p)) // slice
13487 &&
13488 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 12) // token=','
13489 )
13490 {
13491 D(fprintf(stderr, "%*c+ slices[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slice !','"));
13492 _res = a;
13493 if (_res == NULL && PyErr_Occurred()) {
13494 p->error_indicator = 1;
13495 D(p->level--);
13496 return NULL;
13497 }
13498 goto done;
13499 }
13500 p->mark = _mark;
13501 D(fprintf(stderr, "%*c%s slices[%d-%d]: %s failed!\n", p->level, ' ',
13502 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slice !','"));
13503 }
13504 { // ','.slice+ ','?
13505 if (p->error_indicator) {
13506 D(p->level--);
13507 return NULL;
13508 }
13509 D(fprintf(stderr, "%*c> slices[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.slice+ ','?"));
13510 void *_opt_var;
13511 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +010013512 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013513 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080013514 (a = (asdl_expr_seq*)_gather_108_rule(p)) // ','.slice+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013515 &&
13516 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
13517 )
13518 {
13519 D(fprintf(stderr, "%*c+ slices[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.slice+ ','?"));
13520 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13521 if (_token == NULL) {
13522 D(p->level--);
13523 return NULL;
13524 }
13525 int _end_lineno = _token->end_lineno;
13526 UNUSED(_end_lineno); // Only used by EXTRA macro
13527 int _end_col_offset = _token->end_col_offset;
13528 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013529 _res = _PyAST_Tuple ( a , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013530 if (_res == NULL && PyErr_Occurred()) {
13531 p->error_indicator = 1;
13532 D(p->level--);
13533 return NULL;
13534 }
13535 goto done;
13536 }
13537 p->mark = _mark;
13538 D(fprintf(stderr, "%*c%s slices[%d-%d]: %s failed!\n", p->level, ' ',
13539 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.slice+ ','?"));
13540 }
13541 _res = NULL;
13542 done:
13543 D(p->level--);
13544 return _res;
13545}
13546
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020013547// slice: expression? ':' expression? [':' expression?] | named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013548static expr_ty
13549slice_rule(Parser *p)
13550{
13551 D(p->level++);
13552 if (p->error_indicator) {
13553 D(p->level--);
13554 return NULL;
13555 }
13556 expr_ty _res = NULL;
13557 int _mark = p->mark;
13558 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13559 p->error_indicator = 1;
13560 D(p->level--);
13561 return NULL;
13562 }
13563 int _start_lineno = p->tokens[_mark]->lineno;
13564 UNUSED(_start_lineno); // Only used by EXTRA macro
13565 int _start_col_offset = p->tokens[_mark]->col_offset;
13566 UNUSED(_start_col_offset); // Only used by EXTRA macro
13567 { // expression? ':' expression? [':' expression?]
13568 if (p->error_indicator) {
13569 D(p->level--);
13570 return NULL;
13571 }
13572 D(fprintf(stderr, "%*c> slice[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression? ':' expression? [':' expression?]"));
13573 Token * _literal;
13574 void *a;
13575 void *b;
13576 void *c;
13577 if (
13578 (a = expression_rule(p), 1) // expression?
13579 &&
13580 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
13581 &&
13582 (b = expression_rule(p), 1) // expression?
13583 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080013584 (c = _tmp_110_rule(p), 1) // [':' expression?]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013585 )
13586 {
13587 D(fprintf(stderr, "%*c+ slice[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression? ':' expression? [':' expression?]"));
13588 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13589 if (_token == NULL) {
13590 D(p->level--);
13591 return NULL;
13592 }
13593 int _end_lineno = _token->end_lineno;
13594 UNUSED(_end_lineno); // Only used by EXTRA macro
13595 int _end_col_offset = _token->end_col_offset;
13596 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013597 _res = _PyAST_Slice ( a , b , c , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013598 if (_res == NULL && PyErr_Occurred()) {
13599 p->error_indicator = 1;
13600 D(p->level--);
13601 return NULL;
13602 }
13603 goto done;
13604 }
13605 p->mark = _mark;
13606 D(fprintf(stderr, "%*c%s slice[%d-%d]: %s failed!\n", p->level, ' ',
13607 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression? ':' expression? [':' expression?]"));
13608 }
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020013609 { // named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013610 if (p->error_indicator) {
13611 D(p->level--);
13612 return NULL;
13613 }
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020013614 D(fprintf(stderr, "%*c> slice[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013615 expr_ty a;
13616 if (
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020013617 (a = named_expression_rule(p)) // named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013618 )
13619 {
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020013620 D(fprintf(stderr, "%*c+ slice[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "named_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013621 _res = a;
13622 if (_res == NULL && PyErr_Occurred()) {
13623 p->error_indicator = 1;
13624 D(p->level--);
13625 return NULL;
13626 }
13627 goto done;
13628 }
13629 p->mark = _mark;
13630 D(fprintf(stderr, "%*c%s slice[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020013631 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013632 }
13633 _res = NULL;
13634 done:
13635 D(p->level--);
13636 return _res;
13637}
13638
13639// atom:
13640// | NAME
13641// | 'True'
13642// | 'False'
13643// | 'None'
13644// | &STRING strings
13645// | NUMBER
13646// | &'(' (tuple | group | genexp)
13647// | &'[' (list | listcomp)
13648// | &'{' (dict | set | dictcomp | setcomp)
13649// | '...'
13650static expr_ty
13651atom_rule(Parser *p)
13652{
13653 D(p->level++);
13654 if (p->error_indicator) {
13655 D(p->level--);
13656 return NULL;
13657 }
13658 expr_ty _res = NULL;
13659 int _mark = p->mark;
13660 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13661 p->error_indicator = 1;
13662 D(p->level--);
13663 return NULL;
13664 }
13665 int _start_lineno = p->tokens[_mark]->lineno;
13666 UNUSED(_start_lineno); // Only used by EXTRA macro
13667 int _start_col_offset = p->tokens[_mark]->col_offset;
13668 UNUSED(_start_col_offset); // Only used by EXTRA macro
13669 { // NAME
13670 if (p->error_indicator) {
13671 D(p->level--);
13672 return NULL;
13673 }
13674 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
13675 expr_ty name_var;
13676 if (
13677 (name_var = _PyPegen_name_token(p)) // NAME
13678 )
13679 {
13680 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
13681 _res = name_var;
13682 goto done;
13683 }
13684 p->mark = _mark;
13685 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
13686 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
13687 }
13688 { // 'True'
13689 if (p->error_indicator) {
13690 D(p->level--);
13691 return NULL;
13692 }
13693 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'"));
13694 Token * _keyword;
13695 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080013696 (_keyword = _PyPegen_expect_token(p, 524)) // token='True'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013697 )
13698 {
13699 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'"));
13700 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13701 if (_token == NULL) {
13702 D(p->level--);
13703 return NULL;
13704 }
13705 int _end_lineno = _token->end_lineno;
13706 UNUSED(_end_lineno); // Only used by EXTRA macro
13707 int _end_col_offset = _token->end_col_offset;
13708 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013709 _res = _PyAST_Constant ( Py_True , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013710 if (_res == NULL && PyErr_Occurred()) {
13711 p->error_indicator = 1;
13712 D(p->level--);
13713 return NULL;
13714 }
13715 goto done;
13716 }
13717 p->mark = _mark;
13718 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
13719 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'True'"));
13720 }
13721 { // 'False'
13722 if (p->error_indicator) {
13723 D(p->level--);
13724 return NULL;
13725 }
13726 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'"));
13727 Token * _keyword;
13728 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080013729 (_keyword = _PyPegen_expect_token(p, 525)) // token='False'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013730 )
13731 {
13732 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'"));
13733 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13734 if (_token == NULL) {
13735 D(p->level--);
13736 return NULL;
13737 }
13738 int _end_lineno = _token->end_lineno;
13739 UNUSED(_end_lineno); // Only used by EXTRA macro
13740 int _end_col_offset = _token->end_col_offset;
13741 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013742 _res = _PyAST_Constant ( Py_False , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013743 if (_res == NULL && PyErr_Occurred()) {
13744 p->error_indicator = 1;
13745 D(p->level--);
13746 return NULL;
13747 }
13748 goto done;
13749 }
13750 p->mark = _mark;
13751 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
13752 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'False'"));
13753 }
13754 { // 'None'
13755 if (p->error_indicator) {
13756 D(p->level--);
13757 return NULL;
13758 }
13759 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'"));
13760 Token * _keyword;
13761 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080013762 (_keyword = _PyPegen_expect_token(p, 523)) // token='None'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013763 )
13764 {
13765 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'"));
13766 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13767 if (_token == NULL) {
13768 D(p->level--);
13769 return NULL;
13770 }
13771 int _end_lineno = _token->end_lineno;
13772 UNUSED(_end_lineno); // Only used by EXTRA macro
13773 int _end_col_offset = _token->end_col_offset;
13774 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013775 _res = _PyAST_Constant ( Py_None , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013776 if (_res == NULL && PyErr_Occurred()) {
13777 p->error_indicator = 1;
13778 D(p->level--);
13779 return NULL;
13780 }
13781 goto done;
13782 }
13783 p->mark = _mark;
13784 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
13785 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'None'"));
13786 }
13787 { // &STRING strings
13788 if (p->error_indicator) {
13789 D(p->level--);
13790 return NULL;
13791 }
13792 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&STRING strings"));
13793 expr_ty strings_var;
13794 if (
13795 _PyPegen_lookahead(1, _PyPegen_string_token, p)
13796 &&
13797 (strings_var = strings_rule(p)) // strings
13798 )
13799 {
13800 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&STRING strings"));
13801 _res = strings_var;
13802 goto done;
13803 }
13804 p->mark = _mark;
13805 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
13806 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&STRING strings"));
13807 }
13808 { // NUMBER
13809 if (p->error_indicator) {
13810 D(p->level--);
13811 return NULL;
13812 }
13813 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NUMBER"));
13814 expr_ty number_var;
13815 if (
13816 (number_var = _PyPegen_number_token(p)) // NUMBER
13817 )
13818 {
13819 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NUMBER"));
13820 _res = number_var;
13821 goto done;
13822 }
13823 p->mark = _mark;
13824 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
13825 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NUMBER"));
13826 }
13827 { // &'(' (tuple | group | genexp)
13828 if (p->error_indicator) {
13829 D(p->level--);
13830 return NULL;
13831 }
13832 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'(' (tuple | group | genexp)"));
Brandt Bucher145bf262021-02-26 14:51:55 -080013833 void *_tmp_111_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013834 if (
13835 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 7) // token='('
13836 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080013837 (_tmp_111_var = _tmp_111_rule(p)) // tuple | group | genexp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013838 )
13839 {
13840 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 -080013841 _res = _tmp_111_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013842 goto done;
13843 }
13844 p->mark = _mark;
13845 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
13846 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'(' (tuple | group | genexp)"));
13847 }
13848 { // &'[' (list | listcomp)
13849 if (p->error_indicator) {
13850 D(p->level--);
13851 return NULL;
13852 }
13853 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'[' (list | listcomp)"));
Brandt Bucher145bf262021-02-26 14:51:55 -080013854 void *_tmp_112_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013855 if (
13856 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 9) // token='['
13857 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080013858 (_tmp_112_var = _tmp_112_rule(p)) // list | listcomp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013859 )
13860 {
13861 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'[' (list | listcomp)"));
Brandt Bucher145bf262021-02-26 14:51:55 -080013862 _res = _tmp_112_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013863 goto done;
13864 }
13865 p->mark = _mark;
13866 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
13867 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'[' (list | listcomp)"));
13868 }
13869 { // &'{' (dict | set | dictcomp | setcomp)
13870 if (p->error_indicator) {
13871 D(p->level--);
13872 return NULL;
13873 }
13874 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 -080013875 void *_tmp_113_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013876 if (
13877 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 25) // token='{'
13878 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080013879 (_tmp_113_var = _tmp_113_rule(p)) // dict | set | dictcomp | setcomp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013880 )
13881 {
13882 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 -080013883 _res = _tmp_113_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013884 goto done;
13885 }
13886 p->mark = _mark;
13887 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
13888 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'{' (dict | set | dictcomp | setcomp)"));
13889 }
13890 { // '...'
13891 if (p->error_indicator) {
13892 D(p->level--);
13893 return NULL;
13894 }
13895 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'"));
13896 Token * _literal;
13897 if (
13898 (_literal = _PyPegen_expect_token(p, 52)) // token='...'
13899 )
13900 {
13901 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'"));
13902 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13903 if (_token == NULL) {
13904 D(p->level--);
13905 return NULL;
13906 }
13907 int _end_lineno = _token->end_lineno;
13908 UNUSED(_end_lineno); // Only used by EXTRA macro
13909 int _end_col_offset = _token->end_col_offset;
13910 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013911 _res = _PyAST_Constant ( Py_Ellipsis , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013912 if (_res == NULL && PyErr_Occurred()) {
13913 p->error_indicator = 1;
13914 D(p->level--);
13915 return NULL;
13916 }
13917 goto done;
13918 }
13919 p->mark = _mark;
13920 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
13921 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'"));
13922 }
13923 _res = NULL;
13924 done:
13925 D(p->level--);
13926 return _res;
13927}
13928
13929// strings: STRING+
13930static expr_ty
13931strings_rule(Parser *p)
13932{
13933 D(p->level++);
13934 if (p->error_indicator) {
13935 D(p->level--);
13936 return NULL;
13937 }
13938 expr_ty _res = NULL;
13939 if (_PyPegen_is_memoized(p, strings_type, &_res)) {
13940 D(p->level--);
13941 return _res;
13942 }
13943 int _mark = p->mark;
13944 { // STRING+
13945 if (p->error_indicator) {
13946 D(p->level--);
13947 return NULL;
13948 }
13949 D(fprintf(stderr, "%*c> strings[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "STRING+"));
13950 asdl_seq * a;
13951 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080013952 (a = _loop1_114_rule(p)) // STRING+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013953 )
13954 {
13955 D(fprintf(stderr, "%*c+ strings[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "STRING+"));
13956 _res = _PyPegen_concatenate_strings ( p , a );
13957 if (_res == NULL && PyErr_Occurred()) {
13958 p->error_indicator = 1;
13959 D(p->level--);
13960 return NULL;
13961 }
13962 goto done;
13963 }
13964 p->mark = _mark;
13965 D(fprintf(stderr, "%*c%s strings[%d-%d]: %s failed!\n", p->level, ' ',
13966 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "STRING+"));
13967 }
13968 _res = NULL;
13969 done:
13970 _PyPegen_insert_memo(p, _mark, strings_type, _res);
13971 D(p->level--);
13972 return _res;
13973}
13974
13975// list: '[' star_named_expressions? ']'
13976static expr_ty
13977list_rule(Parser *p)
13978{
13979 D(p->level++);
13980 if (p->error_indicator) {
13981 D(p->level--);
13982 return NULL;
13983 }
13984 expr_ty _res = NULL;
13985 int _mark = p->mark;
13986 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13987 p->error_indicator = 1;
13988 D(p->level--);
13989 return NULL;
13990 }
13991 int _start_lineno = p->tokens[_mark]->lineno;
13992 UNUSED(_start_lineno); // Only used by EXTRA macro
13993 int _start_col_offset = p->tokens[_mark]->col_offset;
13994 UNUSED(_start_col_offset); // Only used by EXTRA macro
13995 { // '[' star_named_expressions? ']'
13996 if (p->error_indicator) {
13997 D(p->level--);
13998 return NULL;
13999 }
14000 D(fprintf(stderr, "%*c> list[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' star_named_expressions? ']'"));
14001 Token * _literal;
14002 Token * _literal_1;
14003 void *a;
14004 if (
14005 (_literal = _PyPegen_expect_token(p, 9)) // token='['
14006 &&
14007 (a = star_named_expressions_rule(p), 1) // star_named_expressions?
14008 &&
14009 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
14010 )
14011 {
14012 D(fprintf(stderr, "%*c+ list[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' star_named_expressions? ']'"));
14013 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14014 if (_token == NULL) {
14015 D(p->level--);
14016 return NULL;
14017 }
14018 int _end_lineno = _token->end_lineno;
14019 UNUSED(_end_lineno); // Only used by EXTRA macro
14020 int _end_col_offset = _token->end_col_offset;
14021 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014022 _res = _PyAST_List ( a , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014023 if (_res == NULL && PyErr_Occurred()) {
14024 p->error_indicator = 1;
14025 D(p->level--);
14026 return NULL;
14027 }
14028 goto done;
14029 }
14030 p->mark = _mark;
14031 D(fprintf(stderr, "%*c%s list[%d-%d]: %s failed!\n", p->level, ' ',
14032 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' star_named_expressions? ']'"));
14033 }
14034 _res = NULL;
14035 done:
14036 D(p->level--);
14037 return _res;
14038}
14039
Pablo Galindo835f14f2021-01-31 22:52:56 +000014040// listcomp: '[' named_expression for_if_clauses ']' | invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014041static expr_ty
14042listcomp_rule(Parser *p)
14043{
14044 D(p->level++);
14045 if (p->error_indicator) {
14046 D(p->level--);
14047 return NULL;
14048 }
14049 expr_ty _res = NULL;
14050 int _mark = p->mark;
14051 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14052 p->error_indicator = 1;
14053 D(p->level--);
14054 return NULL;
14055 }
14056 int _start_lineno = p->tokens[_mark]->lineno;
14057 UNUSED(_start_lineno); // Only used by EXTRA macro
14058 int _start_col_offset = p->tokens[_mark]->col_offset;
14059 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo835f14f2021-01-31 22:52:56 +000014060 { // '[' named_expression for_if_clauses ']'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014061 if (p->error_indicator) {
14062 D(p->level--);
14063 return NULL;
14064 }
Pablo Galindo835f14f2021-01-31 22:52:56 +000014065 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 +010014066 Token * _literal;
14067 Token * _literal_1;
14068 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010014069 asdl_comprehension_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014070 if (
14071 (_literal = _PyPegen_expect_token(p, 9)) // token='['
14072 &&
14073 (a = named_expression_rule(p)) // named_expression
14074 &&
14075 (b = for_if_clauses_rule(p)) // for_if_clauses
14076 &&
14077 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
14078 )
14079 {
Pablo Galindo835f14f2021-01-31 22:52:56 +000014080 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 +010014081 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14082 if (_token == NULL) {
14083 D(p->level--);
14084 return NULL;
14085 }
14086 int _end_lineno = _token->end_lineno;
14087 UNUSED(_end_lineno); // Only used by EXTRA macro
14088 int _end_col_offset = _token->end_col_offset;
14089 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014090 _res = _PyAST_ListComp ( a , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014091 if (_res == NULL && PyErr_Occurred()) {
14092 p->error_indicator = 1;
14093 D(p->level--);
14094 return NULL;
14095 }
14096 goto done;
14097 }
14098 p->mark = _mark;
14099 D(fprintf(stderr, "%*c%s listcomp[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo835f14f2021-01-31 22:52:56 +000014100 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' named_expression for_if_clauses ']'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014101 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014102 if (p->call_invalid_rules) { // invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014103 if (p->error_indicator) {
14104 D(p->level--);
14105 return NULL;
14106 }
14107 D(fprintf(stderr, "%*c> listcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
14108 void *invalid_comprehension_var;
14109 if (
14110 (invalid_comprehension_var = invalid_comprehension_rule(p)) // invalid_comprehension
14111 )
14112 {
14113 D(fprintf(stderr, "%*c+ listcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
14114 _res = invalid_comprehension_var;
14115 goto done;
14116 }
14117 p->mark = _mark;
14118 D(fprintf(stderr, "%*c%s listcomp[%d-%d]: %s failed!\n", p->level, ' ',
14119 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_comprehension"));
14120 }
14121 _res = NULL;
14122 done:
14123 D(p->level--);
14124 return _res;
14125}
14126
14127// tuple: '(' [star_named_expression ',' star_named_expressions?] ')'
14128static expr_ty
14129tuple_rule(Parser *p)
14130{
14131 D(p->level++);
14132 if (p->error_indicator) {
14133 D(p->level--);
14134 return NULL;
14135 }
14136 expr_ty _res = NULL;
14137 int _mark = p->mark;
14138 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14139 p->error_indicator = 1;
14140 D(p->level--);
14141 return NULL;
14142 }
14143 int _start_lineno = p->tokens[_mark]->lineno;
14144 UNUSED(_start_lineno); // Only used by EXTRA macro
14145 int _start_col_offset = p->tokens[_mark]->col_offset;
14146 UNUSED(_start_col_offset); // Only used by EXTRA macro
14147 { // '(' [star_named_expression ',' star_named_expressions?] ')'
14148 if (p->error_indicator) {
14149 D(p->level--);
14150 return NULL;
14151 }
14152 D(fprintf(stderr, "%*c> tuple[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' [star_named_expression ',' star_named_expressions?] ')'"));
14153 Token * _literal;
14154 Token * _literal_1;
14155 void *a;
14156 if (
14157 (_literal = _PyPegen_expect_token(p, 7)) // token='('
14158 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080014159 (a = _tmp_115_rule(p), 1) // [star_named_expression ',' star_named_expressions?]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014160 &&
14161 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
14162 )
14163 {
14164 D(fprintf(stderr, "%*c+ tuple[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' [star_named_expression ',' star_named_expressions?] ')'"));
14165 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14166 if (_token == NULL) {
14167 D(p->level--);
14168 return NULL;
14169 }
14170 int _end_lineno = _token->end_lineno;
14171 UNUSED(_end_lineno); // Only used by EXTRA macro
14172 int _end_col_offset = _token->end_col_offset;
14173 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014174 _res = _PyAST_Tuple ( a , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014175 if (_res == NULL && PyErr_Occurred()) {
14176 p->error_indicator = 1;
14177 D(p->level--);
14178 return NULL;
14179 }
14180 goto done;
14181 }
14182 p->mark = _mark;
14183 D(fprintf(stderr, "%*c%s tuple[%d-%d]: %s failed!\n", p->level, ' ',
14184 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' [star_named_expression ',' star_named_expressions?] ')'"));
14185 }
14186 _res = NULL;
14187 done:
14188 D(p->level--);
14189 return _res;
14190}
14191
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030014192// group: '(' (yield_expr | named_expression) ')' | invalid_group
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014193static expr_ty
14194group_rule(Parser *p)
14195{
14196 D(p->level++);
14197 if (p->error_indicator) {
14198 D(p->level--);
14199 return NULL;
14200 }
14201 expr_ty _res = NULL;
14202 int _mark = p->mark;
14203 { // '(' (yield_expr | named_expression) ')'
14204 if (p->error_indicator) {
14205 D(p->level--);
14206 return NULL;
14207 }
14208 D(fprintf(stderr, "%*c> group[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' (yield_expr | named_expression) ')'"));
14209 Token * _literal;
14210 Token * _literal_1;
14211 void *a;
14212 if (
14213 (_literal = _PyPegen_expect_token(p, 7)) // token='('
14214 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080014215 (a = _tmp_116_rule(p)) // yield_expr | named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014216 &&
14217 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
14218 )
14219 {
14220 D(fprintf(stderr, "%*c+ group[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' (yield_expr | named_expression) ')'"));
14221 _res = a;
14222 if (_res == NULL && PyErr_Occurred()) {
14223 p->error_indicator = 1;
14224 D(p->level--);
14225 return NULL;
14226 }
14227 goto done;
14228 }
14229 p->mark = _mark;
14230 D(fprintf(stderr, "%*c%s group[%d-%d]: %s failed!\n", p->level, ' ',
14231 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' (yield_expr | named_expression) ')'"));
14232 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014233 if (p->call_invalid_rules) { // invalid_group
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030014234 if (p->error_indicator) {
14235 D(p->level--);
14236 return NULL;
14237 }
14238 D(fprintf(stderr, "%*c> group[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_group"));
14239 void *invalid_group_var;
14240 if (
14241 (invalid_group_var = invalid_group_rule(p)) // invalid_group
14242 )
14243 {
14244 D(fprintf(stderr, "%*c+ group[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_group"));
14245 _res = invalid_group_var;
14246 goto done;
14247 }
14248 p->mark = _mark;
14249 D(fprintf(stderr, "%*c%s group[%d-%d]: %s failed!\n", p->level, ' ',
14250 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_group"));
14251 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014252 _res = NULL;
14253 done:
14254 D(p->level--);
14255 return _res;
14256}
14257
Pablo Galindo30ed93b2021-04-13 17:51:21 +010014258// genexp: '(' direct_named_expression for_if_clauses ')' | invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014259static expr_ty
14260genexp_rule(Parser *p)
14261{
14262 D(p->level++);
14263 if (p->error_indicator) {
14264 D(p->level--);
14265 return NULL;
14266 }
14267 expr_ty _res = NULL;
14268 int _mark = p->mark;
14269 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14270 p->error_indicator = 1;
14271 D(p->level--);
14272 return NULL;
14273 }
14274 int _start_lineno = p->tokens[_mark]->lineno;
14275 UNUSED(_start_lineno); // Only used by EXTRA macro
14276 int _start_col_offset = p->tokens[_mark]->col_offset;
14277 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo30ed93b2021-04-13 17:51:21 +010014278 { // '(' direct_named_expression for_if_clauses ')'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014279 if (p->error_indicator) {
14280 D(p->level--);
14281 return NULL;
14282 }
Pablo Galindo30ed93b2021-04-13 17:51:21 +010014283 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 +010014284 Token * _literal;
14285 Token * _literal_1;
14286 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010014287 asdl_comprehension_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014288 if (
14289 (_literal = _PyPegen_expect_token(p, 7)) // token='('
14290 &&
Pablo Galindo30ed93b2021-04-13 17:51:21 +010014291 (a = direct_named_expression_rule(p)) // direct_named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014292 &&
14293 (b = for_if_clauses_rule(p)) // for_if_clauses
14294 &&
14295 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
14296 )
14297 {
Pablo Galindo30ed93b2021-04-13 17:51:21 +010014298 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 +010014299 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14300 if (_token == NULL) {
14301 D(p->level--);
14302 return NULL;
14303 }
14304 int _end_lineno = _token->end_lineno;
14305 UNUSED(_end_lineno); // Only used by EXTRA macro
14306 int _end_col_offset = _token->end_col_offset;
14307 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014308 _res = _PyAST_GeneratorExp ( a , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014309 if (_res == NULL && PyErr_Occurred()) {
14310 p->error_indicator = 1;
14311 D(p->level--);
14312 return NULL;
14313 }
14314 goto done;
14315 }
14316 p->mark = _mark;
14317 D(fprintf(stderr, "%*c%s genexp[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo30ed93b2021-04-13 17:51:21 +010014318 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' direct_named_expression for_if_clauses ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014319 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014320 if (p->call_invalid_rules) { // invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014321 if (p->error_indicator) {
14322 D(p->level--);
14323 return NULL;
14324 }
14325 D(fprintf(stderr, "%*c> genexp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
14326 void *invalid_comprehension_var;
14327 if (
14328 (invalid_comprehension_var = invalid_comprehension_rule(p)) // invalid_comprehension
14329 )
14330 {
14331 D(fprintf(stderr, "%*c+ genexp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
14332 _res = invalid_comprehension_var;
14333 goto done;
14334 }
14335 p->mark = _mark;
14336 D(fprintf(stderr, "%*c%s genexp[%d-%d]: %s failed!\n", p->level, ' ',
14337 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_comprehension"));
14338 }
14339 _res = NULL;
14340 done:
14341 D(p->level--);
14342 return _res;
14343}
14344
Pablo Galindob0aba1f2020-11-17 01:17:12 +000014345// set: '{' star_named_expressions '}'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014346static expr_ty
14347set_rule(Parser *p)
14348{
14349 D(p->level++);
14350 if (p->error_indicator) {
14351 D(p->level--);
14352 return NULL;
14353 }
14354 expr_ty _res = NULL;
14355 int _mark = p->mark;
14356 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14357 p->error_indicator = 1;
14358 D(p->level--);
14359 return NULL;
14360 }
14361 int _start_lineno = p->tokens[_mark]->lineno;
14362 UNUSED(_start_lineno); // Only used by EXTRA macro
14363 int _start_col_offset = p->tokens[_mark]->col_offset;
14364 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindob0aba1f2020-11-17 01:17:12 +000014365 { // '{' star_named_expressions '}'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014366 if (p->error_indicator) {
14367 D(p->level--);
14368 return NULL;
14369 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000014370 D(fprintf(stderr, "%*c> set[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' star_named_expressions '}'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014371 Token * _literal;
14372 Token * _literal_1;
Pablo Galindoa5634c42020-09-16 19:42:00 +010014373 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014374 if (
14375 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
14376 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000014377 (a = star_named_expressions_rule(p)) // star_named_expressions
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014378 &&
14379 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
14380 )
14381 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000014382 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 +010014383 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14384 if (_token == NULL) {
14385 D(p->level--);
14386 return NULL;
14387 }
14388 int _end_lineno = _token->end_lineno;
14389 UNUSED(_end_lineno); // Only used by EXTRA macro
14390 int _end_col_offset = _token->end_col_offset;
14391 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014392 _res = _PyAST_Set ( a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014393 if (_res == NULL && PyErr_Occurred()) {
14394 p->error_indicator = 1;
14395 D(p->level--);
14396 return NULL;
14397 }
14398 goto done;
14399 }
14400 p->mark = _mark;
14401 D(fprintf(stderr, "%*c%s set[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000014402 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' star_named_expressions '}'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014403 }
14404 _res = NULL;
14405 done:
14406 D(p->level--);
14407 return _res;
14408}
14409
Pablo Galindo835f14f2021-01-31 22:52:56 +000014410// setcomp: '{' named_expression for_if_clauses '}' | invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014411static expr_ty
14412setcomp_rule(Parser *p)
14413{
14414 D(p->level++);
14415 if (p->error_indicator) {
14416 D(p->level--);
14417 return NULL;
14418 }
14419 expr_ty _res = NULL;
14420 int _mark = p->mark;
14421 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14422 p->error_indicator = 1;
14423 D(p->level--);
14424 return NULL;
14425 }
14426 int _start_lineno = p->tokens[_mark]->lineno;
14427 UNUSED(_start_lineno); // Only used by EXTRA macro
14428 int _start_col_offset = p->tokens[_mark]->col_offset;
14429 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo835f14f2021-01-31 22:52:56 +000014430 { // '{' named_expression for_if_clauses '}'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014431 if (p->error_indicator) {
14432 D(p->level--);
14433 return NULL;
14434 }
Pablo Galindo835f14f2021-01-31 22:52:56 +000014435 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 +010014436 Token * _literal;
14437 Token * _literal_1;
14438 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010014439 asdl_comprehension_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014440 if (
14441 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
14442 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000014443 (a = named_expression_rule(p)) // named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014444 &&
14445 (b = for_if_clauses_rule(p)) // for_if_clauses
14446 &&
14447 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
14448 )
14449 {
Pablo Galindo835f14f2021-01-31 22:52:56 +000014450 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 +010014451 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14452 if (_token == NULL) {
14453 D(p->level--);
14454 return NULL;
14455 }
14456 int _end_lineno = _token->end_lineno;
14457 UNUSED(_end_lineno); // Only used by EXTRA macro
14458 int _end_col_offset = _token->end_col_offset;
14459 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014460 _res = _PyAST_SetComp ( a , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014461 if (_res == NULL && PyErr_Occurred()) {
14462 p->error_indicator = 1;
14463 D(p->level--);
14464 return NULL;
14465 }
14466 goto done;
14467 }
14468 p->mark = _mark;
14469 D(fprintf(stderr, "%*c%s setcomp[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo835f14f2021-01-31 22:52:56 +000014470 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' named_expression for_if_clauses '}'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014471 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014472 if (p->call_invalid_rules) { // invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014473 if (p->error_indicator) {
14474 D(p->level--);
14475 return NULL;
14476 }
14477 D(fprintf(stderr, "%*c> setcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
14478 void *invalid_comprehension_var;
14479 if (
14480 (invalid_comprehension_var = invalid_comprehension_rule(p)) // invalid_comprehension
14481 )
14482 {
14483 D(fprintf(stderr, "%*c+ setcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
14484 _res = invalid_comprehension_var;
14485 goto done;
14486 }
14487 p->mark = _mark;
14488 D(fprintf(stderr, "%*c%s setcomp[%d-%d]: %s failed!\n", p->level, ' ',
14489 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_comprehension"));
14490 }
14491 _res = NULL;
14492 done:
14493 D(p->level--);
14494 return _res;
14495}
14496
Pablo Galindoda743502021-04-15 14:06:39 +010014497// dict: '{' double_starred_kvpairs? '}' | '{' invalid_double_starred_kvpairs '}'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014498static expr_ty
14499dict_rule(Parser *p)
14500{
14501 D(p->level++);
14502 if (p->error_indicator) {
14503 D(p->level--);
14504 return NULL;
14505 }
14506 expr_ty _res = NULL;
14507 int _mark = p->mark;
14508 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14509 p->error_indicator = 1;
14510 D(p->level--);
14511 return NULL;
14512 }
14513 int _start_lineno = p->tokens[_mark]->lineno;
14514 UNUSED(_start_lineno); // Only used by EXTRA macro
14515 int _start_col_offset = p->tokens[_mark]->col_offset;
14516 UNUSED(_start_col_offset); // Only used by EXTRA macro
14517 { // '{' double_starred_kvpairs? '}'
14518 if (p->error_indicator) {
14519 D(p->level--);
14520 return NULL;
14521 }
14522 D(fprintf(stderr, "%*c> dict[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' double_starred_kvpairs? '}'"));
14523 Token * _literal;
14524 Token * _literal_1;
14525 void *a;
14526 if (
14527 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
14528 &&
14529 (a = double_starred_kvpairs_rule(p), 1) // double_starred_kvpairs?
14530 &&
14531 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
14532 )
14533 {
14534 D(fprintf(stderr, "%*c+ dict[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' double_starred_kvpairs? '}'"));
14535 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14536 if (_token == NULL) {
14537 D(p->level--);
14538 return NULL;
14539 }
14540 int _end_lineno = _token->end_lineno;
14541 UNUSED(_end_lineno); // Only used by EXTRA macro
14542 int _end_col_offset = _token->end_col_offset;
14543 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014544 _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 +010014545 if (_res == NULL && PyErr_Occurred()) {
14546 p->error_indicator = 1;
14547 D(p->level--);
14548 return NULL;
14549 }
14550 goto done;
14551 }
14552 p->mark = _mark;
14553 D(fprintf(stderr, "%*c%s dict[%d-%d]: %s failed!\n", p->level, ' ',
14554 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' double_starred_kvpairs? '}'"));
14555 }
Pablo Galindoda743502021-04-15 14:06:39 +010014556 { // '{' invalid_double_starred_kvpairs '}'
14557 if (p->error_indicator) {
14558 D(p->level--);
14559 return NULL;
14560 }
14561 D(fprintf(stderr, "%*c> dict[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' invalid_double_starred_kvpairs '}'"));
14562 Token * _literal;
14563 Token * _literal_1;
14564 void *invalid_double_starred_kvpairs_var;
14565 if (
14566 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
14567 &&
14568 (invalid_double_starred_kvpairs_var = invalid_double_starred_kvpairs_rule(p)) // invalid_double_starred_kvpairs
14569 &&
14570 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
14571 )
14572 {
14573 D(fprintf(stderr, "%*c+ dict[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' invalid_double_starred_kvpairs '}'"));
14574 _res = _PyPegen_dummy_name(p, _literal, invalid_double_starred_kvpairs_var, _literal_1);
14575 goto done;
14576 }
14577 p->mark = _mark;
14578 D(fprintf(stderr, "%*c%s dict[%d-%d]: %s failed!\n", p->level, ' ',
14579 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' invalid_double_starred_kvpairs '}'"));
14580 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014581 _res = NULL;
14582 done:
14583 D(p->level--);
14584 return _res;
14585}
14586
14587// dictcomp: '{' kvpair for_if_clauses '}' | invalid_dict_comprehension
14588static expr_ty
14589dictcomp_rule(Parser *p)
14590{
14591 D(p->level++);
14592 if (p->error_indicator) {
14593 D(p->level--);
14594 return NULL;
14595 }
14596 expr_ty _res = NULL;
14597 int _mark = p->mark;
14598 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14599 p->error_indicator = 1;
14600 D(p->level--);
14601 return NULL;
14602 }
14603 int _start_lineno = p->tokens[_mark]->lineno;
14604 UNUSED(_start_lineno); // Only used by EXTRA macro
14605 int _start_col_offset = p->tokens[_mark]->col_offset;
14606 UNUSED(_start_col_offset); // Only used by EXTRA macro
14607 { // '{' kvpair for_if_clauses '}'
14608 if (p->error_indicator) {
14609 D(p->level--);
14610 return NULL;
14611 }
14612 D(fprintf(stderr, "%*c> dictcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' kvpair for_if_clauses '}'"));
14613 Token * _literal;
14614 Token * _literal_1;
14615 KeyValuePair* a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010014616 asdl_comprehension_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014617 if (
14618 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
14619 &&
14620 (a = kvpair_rule(p)) // kvpair
14621 &&
14622 (b = for_if_clauses_rule(p)) // for_if_clauses
14623 &&
14624 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
14625 )
14626 {
14627 D(fprintf(stderr, "%*c+ dictcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' kvpair for_if_clauses '}'"));
14628 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14629 if (_token == NULL) {
14630 D(p->level--);
14631 return NULL;
14632 }
14633 int _end_lineno = _token->end_lineno;
14634 UNUSED(_end_lineno); // Only used by EXTRA macro
14635 int _end_col_offset = _token->end_col_offset;
14636 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014637 _res = _PyAST_DictComp ( a -> key , a -> value , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014638 if (_res == NULL && PyErr_Occurred()) {
14639 p->error_indicator = 1;
14640 D(p->level--);
14641 return NULL;
14642 }
14643 goto done;
14644 }
14645 p->mark = _mark;
14646 D(fprintf(stderr, "%*c%s dictcomp[%d-%d]: %s failed!\n", p->level, ' ',
14647 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' kvpair for_if_clauses '}'"));
14648 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014649 if (p->call_invalid_rules) { // invalid_dict_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014650 if (p->error_indicator) {
14651 D(p->level--);
14652 return NULL;
14653 }
14654 D(fprintf(stderr, "%*c> dictcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_dict_comprehension"));
14655 void *invalid_dict_comprehension_var;
14656 if (
14657 (invalid_dict_comprehension_var = invalid_dict_comprehension_rule(p)) // invalid_dict_comprehension
14658 )
14659 {
14660 D(fprintf(stderr, "%*c+ dictcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_dict_comprehension"));
14661 _res = invalid_dict_comprehension_var;
14662 goto done;
14663 }
14664 p->mark = _mark;
14665 D(fprintf(stderr, "%*c%s dictcomp[%d-%d]: %s failed!\n", p->level, ' ',
14666 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_dict_comprehension"));
14667 }
14668 _res = NULL;
14669 done:
14670 D(p->level--);
14671 return _res;
14672}
14673
14674// double_starred_kvpairs: ','.double_starred_kvpair+ ','?
14675static asdl_seq*
14676double_starred_kvpairs_rule(Parser *p)
14677{
14678 D(p->level++);
14679 if (p->error_indicator) {
14680 D(p->level--);
14681 return NULL;
14682 }
14683 asdl_seq* _res = NULL;
14684 int _mark = p->mark;
14685 { // ','.double_starred_kvpair+ ','?
14686 if (p->error_indicator) {
14687 D(p->level--);
14688 return NULL;
14689 }
14690 D(fprintf(stderr, "%*c> double_starred_kvpairs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.double_starred_kvpair+ ','?"));
14691 void *_opt_var;
14692 UNUSED(_opt_var); // Silence compiler warnings
14693 asdl_seq * a;
14694 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080014695 (a = _gather_117_rule(p)) // ','.double_starred_kvpair+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014696 &&
14697 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
14698 )
14699 {
14700 D(fprintf(stderr, "%*c+ double_starred_kvpairs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.double_starred_kvpair+ ','?"));
14701 _res = a;
14702 if (_res == NULL && PyErr_Occurred()) {
14703 p->error_indicator = 1;
14704 D(p->level--);
14705 return NULL;
14706 }
14707 goto done;
14708 }
14709 p->mark = _mark;
14710 D(fprintf(stderr, "%*c%s double_starred_kvpairs[%d-%d]: %s failed!\n", p->level, ' ',
14711 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.double_starred_kvpair+ ','?"));
14712 }
14713 _res = NULL;
14714 done:
14715 D(p->level--);
14716 return _res;
14717}
14718
14719// double_starred_kvpair: '**' bitwise_or | kvpair
14720static KeyValuePair*
14721double_starred_kvpair_rule(Parser *p)
14722{
14723 D(p->level++);
14724 if (p->error_indicator) {
14725 D(p->level--);
14726 return NULL;
14727 }
14728 KeyValuePair* _res = NULL;
14729 int _mark = p->mark;
14730 { // '**' bitwise_or
14731 if (p->error_indicator) {
14732 D(p->level--);
14733 return NULL;
14734 }
14735 D(fprintf(stderr, "%*c> double_starred_kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' bitwise_or"));
14736 Token * _literal;
14737 expr_ty a;
14738 if (
14739 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
14740 &&
14741 (a = bitwise_or_rule(p)) // bitwise_or
14742 )
14743 {
14744 D(fprintf(stderr, "%*c+ double_starred_kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' bitwise_or"));
14745 _res = _PyPegen_key_value_pair ( p , NULL , a );
14746 if (_res == NULL && PyErr_Occurred()) {
14747 p->error_indicator = 1;
14748 D(p->level--);
14749 return NULL;
14750 }
14751 goto done;
14752 }
14753 p->mark = _mark;
14754 D(fprintf(stderr, "%*c%s double_starred_kvpair[%d-%d]: %s failed!\n", p->level, ' ',
14755 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' bitwise_or"));
14756 }
14757 { // kvpair
14758 if (p->error_indicator) {
14759 D(p->level--);
14760 return NULL;
14761 }
14762 D(fprintf(stderr, "%*c> double_starred_kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kvpair"));
14763 KeyValuePair* kvpair_var;
14764 if (
14765 (kvpair_var = kvpair_rule(p)) // kvpair
14766 )
14767 {
14768 D(fprintf(stderr, "%*c+ double_starred_kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kvpair"));
14769 _res = kvpair_var;
14770 goto done;
14771 }
14772 p->mark = _mark;
14773 D(fprintf(stderr, "%*c%s double_starred_kvpair[%d-%d]: %s failed!\n", p->level, ' ',
14774 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kvpair"));
14775 }
14776 _res = NULL;
14777 done:
14778 D(p->level--);
14779 return _res;
14780}
14781
14782// kvpair: expression ':' expression
14783static KeyValuePair*
14784kvpair_rule(Parser *p)
14785{
14786 D(p->level++);
14787 if (p->error_indicator) {
14788 D(p->level--);
14789 return NULL;
14790 }
14791 KeyValuePair* _res = NULL;
14792 int _mark = p->mark;
14793 { // expression ':' expression
14794 if (p->error_indicator) {
14795 D(p->level--);
14796 return NULL;
14797 }
14798 D(fprintf(stderr, "%*c> kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' expression"));
14799 Token * _literal;
14800 expr_ty a;
14801 expr_ty b;
14802 if (
14803 (a = expression_rule(p)) // expression
14804 &&
14805 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
14806 &&
14807 (b = expression_rule(p)) // expression
14808 )
14809 {
14810 D(fprintf(stderr, "%*c+ kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':' expression"));
14811 _res = _PyPegen_key_value_pair ( p , a , b );
14812 if (_res == NULL && PyErr_Occurred()) {
14813 p->error_indicator = 1;
14814 D(p->level--);
14815 return NULL;
14816 }
14817 goto done;
14818 }
14819 p->mark = _mark;
14820 D(fprintf(stderr, "%*c%s kvpair[%d-%d]: %s failed!\n", p->level, ' ',
14821 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' expression"));
14822 }
14823 _res = NULL;
14824 done:
14825 D(p->level--);
14826 return _res;
14827}
14828
14829// for_if_clauses: for_if_clause+
Pablo Galindoa5634c42020-09-16 19:42:00 +010014830static asdl_comprehension_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014831for_if_clauses_rule(Parser *p)
14832{
14833 D(p->level++);
14834 if (p->error_indicator) {
14835 D(p->level--);
14836 return NULL;
14837 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010014838 asdl_comprehension_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014839 int _mark = p->mark;
14840 { // for_if_clause+
14841 if (p->error_indicator) {
14842 D(p->level--);
14843 return NULL;
14844 }
14845 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 +010014846 asdl_comprehension_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014847 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080014848 (a = (asdl_comprehension_seq*)_loop1_119_rule(p)) // for_if_clause+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014849 )
14850 {
14851 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 +010014852 _res = a;
14853 if (_res == NULL && PyErr_Occurred()) {
14854 p->error_indicator = 1;
14855 D(p->level--);
14856 return NULL;
14857 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014858 goto done;
14859 }
14860 p->mark = _mark;
14861 D(fprintf(stderr, "%*c%s for_if_clauses[%d-%d]: %s failed!\n", p->level, ' ',
14862 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "for_if_clause+"));
14863 }
14864 _res = NULL;
14865 done:
14866 D(p->level--);
14867 return _res;
14868}
14869
14870// for_if_clause:
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030014871// | ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
14872// | 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
14873// | invalid_for_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014874static comprehension_ty
14875for_if_clause_rule(Parser *p)
14876{
14877 D(p->level++);
14878 if (p->error_indicator) {
14879 D(p->level--);
14880 return NULL;
14881 }
14882 comprehension_ty _res = NULL;
14883 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030014884 { // ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014885 if (p->error_indicator) {
14886 D(p->level--);
14887 return NULL;
14888 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030014889 D(fprintf(stderr, "%*c> for_if_clause[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
14890 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014891 Token * _keyword;
14892 Token * _keyword_1;
14893 expr_ty a;
14894 Token * async_var;
14895 expr_ty b;
Pablo Galindoa5634c42020-09-16 19:42:00 +010014896 asdl_expr_seq* c;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014897 if (
14898 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
14899 &&
14900 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
14901 &&
14902 (a = star_targets_rule(p)) // star_targets
14903 &&
14904 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
14905 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030014906 (_cut_var = 1)
14907 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014908 (b = disjunction_rule(p)) // disjunction
14909 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080014910 (c = (asdl_expr_seq*)_loop0_120_rule(p)) // (('if' disjunction))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014911 )
14912 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030014913 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 +020014914 _res = CHECK_VERSION ( comprehension_ty , 6 , "Async comprehensions are" , _PyAST_comprehension ( a , b , c , 1 , p -> arena ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014915 if (_res == NULL && PyErr_Occurred()) {
14916 p->error_indicator = 1;
14917 D(p->level--);
14918 return NULL;
14919 }
14920 goto done;
14921 }
14922 p->mark = _mark;
14923 D(fprintf(stderr, "%*c%s for_if_clause[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030014924 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
14925 if (_cut_var) {
14926 D(p->level--);
14927 return NULL;
14928 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014929 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030014930 { // 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014931 if (p->error_indicator) {
14932 D(p->level--);
14933 return NULL;
14934 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030014935 D(fprintf(stderr, "%*c> for_if_clause[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
14936 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014937 Token * _keyword;
14938 Token * _keyword_1;
14939 expr_ty a;
14940 expr_ty b;
Pablo Galindoa5634c42020-09-16 19:42:00 +010014941 asdl_expr_seq* c;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014942 if (
14943 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
14944 &&
14945 (a = star_targets_rule(p)) // star_targets
14946 &&
14947 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
14948 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030014949 (_cut_var = 1)
14950 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014951 (b = disjunction_rule(p)) // disjunction
14952 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080014953 (c = (asdl_expr_seq*)_loop0_121_rule(p)) // (('if' disjunction))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014954 )
14955 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030014956 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 +020014957 _res = _PyAST_comprehension ( a , b , c , 0 , p -> arena );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014958 if (_res == NULL && PyErr_Occurred()) {
14959 p->error_indicator = 1;
14960 D(p->level--);
14961 return NULL;
14962 }
14963 goto done;
14964 }
14965 p->mark = _mark;
14966 D(fprintf(stderr, "%*c%s for_if_clause[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030014967 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
14968 if (_cut_var) {
14969 D(p->level--);
14970 return NULL;
14971 }
14972 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014973 if (p->call_invalid_rules) { // invalid_for_target
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030014974 if (p->error_indicator) {
14975 D(p->level--);
14976 return NULL;
14977 }
14978 D(fprintf(stderr, "%*c> for_if_clause[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
14979 void *invalid_for_target_var;
14980 if (
14981 (invalid_for_target_var = invalid_for_target_rule(p)) // invalid_for_target
14982 )
14983 {
14984 D(fprintf(stderr, "%*c+ for_if_clause[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
14985 _res = invalid_for_target_var;
14986 goto done;
14987 }
14988 p->mark = _mark;
14989 D(fprintf(stderr, "%*c%s for_if_clause[%d-%d]: %s failed!\n", p->level, ' ',
14990 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_for_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014991 }
14992 _res = NULL;
14993 done:
14994 D(p->level--);
14995 return _res;
14996}
14997
14998// yield_expr: 'yield' 'from' expression | 'yield' star_expressions?
14999static expr_ty
15000yield_expr_rule(Parser *p)
15001{
15002 D(p->level++);
15003 if (p->error_indicator) {
15004 D(p->level--);
15005 return NULL;
15006 }
15007 expr_ty _res = NULL;
15008 int _mark = p->mark;
15009 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
15010 p->error_indicator = 1;
15011 D(p->level--);
15012 return NULL;
15013 }
15014 int _start_lineno = p->tokens[_mark]->lineno;
15015 UNUSED(_start_lineno); // Only used by EXTRA macro
15016 int _start_col_offset = p->tokens[_mark]->col_offset;
15017 UNUSED(_start_col_offset); // Only used by EXTRA macro
15018 { // 'yield' 'from' expression
15019 if (p->error_indicator) {
15020 D(p->level--);
15021 return NULL;
15022 }
15023 D(fprintf(stderr, "%*c> yield_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'yield' 'from' expression"));
15024 Token * _keyword;
15025 Token * _keyword_1;
15026 expr_ty a;
15027 if (
15028 (_keyword = _PyPegen_expect_token(p, 504)) // token='yield'
15029 &&
15030 (_keyword_1 = _PyPegen_expect_token(p, 514)) // token='from'
15031 &&
15032 (a = expression_rule(p)) // expression
15033 )
15034 {
15035 D(fprintf(stderr, "%*c+ yield_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'yield' 'from' expression"));
15036 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15037 if (_token == NULL) {
15038 D(p->level--);
15039 return NULL;
15040 }
15041 int _end_lineno = _token->end_lineno;
15042 UNUSED(_end_lineno); // Only used by EXTRA macro
15043 int _end_col_offset = _token->end_col_offset;
15044 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015045 _res = _PyAST_YieldFrom ( a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015046 if (_res == NULL && PyErr_Occurred()) {
15047 p->error_indicator = 1;
15048 D(p->level--);
15049 return NULL;
15050 }
15051 goto done;
15052 }
15053 p->mark = _mark;
15054 D(fprintf(stderr, "%*c%s yield_expr[%d-%d]: %s failed!\n", p->level, ' ',
15055 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'yield' 'from' expression"));
15056 }
15057 { // 'yield' star_expressions?
15058 if (p->error_indicator) {
15059 D(p->level--);
15060 return NULL;
15061 }
15062 D(fprintf(stderr, "%*c> yield_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'yield' star_expressions?"));
15063 Token * _keyword;
15064 void *a;
15065 if (
15066 (_keyword = _PyPegen_expect_token(p, 504)) // token='yield'
15067 &&
15068 (a = star_expressions_rule(p), 1) // star_expressions?
15069 )
15070 {
15071 D(fprintf(stderr, "%*c+ yield_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'yield' star_expressions?"));
15072 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15073 if (_token == NULL) {
15074 D(p->level--);
15075 return NULL;
15076 }
15077 int _end_lineno = _token->end_lineno;
15078 UNUSED(_end_lineno); // Only used by EXTRA macro
15079 int _end_col_offset = _token->end_col_offset;
15080 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015081 _res = _PyAST_Yield ( a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015082 if (_res == NULL && PyErr_Occurred()) {
15083 p->error_indicator = 1;
15084 D(p->level--);
15085 return NULL;
15086 }
15087 goto done;
15088 }
15089 p->mark = _mark;
15090 D(fprintf(stderr, "%*c%s yield_expr[%d-%d]: %s failed!\n", p->level, ' ',
15091 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'yield' star_expressions?"));
15092 }
15093 _res = NULL;
15094 done:
15095 D(p->level--);
15096 return _res;
15097}
15098
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020015099// arguments: args ','? &')' | invalid_arguments
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015100static expr_ty
15101arguments_rule(Parser *p)
15102{
15103 D(p->level++);
15104 if (p->error_indicator) {
15105 D(p->level--);
15106 return NULL;
15107 }
15108 expr_ty _res = NULL;
15109 if (_PyPegen_is_memoized(p, arguments_type, &_res)) {
15110 D(p->level--);
15111 return _res;
15112 }
15113 int _mark = p->mark;
15114 { // args ','? &')'
15115 if (p->error_indicator) {
15116 D(p->level--);
15117 return NULL;
15118 }
15119 D(fprintf(stderr, "%*c> arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args ','? &')'"));
15120 void *_opt_var;
15121 UNUSED(_opt_var); // Silence compiler warnings
15122 expr_ty a;
15123 if (
15124 (a = args_rule(p)) // args
15125 &&
15126 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
15127 &&
15128 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
15129 )
15130 {
15131 D(fprintf(stderr, "%*c+ arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args ','? &')'"));
15132 _res = a;
15133 if (_res == NULL && PyErr_Occurred()) {
15134 p->error_indicator = 1;
15135 D(p->level--);
15136 return NULL;
15137 }
15138 goto done;
15139 }
15140 p->mark = _mark;
15141 D(fprintf(stderr, "%*c%s arguments[%d-%d]: %s failed!\n", p->level, ' ',
15142 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ','? &')'"));
15143 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020015144 if (p->call_invalid_rules) { // invalid_arguments
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015145 if (p->error_indicator) {
15146 D(p->level--);
15147 return NULL;
15148 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020015149 D(fprintf(stderr, "%*c> arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_arguments"));
15150 void *invalid_arguments_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015151 if (
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020015152 (invalid_arguments_var = invalid_arguments_rule(p)) // invalid_arguments
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015153 )
15154 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020015155 D(fprintf(stderr, "%*c+ arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_arguments"));
15156 _res = invalid_arguments_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015157 goto done;
15158 }
15159 p->mark = _mark;
15160 D(fprintf(stderr, "%*c%s arguments[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020015161 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_arguments"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015162 }
15163 _res = NULL;
15164 done:
15165 _PyPegen_insert_memo(p, _mark, arguments_type, _res);
15166 D(p->level--);
15167 return _res;
15168}
15169
Pablo Galindod9151cb2021-04-13 02:32:33 +010015170// args: ','.(starred_expression | direct_named_expression !'=')+ [',' kwargs] | kwargs
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015171static expr_ty
15172args_rule(Parser *p)
15173{
15174 D(p->level++);
15175 if (p->error_indicator) {
15176 D(p->level--);
15177 return NULL;
15178 }
15179 expr_ty _res = NULL;
15180 int _mark = p->mark;
15181 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
15182 p->error_indicator = 1;
15183 D(p->level--);
15184 return NULL;
15185 }
15186 int _start_lineno = p->tokens[_mark]->lineno;
15187 UNUSED(_start_lineno); // Only used by EXTRA macro
15188 int _start_col_offset = p->tokens[_mark]->col_offset;
15189 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindod9151cb2021-04-13 02:32:33 +010015190 { // ','.(starred_expression | direct_named_expression !'=')+ [',' kwargs]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015191 if (p->error_indicator) {
15192 D(p->level--);
15193 return NULL;
15194 }
Pablo Galindod9151cb2021-04-13 02:32:33 +010015195 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 +010015196 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015197 void *b;
15198 if (
Pablo Galindod9151cb2021-04-13 02:32:33 +010015199 (a = (asdl_expr_seq*)_gather_122_rule(p)) // ','.(starred_expression | direct_named_expression !'=')+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015200 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080015201 (b = _tmp_124_rule(p), 1) // [',' kwargs]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015202 )
15203 {
Pablo Galindod9151cb2021-04-13 02:32:33 +010015204 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 +010015205 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15206 if (_token == NULL) {
15207 D(p->level--);
15208 return NULL;
15209 }
15210 int _end_lineno = _token->end_lineno;
15211 UNUSED(_end_lineno); // Only used by EXTRA macro
15212 int _end_col_offset = _token->end_col_offset;
15213 UNUSED(_end_col_offset); // Only used by EXTRA macro
15214 _res = _PyPegen_collect_call_seqs ( p , a , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015215 if (_res == NULL && PyErr_Occurred()) {
15216 p->error_indicator = 1;
15217 D(p->level--);
15218 return NULL;
15219 }
15220 goto done;
15221 }
15222 p->mark = _mark;
15223 D(fprintf(stderr, "%*c%s args[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindod9151cb2021-04-13 02:32:33 +010015224 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.(starred_expression | direct_named_expression !'=')+ [',' kwargs]"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015225 }
15226 { // kwargs
15227 if (p->error_indicator) {
15228 D(p->level--);
15229 return NULL;
15230 }
15231 D(fprintf(stderr, "%*c> args[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwargs"));
15232 asdl_seq* a;
15233 if (
15234 (a = kwargs_rule(p)) // kwargs
15235 )
15236 {
15237 D(fprintf(stderr, "%*c+ args[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwargs"));
15238 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15239 if (_token == NULL) {
15240 D(p->level--);
15241 return NULL;
15242 }
15243 int _end_lineno = _token->end_lineno;
15244 UNUSED(_end_lineno); // Only used by EXTRA macro
15245 int _end_col_offset = _token->end_col_offset;
15246 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015247 _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 +010015248 if (_res == NULL && PyErr_Occurred()) {
15249 p->error_indicator = 1;
15250 D(p->level--);
15251 return NULL;
15252 }
15253 goto done;
15254 }
15255 p->mark = _mark;
15256 D(fprintf(stderr, "%*c%s args[%d-%d]: %s failed!\n", p->level, ' ',
15257 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwargs"));
15258 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015259 _res = NULL;
15260 done:
15261 D(p->level--);
15262 return _res;
15263}
15264
15265// kwargs:
15266// | ','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+
15267// | ','.kwarg_or_starred+
15268// | ','.kwarg_or_double_starred+
15269static asdl_seq*
15270kwargs_rule(Parser *p)
15271{
15272 D(p->level++);
15273 if (p->error_indicator) {
15274 D(p->level--);
15275 return NULL;
15276 }
15277 asdl_seq* _res = NULL;
15278 int _mark = p->mark;
15279 { // ','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+
15280 if (p->error_indicator) {
15281 D(p->level--);
15282 return NULL;
15283 }
15284 D(fprintf(stderr, "%*c> kwargs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+"));
15285 Token * _literal;
15286 asdl_seq * a;
15287 asdl_seq * b;
15288 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080015289 (a = _gather_125_rule(p)) // ','.kwarg_or_starred+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015290 &&
15291 (_literal = _PyPegen_expect_token(p, 12)) // token=','
15292 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080015293 (b = _gather_127_rule(p)) // ','.kwarg_or_double_starred+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015294 )
15295 {
15296 D(fprintf(stderr, "%*c+ kwargs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+"));
15297 _res = _PyPegen_join_sequences ( p , a , b );
15298 if (_res == NULL && PyErr_Occurred()) {
15299 p->error_indicator = 1;
15300 D(p->level--);
15301 return NULL;
15302 }
15303 goto done;
15304 }
15305 p->mark = _mark;
15306 D(fprintf(stderr, "%*c%s kwargs[%d-%d]: %s failed!\n", p->level, ' ',
15307 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+"));
15308 }
15309 { // ','.kwarg_or_starred+
15310 if (p->error_indicator) {
15311 D(p->level--);
15312 return NULL;
15313 }
15314 D(fprintf(stderr, "%*c> kwargs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_starred+"));
Brandt Bucher145bf262021-02-26 14:51:55 -080015315 asdl_seq * _gather_129_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015316 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080015317 (_gather_129_var = _gather_129_rule(p)) // ','.kwarg_or_starred+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015318 )
15319 {
15320 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 -080015321 _res = _gather_129_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015322 goto done;
15323 }
15324 p->mark = _mark;
15325 D(fprintf(stderr, "%*c%s kwargs[%d-%d]: %s failed!\n", p->level, ' ',
15326 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.kwarg_or_starred+"));
15327 }
15328 { // ','.kwarg_or_double_starred+
15329 if (p->error_indicator) {
15330 D(p->level--);
15331 return NULL;
15332 }
15333 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 -080015334 asdl_seq * _gather_131_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015335 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080015336 (_gather_131_var = _gather_131_rule(p)) // ','.kwarg_or_double_starred+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015337 )
15338 {
15339 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 -080015340 _res = _gather_131_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015341 goto done;
15342 }
15343 p->mark = _mark;
15344 D(fprintf(stderr, "%*c%s kwargs[%d-%d]: %s failed!\n", p->level, ' ',
15345 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.kwarg_or_double_starred+"));
15346 }
15347 _res = NULL;
15348 done:
15349 D(p->level--);
15350 return _res;
15351}
15352
15353// starred_expression: '*' expression
15354static expr_ty
15355starred_expression_rule(Parser *p)
15356{
15357 D(p->level++);
15358 if (p->error_indicator) {
15359 D(p->level--);
15360 return NULL;
15361 }
15362 expr_ty _res = NULL;
15363 int _mark = p->mark;
15364 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
15365 p->error_indicator = 1;
15366 D(p->level--);
15367 return NULL;
15368 }
15369 int _start_lineno = p->tokens[_mark]->lineno;
15370 UNUSED(_start_lineno); // Only used by EXTRA macro
15371 int _start_col_offset = p->tokens[_mark]->col_offset;
15372 UNUSED(_start_col_offset); // Only used by EXTRA macro
15373 { // '*' expression
15374 if (p->error_indicator) {
15375 D(p->level--);
15376 return NULL;
15377 }
15378 D(fprintf(stderr, "%*c> starred_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' expression"));
15379 Token * _literal;
15380 expr_ty a;
15381 if (
15382 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
15383 &&
15384 (a = expression_rule(p)) // expression
15385 )
15386 {
15387 D(fprintf(stderr, "%*c+ starred_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' expression"));
15388 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15389 if (_token == NULL) {
15390 D(p->level--);
15391 return NULL;
15392 }
15393 int _end_lineno = _token->end_lineno;
15394 UNUSED(_end_lineno); // Only used by EXTRA macro
15395 int _end_col_offset = _token->end_col_offset;
15396 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015397 _res = _PyAST_Starred ( a , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015398 if (_res == NULL && PyErr_Occurred()) {
15399 p->error_indicator = 1;
15400 D(p->level--);
15401 return NULL;
15402 }
15403 goto done;
15404 }
15405 p->mark = _mark;
15406 D(fprintf(stderr, "%*c%s starred_expression[%d-%d]: %s failed!\n", p->level, ' ',
15407 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' expression"));
15408 }
15409 _res = NULL;
15410 done:
15411 D(p->level--);
15412 return _res;
15413}
15414
15415// kwarg_or_starred: NAME '=' expression | starred_expression | invalid_kwarg
15416static KeywordOrStarred*
15417kwarg_or_starred_rule(Parser *p)
15418{
15419 D(p->level++);
15420 if (p->error_indicator) {
15421 D(p->level--);
15422 return NULL;
15423 }
15424 KeywordOrStarred* _res = NULL;
15425 int _mark = p->mark;
15426 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
15427 p->error_indicator = 1;
15428 D(p->level--);
15429 return NULL;
15430 }
15431 int _start_lineno = p->tokens[_mark]->lineno;
15432 UNUSED(_start_lineno); // Only used by EXTRA macro
15433 int _start_col_offset = p->tokens[_mark]->col_offset;
15434 UNUSED(_start_col_offset); // Only used by EXTRA macro
15435 { // NAME '=' expression
15436 if (p->error_indicator) {
15437 D(p->level--);
15438 return NULL;
15439 }
15440 D(fprintf(stderr, "%*c> kwarg_or_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '=' expression"));
15441 Token * _literal;
15442 expr_ty a;
15443 expr_ty b;
15444 if (
15445 (a = _PyPegen_name_token(p)) // NAME
15446 &&
15447 (_literal = _PyPegen_expect_token(p, 22)) // token='='
15448 &&
15449 (b = expression_rule(p)) // expression
15450 )
15451 {
15452 D(fprintf(stderr, "%*c+ kwarg_or_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '=' expression"));
15453 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15454 if (_token == NULL) {
15455 D(p->level--);
15456 return NULL;
15457 }
15458 int _end_lineno = _token->end_lineno;
15459 UNUSED(_end_lineno); // Only used by EXTRA macro
15460 int _end_col_offset = _token->end_col_offset;
15461 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015462 _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 +010015463 if (_res == NULL && PyErr_Occurred()) {
15464 p->error_indicator = 1;
15465 D(p->level--);
15466 return NULL;
15467 }
15468 goto done;
15469 }
15470 p->mark = _mark;
15471 D(fprintf(stderr, "%*c%s kwarg_or_starred[%d-%d]: %s failed!\n", p->level, ' ',
15472 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' expression"));
15473 }
15474 { // starred_expression
15475 if (p->error_indicator) {
15476 D(p->level--);
15477 return NULL;
15478 }
15479 D(fprintf(stderr, "%*c> kwarg_or_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "starred_expression"));
15480 expr_ty a;
15481 if (
15482 (a = starred_expression_rule(p)) // starred_expression
15483 )
15484 {
15485 D(fprintf(stderr, "%*c+ kwarg_or_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "starred_expression"));
15486 _res = _PyPegen_keyword_or_starred ( p , a , 0 );
15487 if (_res == NULL && PyErr_Occurred()) {
15488 p->error_indicator = 1;
15489 D(p->level--);
15490 return NULL;
15491 }
15492 goto done;
15493 }
15494 p->mark = _mark;
15495 D(fprintf(stderr, "%*c%s kwarg_or_starred[%d-%d]: %s failed!\n", p->level, ' ',
15496 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "starred_expression"));
15497 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020015498 if (p->call_invalid_rules) { // invalid_kwarg
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015499 if (p->error_indicator) {
15500 D(p->level--);
15501 return NULL;
15502 }
15503 D(fprintf(stderr, "%*c> kwarg_or_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_kwarg"));
15504 void *invalid_kwarg_var;
15505 if (
15506 (invalid_kwarg_var = invalid_kwarg_rule(p)) // invalid_kwarg
15507 )
15508 {
15509 D(fprintf(stderr, "%*c+ kwarg_or_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_kwarg"));
15510 _res = invalid_kwarg_var;
15511 goto done;
15512 }
15513 p->mark = _mark;
15514 D(fprintf(stderr, "%*c%s kwarg_or_starred[%d-%d]: %s failed!\n", p->level, ' ',
15515 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_kwarg"));
15516 }
15517 _res = NULL;
15518 done:
15519 D(p->level--);
15520 return _res;
15521}
15522
15523// kwarg_or_double_starred: NAME '=' expression | '**' expression | invalid_kwarg
15524static KeywordOrStarred*
15525kwarg_or_double_starred_rule(Parser *p)
15526{
15527 D(p->level++);
15528 if (p->error_indicator) {
15529 D(p->level--);
15530 return NULL;
15531 }
15532 KeywordOrStarred* _res = NULL;
15533 int _mark = p->mark;
15534 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
15535 p->error_indicator = 1;
15536 D(p->level--);
15537 return NULL;
15538 }
15539 int _start_lineno = p->tokens[_mark]->lineno;
15540 UNUSED(_start_lineno); // Only used by EXTRA macro
15541 int _start_col_offset = p->tokens[_mark]->col_offset;
15542 UNUSED(_start_col_offset); // Only used by EXTRA macro
15543 { // NAME '=' expression
15544 if (p->error_indicator) {
15545 D(p->level--);
15546 return NULL;
15547 }
15548 D(fprintf(stderr, "%*c> kwarg_or_double_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '=' expression"));
15549 Token * _literal;
15550 expr_ty a;
15551 expr_ty b;
15552 if (
15553 (a = _PyPegen_name_token(p)) // NAME
15554 &&
15555 (_literal = _PyPegen_expect_token(p, 22)) // token='='
15556 &&
15557 (b = expression_rule(p)) // expression
15558 )
15559 {
15560 D(fprintf(stderr, "%*c+ kwarg_or_double_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '=' expression"));
15561 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15562 if (_token == NULL) {
15563 D(p->level--);
15564 return NULL;
15565 }
15566 int _end_lineno = _token->end_lineno;
15567 UNUSED(_end_lineno); // Only used by EXTRA macro
15568 int _end_col_offset = _token->end_col_offset;
15569 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015570 _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 +010015571 if (_res == NULL && PyErr_Occurred()) {
15572 p->error_indicator = 1;
15573 D(p->level--);
15574 return NULL;
15575 }
15576 goto done;
15577 }
15578 p->mark = _mark;
15579 D(fprintf(stderr, "%*c%s kwarg_or_double_starred[%d-%d]: %s failed!\n", p->level, ' ',
15580 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' expression"));
15581 }
15582 { // '**' expression
15583 if (p->error_indicator) {
15584 D(p->level--);
15585 return NULL;
15586 }
15587 D(fprintf(stderr, "%*c> kwarg_or_double_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' expression"));
15588 Token * _literal;
15589 expr_ty a;
15590 if (
15591 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
15592 &&
15593 (a = expression_rule(p)) // expression
15594 )
15595 {
15596 D(fprintf(stderr, "%*c+ kwarg_or_double_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' expression"));
15597 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15598 if (_token == NULL) {
15599 D(p->level--);
15600 return NULL;
15601 }
15602 int _end_lineno = _token->end_lineno;
15603 UNUSED(_end_lineno); // Only used by EXTRA macro
15604 int _end_col_offset = _token->end_col_offset;
15605 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015606 _res = _PyPegen_keyword_or_starred ( p , CHECK ( keyword_ty , _PyAST_keyword ( NULL , a , EXTRA ) ) , 1 );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015607 if (_res == NULL && PyErr_Occurred()) {
15608 p->error_indicator = 1;
15609 D(p->level--);
15610 return NULL;
15611 }
15612 goto done;
15613 }
15614 p->mark = _mark;
15615 D(fprintf(stderr, "%*c%s kwarg_or_double_starred[%d-%d]: %s failed!\n", p->level, ' ',
15616 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' expression"));
15617 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020015618 if (p->call_invalid_rules) { // invalid_kwarg
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015619 if (p->error_indicator) {
15620 D(p->level--);
15621 return NULL;
15622 }
15623 D(fprintf(stderr, "%*c> kwarg_or_double_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_kwarg"));
15624 void *invalid_kwarg_var;
15625 if (
15626 (invalid_kwarg_var = invalid_kwarg_rule(p)) // invalid_kwarg
15627 )
15628 {
15629 D(fprintf(stderr, "%*c+ kwarg_or_double_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_kwarg"));
15630 _res = invalid_kwarg_var;
15631 goto done;
15632 }
15633 p->mark = _mark;
15634 D(fprintf(stderr, "%*c%s kwarg_or_double_starred[%d-%d]: %s failed!\n", p->level, ' ',
15635 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_kwarg"));
15636 }
15637 _res = NULL;
15638 done:
15639 D(p->level--);
15640 return _res;
15641}
15642
15643// star_targets: star_target !',' | star_target ((',' star_target))* ','?
15644static expr_ty
15645star_targets_rule(Parser *p)
15646{
15647 D(p->level++);
15648 if (p->error_indicator) {
15649 D(p->level--);
15650 return NULL;
15651 }
15652 expr_ty _res = NULL;
15653 int _mark = p->mark;
15654 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
15655 p->error_indicator = 1;
15656 D(p->level--);
15657 return NULL;
15658 }
15659 int _start_lineno = p->tokens[_mark]->lineno;
15660 UNUSED(_start_lineno); // Only used by EXTRA macro
15661 int _start_col_offset = p->tokens[_mark]->col_offset;
15662 UNUSED(_start_col_offset); // Only used by EXTRA macro
15663 { // star_target !','
15664 if (p->error_indicator) {
15665 D(p->level--);
15666 return NULL;
15667 }
15668 D(fprintf(stderr, "%*c> star_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target !','"));
15669 expr_ty a;
15670 if (
15671 (a = star_target_rule(p)) // star_target
15672 &&
15673 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 12) // token=','
15674 )
15675 {
15676 D(fprintf(stderr, "%*c+ star_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target !','"));
15677 _res = a;
15678 if (_res == NULL && PyErr_Occurred()) {
15679 p->error_indicator = 1;
15680 D(p->level--);
15681 return NULL;
15682 }
15683 goto done;
15684 }
15685 p->mark = _mark;
15686 D(fprintf(stderr, "%*c%s star_targets[%d-%d]: %s failed!\n", p->level, ' ',
15687 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target !','"));
15688 }
15689 { // star_target ((',' star_target))* ','?
15690 if (p->error_indicator) {
15691 D(p->level--);
15692 return NULL;
15693 }
15694 D(fprintf(stderr, "%*c> star_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target ((',' star_target))* ','?"));
15695 void *_opt_var;
15696 UNUSED(_opt_var); // Silence compiler warnings
15697 expr_ty a;
15698 asdl_seq * b;
15699 if (
15700 (a = star_target_rule(p)) // star_target
15701 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080015702 (b = _loop0_133_rule(p)) // ((',' star_target))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015703 &&
15704 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
15705 )
15706 {
15707 D(fprintf(stderr, "%*c+ star_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target ((',' star_target))* ','?"));
15708 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15709 if (_token == NULL) {
15710 D(p->level--);
15711 return NULL;
15712 }
15713 int _end_lineno = _token->end_lineno;
15714 UNUSED(_end_lineno); // Only used by EXTRA macro
15715 int _end_col_offset = _token->end_col_offset;
15716 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015717 _res = _PyAST_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , a , b ) ) , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015718 if (_res == NULL && PyErr_Occurred()) {
15719 p->error_indicator = 1;
15720 D(p->level--);
15721 return NULL;
15722 }
15723 goto done;
15724 }
15725 p->mark = _mark;
15726 D(fprintf(stderr, "%*c%s star_targets[%d-%d]: %s failed!\n", p->level, ' ',
15727 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target ((',' star_target))* ','?"));
15728 }
15729 _res = NULL;
15730 done:
15731 D(p->level--);
15732 return _res;
15733}
15734
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015735// star_targets_list_seq: ','.star_target+ ','?
Pablo Galindoa5634c42020-09-16 19:42:00 +010015736static asdl_expr_seq*
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015737star_targets_list_seq_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015738{
15739 D(p->level++);
15740 if (p->error_indicator) {
15741 D(p->level--);
15742 return NULL;
15743 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010015744 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015745 int _mark = p->mark;
15746 { // ','.star_target+ ','?
15747 if (p->error_indicator) {
15748 D(p->level--);
15749 return NULL;
15750 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015751 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 +010015752 void *_opt_var;
15753 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +010015754 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015755 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080015756 (a = (asdl_expr_seq*)_gather_134_rule(p)) // ','.star_target+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015757 &&
15758 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
15759 )
15760 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015761 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 +010015762 _res = a;
15763 if (_res == NULL && PyErr_Occurred()) {
15764 p->error_indicator = 1;
15765 D(p->level--);
15766 return NULL;
15767 }
15768 goto done;
15769 }
15770 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015771 D(fprintf(stderr, "%*c%s star_targets_list_seq[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015772 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.star_target+ ','?"));
15773 }
15774 _res = NULL;
15775 done:
15776 D(p->level--);
15777 return _res;
15778}
15779
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015780// star_targets_tuple_seq: star_target ((',' star_target))+ ','? | star_target ','
15781static asdl_expr_seq*
15782star_targets_tuple_seq_rule(Parser *p)
15783{
15784 D(p->level++);
15785 if (p->error_indicator) {
15786 D(p->level--);
15787 return NULL;
15788 }
15789 asdl_expr_seq* _res = NULL;
15790 int _mark = p->mark;
15791 { // star_target ((',' star_target))+ ','?
15792 if (p->error_indicator) {
15793 D(p->level--);
15794 return NULL;
15795 }
15796 D(fprintf(stderr, "%*c> star_targets_tuple_seq[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target ((',' star_target))+ ','?"));
15797 void *_opt_var;
15798 UNUSED(_opt_var); // Silence compiler warnings
15799 expr_ty a;
15800 asdl_seq * b;
15801 if (
15802 (a = star_target_rule(p)) // star_target
15803 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080015804 (b = _loop1_136_rule(p)) // ((',' star_target))+
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015805 &&
15806 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
15807 )
15808 {
15809 D(fprintf(stderr, "%*c+ star_targets_tuple_seq[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target ((',' star_target))+ ','?"));
15810 _res = ( asdl_expr_seq * ) _PyPegen_seq_insert_in_front ( p , a , b );
15811 if (_res == NULL && PyErr_Occurred()) {
15812 p->error_indicator = 1;
15813 D(p->level--);
15814 return NULL;
15815 }
15816 goto done;
15817 }
15818 p->mark = _mark;
15819 D(fprintf(stderr, "%*c%s star_targets_tuple_seq[%d-%d]: %s failed!\n", p->level, ' ',
15820 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target ((',' star_target))+ ','?"));
15821 }
15822 { // star_target ','
15823 if (p->error_indicator) {
15824 D(p->level--);
15825 return NULL;
15826 }
15827 D(fprintf(stderr, "%*c> star_targets_tuple_seq[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target ','"));
15828 Token * _literal;
15829 expr_ty a;
15830 if (
15831 (a = star_target_rule(p)) // star_target
15832 &&
15833 (_literal = _PyPegen_expect_token(p, 12)) // token=','
15834 )
15835 {
15836 D(fprintf(stderr, "%*c+ star_targets_tuple_seq[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target ','"));
15837 _res = ( asdl_expr_seq * ) _PyPegen_singleton_seq ( p , a );
15838 if (_res == NULL && PyErr_Occurred()) {
15839 p->error_indicator = 1;
15840 D(p->level--);
15841 return NULL;
15842 }
15843 goto done;
15844 }
15845 p->mark = _mark;
15846 D(fprintf(stderr, "%*c%s star_targets_tuple_seq[%d-%d]: %s failed!\n", p->level, ' ',
15847 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target ','"));
15848 }
15849 _res = NULL;
15850 done:
15851 D(p->level--);
15852 return _res;
15853}
15854
15855// star_target: '*' (!'*' star_target) | target_with_star_atom
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015856static expr_ty
15857star_target_rule(Parser *p)
15858{
15859 D(p->level++);
15860 if (p->error_indicator) {
15861 D(p->level--);
15862 return NULL;
15863 }
15864 expr_ty _res = NULL;
15865 if (_PyPegen_is_memoized(p, star_target_type, &_res)) {
15866 D(p->level--);
15867 return _res;
15868 }
15869 int _mark = p->mark;
15870 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
15871 p->error_indicator = 1;
15872 D(p->level--);
15873 return NULL;
15874 }
15875 int _start_lineno = p->tokens[_mark]->lineno;
15876 UNUSED(_start_lineno); // Only used by EXTRA macro
15877 int _start_col_offset = p->tokens[_mark]->col_offset;
15878 UNUSED(_start_col_offset); // Only used by EXTRA macro
15879 { // '*' (!'*' star_target)
15880 if (p->error_indicator) {
15881 D(p->level--);
15882 return NULL;
15883 }
15884 D(fprintf(stderr, "%*c> star_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (!'*' star_target)"));
15885 Token * _literal;
15886 void *a;
15887 if (
15888 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
15889 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080015890 (a = _tmp_137_rule(p)) // !'*' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015891 )
15892 {
15893 D(fprintf(stderr, "%*c+ star_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (!'*' star_target)"));
15894 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15895 if (_token == NULL) {
15896 D(p->level--);
15897 return NULL;
15898 }
15899 int _end_lineno = _token->end_lineno;
15900 UNUSED(_end_lineno); // Only used by EXTRA macro
15901 int _end_col_offset = _token->end_col_offset;
15902 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015903 _res = _PyAST_Starred ( CHECK ( expr_ty , _PyPegen_set_expr_context ( p , a , Store ) ) , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015904 if (_res == NULL && PyErr_Occurred()) {
15905 p->error_indicator = 1;
15906 D(p->level--);
15907 return NULL;
15908 }
15909 goto done;
15910 }
15911 p->mark = _mark;
15912 D(fprintf(stderr, "%*c%s star_target[%d-%d]: %s failed!\n", p->level, ' ',
15913 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' (!'*' star_target)"));
15914 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015915 { // target_with_star_atom
15916 if (p->error_indicator) {
15917 D(p->level--);
15918 return NULL;
15919 }
15920 D(fprintf(stderr, "%*c> star_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "target_with_star_atom"));
15921 expr_ty target_with_star_atom_var;
15922 if (
15923 (target_with_star_atom_var = target_with_star_atom_rule(p)) // target_with_star_atom
15924 )
15925 {
15926 D(fprintf(stderr, "%*c+ star_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "target_with_star_atom"));
15927 _res = target_with_star_atom_var;
15928 goto done;
15929 }
15930 p->mark = _mark;
15931 D(fprintf(stderr, "%*c%s star_target[%d-%d]: %s failed!\n", p->level, ' ',
15932 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "target_with_star_atom"));
15933 }
15934 _res = NULL;
15935 done:
15936 _PyPegen_insert_memo(p, _mark, star_target_type, _res);
15937 D(p->level--);
15938 return _res;
15939}
15940
15941// target_with_star_atom:
15942// | t_primary '.' NAME !t_lookahead
15943// | t_primary '[' slices ']' !t_lookahead
15944// | star_atom
15945static expr_ty
15946target_with_star_atom_rule(Parser *p)
15947{
15948 D(p->level++);
15949 if (p->error_indicator) {
15950 D(p->level--);
15951 return NULL;
15952 }
15953 expr_ty _res = NULL;
15954 if (_PyPegen_is_memoized(p, target_with_star_atom_type, &_res)) {
15955 D(p->level--);
15956 return _res;
15957 }
15958 int _mark = p->mark;
15959 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
15960 p->error_indicator = 1;
15961 D(p->level--);
15962 return NULL;
15963 }
15964 int _start_lineno = p->tokens[_mark]->lineno;
15965 UNUSED(_start_lineno); // Only used by EXTRA macro
15966 int _start_col_offset = p->tokens[_mark]->col_offset;
15967 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015968 { // t_primary '.' NAME !t_lookahead
15969 if (p->error_indicator) {
15970 D(p->level--);
15971 return NULL;
15972 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015973 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 +010015974 Token * _literal;
15975 expr_ty a;
15976 expr_ty b;
15977 if (
15978 (a = t_primary_rule(p)) // t_primary
15979 &&
15980 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
15981 &&
15982 (b = _PyPegen_name_token(p)) // NAME
15983 &&
15984 _PyPegen_lookahead(0, t_lookahead_rule, p)
15985 )
15986 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015987 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 +010015988 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15989 if (_token == NULL) {
15990 D(p->level--);
15991 return NULL;
15992 }
15993 int _end_lineno = _token->end_lineno;
15994 UNUSED(_end_lineno); // Only used by EXTRA macro
15995 int _end_col_offset = _token->end_col_offset;
15996 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015997 _res = _PyAST_Attribute ( a , b -> v . Name . id , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015998 if (_res == NULL && PyErr_Occurred()) {
15999 p->error_indicator = 1;
16000 D(p->level--);
16001 return NULL;
16002 }
16003 goto done;
16004 }
16005 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016006 D(fprintf(stderr, "%*c%s target_with_star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016007 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
16008 }
16009 { // t_primary '[' slices ']' !t_lookahead
16010 if (p->error_indicator) {
16011 D(p->level--);
16012 return NULL;
16013 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016014 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 +010016015 Token * _literal;
16016 Token * _literal_1;
16017 expr_ty a;
16018 expr_ty b;
16019 if (
16020 (a = t_primary_rule(p)) // t_primary
16021 &&
16022 (_literal = _PyPegen_expect_token(p, 9)) // token='['
16023 &&
16024 (b = slices_rule(p)) // slices
16025 &&
16026 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
16027 &&
16028 _PyPegen_lookahead(0, t_lookahead_rule, p)
16029 )
16030 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016031 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 +010016032 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16033 if (_token == NULL) {
16034 D(p->level--);
16035 return NULL;
16036 }
16037 int _end_lineno = _token->end_lineno;
16038 UNUSED(_end_lineno); // Only used by EXTRA macro
16039 int _end_col_offset = _token->end_col_offset;
16040 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016041 _res = _PyAST_Subscript ( a , b , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016042 if (_res == NULL && PyErr_Occurred()) {
16043 p->error_indicator = 1;
16044 D(p->level--);
16045 return NULL;
16046 }
16047 goto done;
16048 }
16049 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016050 D(fprintf(stderr, "%*c%s target_with_star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016051 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
16052 }
16053 { // star_atom
16054 if (p->error_indicator) {
16055 D(p->level--);
16056 return NULL;
16057 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016058 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 +010016059 expr_ty star_atom_var;
16060 if (
16061 (star_atom_var = star_atom_rule(p)) // star_atom
16062 )
16063 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016064 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 +010016065 _res = star_atom_var;
16066 goto done;
16067 }
16068 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016069 D(fprintf(stderr, "%*c%s target_with_star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016070 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_atom"));
16071 }
16072 _res = NULL;
16073 done:
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016074 _PyPegen_insert_memo(p, _mark, target_with_star_atom_type, _res);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016075 D(p->level--);
16076 return _res;
16077}
16078
16079// star_atom:
16080// | NAME
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016081// | '(' target_with_star_atom ')'
16082// | '(' star_targets_tuple_seq? ')'
16083// | '[' star_targets_list_seq? ']'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016084static expr_ty
16085star_atom_rule(Parser *p)
16086{
16087 D(p->level++);
16088 if (p->error_indicator) {
16089 D(p->level--);
16090 return NULL;
16091 }
16092 expr_ty _res = NULL;
16093 int _mark = p->mark;
16094 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
16095 p->error_indicator = 1;
16096 D(p->level--);
16097 return NULL;
16098 }
16099 int _start_lineno = p->tokens[_mark]->lineno;
16100 UNUSED(_start_lineno); // Only used by EXTRA macro
16101 int _start_col_offset = p->tokens[_mark]->col_offset;
16102 UNUSED(_start_col_offset); // Only used by EXTRA macro
16103 { // NAME
16104 if (p->error_indicator) {
16105 D(p->level--);
16106 return NULL;
16107 }
16108 D(fprintf(stderr, "%*c> star_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
16109 expr_ty a;
16110 if (
16111 (a = _PyPegen_name_token(p)) // NAME
16112 )
16113 {
16114 D(fprintf(stderr, "%*c+ star_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
16115 _res = _PyPegen_set_expr_context ( p , a , Store );
16116 if (_res == NULL && PyErr_Occurred()) {
16117 p->error_indicator = 1;
16118 D(p->level--);
16119 return NULL;
16120 }
16121 goto done;
16122 }
16123 p->mark = _mark;
16124 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
16125 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
16126 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016127 { // '(' target_with_star_atom ')'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016128 if (p->error_indicator) {
16129 D(p->level--);
16130 return NULL;
16131 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016132 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 +010016133 Token * _literal;
16134 Token * _literal_1;
16135 expr_ty a;
16136 if (
16137 (_literal = _PyPegen_expect_token(p, 7)) // token='('
16138 &&
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016139 (a = target_with_star_atom_rule(p)) // target_with_star_atom
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016140 &&
16141 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
16142 )
16143 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016144 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 +010016145 _res = _PyPegen_set_expr_context ( p , a , Store );
16146 if (_res == NULL && PyErr_Occurred()) {
16147 p->error_indicator = 1;
16148 D(p->level--);
16149 return NULL;
16150 }
16151 goto done;
16152 }
16153 p->mark = _mark;
16154 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016155 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' target_with_star_atom ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016156 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016157 { // '(' star_targets_tuple_seq? ')'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016158 if (p->error_indicator) {
16159 D(p->level--);
16160 return NULL;
16161 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016162 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 +010016163 Token * _literal;
16164 Token * _literal_1;
16165 void *a;
16166 if (
16167 (_literal = _PyPegen_expect_token(p, 7)) // token='('
16168 &&
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016169 (a = star_targets_tuple_seq_rule(p), 1) // star_targets_tuple_seq?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016170 &&
16171 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
16172 )
16173 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016174 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 +010016175 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16176 if (_token == NULL) {
16177 D(p->level--);
16178 return NULL;
16179 }
16180 int _end_lineno = _token->end_lineno;
16181 UNUSED(_end_lineno); // Only used by EXTRA macro
16182 int _end_col_offset = _token->end_col_offset;
16183 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016184 _res = _PyAST_Tuple ( a , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016185 if (_res == NULL && PyErr_Occurred()) {
16186 p->error_indicator = 1;
16187 D(p->level--);
16188 return NULL;
16189 }
16190 goto done;
16191 }
16192 p->mark = _mark;
16193 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016194 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' star_targets_tuple_seq? ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016195 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016196 { // '[' star_targets_list_seq? ']'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016197 if (p->error_indicator) {
16198 D(p->level--);
16199 return NULL;
16200 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016201 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 +010016202 Token * _literal;
16203 Token * _literal_1;
16204 void *a;
16205 if (
16206 (_literal = _PyPegen_expect_token(p, 9)) // token='['
16207 &&
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016208 (a = star_targets_list_seq_rule(p), 1) // star_targets_list_seq?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016209 &&
16210 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
16211 )
16212 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016213 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 +010016214 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16215 if (_token == NULL) {
16216 D(p->level--);
16217 return NULL;
16218 }
16219 int _end_lineno = _token->end_lineno;
16220 UNUSED(_end_lineno); // Only used by EXTRA macro
16221 int _end_col_offset = _token->end_col_offset;
16222 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016223 _res = _PyAST_List ( a , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016224 if (_res == NULL && PyErr_Occurred()) {
16225 p->error_indicator = 1;
16226 D(p->level--);
16227 return NULL;
16228 }
16229 goto done;
16230 }
16231 p->mark = _mark;
16232 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016233 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' star_targets_list_seq? ']'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016234 }
16235 _res = NULL;
16236 done:
16237 D(p->level--);
16238 return _res;
16239}
16240
16241// single_target: single_subscript_attribute_target | NAME | '(' single_target ')'
16242static expr_ty
16243single_target_rule(Parser *p)
16244{
16245 D(p->level++);
16246 if (p->error_indicator) {
16247 D(p->level--);
16248 return NULL;
16249 }
16250 expr_ty _res = NULL;
16251 int _mark = p->mark;
16252 { // single_subscript_attribute_target
16253 if (p->error_indicator) {
16254 D(p->level--);
16255 return NULL;
16256 }
16257 D(fprintf(stderr, "%*c> single_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "single_subscript_attribute_target"));
16258 expr_ty single_subscript_attribute_target_var;
16259 if (
16260 (single_subscript_attribute_target_var = single_subscript_attribute_target_rule(p)) // single_subscript_attribute_target
16261 )
16262 {
16263 D(fprintf(stderr, "%*c+ single_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "single_subscript_attribute_target"));
16264 _res = single_subscript_attribute_target_var;
16265 goto done;
16266 }
16267 p->mark = _mark;
16268 D(fprintf(stderr, "%*c%s single_target[%d-%d]: %s failed!\n", p->level, ' ',
16269 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "single_subscript_attribute_target"));
16270 }
16271 { // NAME
16272 if (p->error_indicator) {
16273 D(p->level--);
16274 return NULL;
16275 }
16276 D(fprintf(stderr, "%*c> single_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
16277 expr_ty a;
16278 if (
16279 (a = _PyPegen_name_token(p)) // NAME
16280 )
16281 {
16282 D(fprintf(stderr, "%*c+ single_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
16283 _res = _PyPegen_set_expr_context ( p , a , Store );
16284 if (_res == NULL && PyErr_Occurred()) {
16285 p->error_indicator = 1;
16286 D(p->level--);
16287 return NULL;
16288 }
16289 goto done;
16290 }
16291 p->mark = _mark;
16292 D(fprintf(stderr, "%*c%s single_target[%d-%d]: %s failed!\n", p->level, ' ',
16293 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
16294 }
16295 { // '(' single_target ')'
16296 if (p->error_indicator) {
16297 D(p->level--);
16298 return NULL;
16299 }
16300 D(fprintf(stderr, "%*c> single_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
16301 Token * _literal;
16302 Token * _literal_1;
16303 expr_ty a;
16304 if (
16305 (_literal = _PyPegen_expect_token(p, 7)) // token='('
16306 &&
16307 (a = single_target_rule(p)) // single_target
16308 &&
16309 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
16310 )
16311 {
16312 D(fprintf(stderr, "%*c+ single_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
16313 _res = a;
16314 if (_res == NULL && PyErr_Occurred()) {
16315 p->error_indicator = 1;
16316 D(p->level--);
16317 return NULL;
16318 }
16319 goto done;
16320 }
16321 p->mark = _mark;
16322 D(fprintf(stderr, "%*c%s single_target[%d-%d]: %s failed!\n", p->level, ' ',
16323 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' single_target ')'"));
16324 }
16325 _res = NULL;
16326 done:
16327 D(p->level--);
16328 return _res;
16329}
16330
16331// single_subscript_attribute_target:
16332// | t_primary '.' NAME !t_lookahead
16333// | t_primary '[' slices ']' !t_lookahead
16334static expr_ty
16335single_subscript_attribute_target_rule(Parser *p)
16336{
16337 D(p->level++);
16338 if (p->error_indicator) {
16339 D(p->level--);
16340 return NULL;
16341 }
16342 expr_ty _res = NULL;
16343 int _mark = p->mark;
16344 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
16345 p->error_indicator = 1;
16346 D(p->level--);
16347 return NULL;
16348 }
16349 int _start_lineno = p->tokens[_mark]->lineno;
16350 UNUSED(_start_lineno); // Only used by EXTRA macro
16351 int _start_col_offset = p->tokens[_mark]->col_offset;
16352 UNUSED(_start_col_offset); // Only used by EXTRA macro
16353 { // t_primary '.' NAME !t_lookahead
16354 if (p->error_indicator) {
16355 D(p->level--);
16356 return NULL;
16357 }
16358 D(fprintf(stderr, "%*c> single_subscript_attribute_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
16359 Token * _literal;
16360 expr_ty a;
16361 expr_ty b;
16362 if (
16363 (a = t_primary_rule(p)) // t_primary
16364 &&
16365 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
16366 &&
16367 (b = _PyPegen_name_token(p)) // NAME
16368 &&
16369 _PyPegen_lookahead(0, t_lookahead_rule, p)
16370 )
16371 {
16372 D(fprintf(stderr, "%*c+ single_subscript_attribute_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
16373 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16374 if (_token == NULL) {
16375 D(p->level--);
16376 return NULL;
16377 }
16378 int _end_lineno = _token->end_lineno;
16379 UNUSED(_end_lineno); // Only used by EXTRA macro
16380 int _end_col_offset = _token->end_col_offset;
16381 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016382 _res = _PyAST_Attribute ( a , b -> v . Name . id , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016383 if (_res == NULL && PyErr_Occurred()) {
16384 p->error_indicator = 1;
16385 D(p->level--);
16386 return NULL;
16387 }
16388 goto done;
16389 }
16390 p->mark = _mark;
16391 D(fprintf(stderr, "%*c%s single_subscript_attribute_target[%d-%d]: %s failed!\n", p->level, ' ',
16392 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
16393 }
16394 { // t_primary '[' slices ']' !t_lookahead
16395 if (p->error_indicator) {
16396 D(p->level--);
16397 return NULL;
16398 }
16399 D(fprintf(stderr, "%*c> single_subscript_attribute_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
16400 Token * _literal;
16401 Token * _literal_1;
16402 expr_ty a;
16403 expr_ty b;
16404 if (
16405 (a = t_primary_rule(p)) // t_primary
16406 &&
16407 (_literal = _PyPegen_expect_token(p, 9)) // token='['
16408 &&
16409 (b = slices_rule(p)) // slices
16410 &&
16411 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
16412 &&
16413 _PyPegen_lookahead(0, t_lookahead_rule, p)
16414 )
16415 {
16416 D(fprintf(stderr, "%*c+ single_subscript_attribute_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
16417 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16418 if (_token == NULL) {
16419 D(p->level--);
16420 return NULL;
16421 }
16422 int _end_lineno = _token->end_lineno;
16423 UNUSED(_end_lineno); // Only used by EXTRA macro
16424 int _end_col_offset = _token->end_col_offset;
16425 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016426 _res = _PyAST_Subscript ( a , b , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016427 if (_res == NULL && PyErr_Occurred()) {
16428 p->error_indicator = 1;
16429 D(p->level--);
16430 return NULL;
16431 }
16432 goto done;
16433 }
16434 p->mark = _mark;
16435 D(fprintf(stderr, "%*c%s single_subscript_attribute_target[%d-%d]: %s failed!\n", p->level, ' ',
16436 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
16437 }
16438 _res = NULL;
16439 done:
16440 D(p->level--);
16441 return _res;
16442}
16443
16444// del_targets: ','.del_target+ ','?
Pablo Galindoa5634c42020-09-16 19:42:00 +010016445static asdl_expr_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016446del_targets_rule(Parser *p)
16447{
16448 D(p->level++);
16449 if (p->error_indicator) {
16450 D(p->level--);
16451 return NULL;
16452 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010016453 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016454 int _mark = p->mark;
16455 { // ','.del_target+ ','?
16456 if (p->error_indicator) {
16457 D(p->level--);
16458 return NULL;
16459 }
16460 D(fprintf(stderr, "%*c> del_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.del_target+ ','?"));
16461 void *_opt_var;
16462 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +010016463 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016464 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080016465 (a = (asdl_expr_seq*)_gather_138_rule(p)) // ','.del_target+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016466 &&
16467 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
16468 )
16469 {
16470 D(fprintf(stderr, "%*c+ del_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.del_target+ ','?"));
16471 _res = a;
16472 if (_res == NULL && PyErr_Occurred()) {
16473 p->error_indicator = 1;
16474 D(p->level--);
16475 return NULL;
16476 }
16477 goto done;
16478 }
16479 p->mark = _mark;
16480 D(fprintf(stderr, "%*c%s del_targets[%d-%d]: %s failed!\n", p->level, ' ',
16481 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.del_target+ ','?"));
16482 }
16483 _res = NULL;
16484 done:
16485 D(p->level--);
16486 return _res;
16487}
16488
16489// del_target:
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016490// | t_primary '.' NAME !t_lookahead
16491// | t_primary '[' slices ']' !t_lookahead
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016492// | del_t_atom
16493static expr_ty
16494del_target_rule(Parser *p)
16495{
16496 D(p->level++);
16497 if (p->error_indicator) {
16498 D(p->level--);
16499 return NULL;
16500 }
16501 expr_ty _res = NULL;
16502 if (_PyPegen_is_memoized(p, del_target_type, &_res)) {
16503 D(p->level--);
16504 return _res;
16505 }
16506 int _mark = p->mark;
16507 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
16508 p->error_indicator = 1;
16509 D(p->level--);
16510 return NULL;
16511 }
16512 int _start_lineno = p->tokens[_mark]->lineno;
16513 UNUSED(_start_lineno); // Only used by EXTRA macro
16514 int _start_col_offset = p->tokens[_mark]->col_offset;
16515 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016516 { // t_primary '.' NAME !t_lookahead
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016517 if (p->error_indicator) {
16518 D(p->level--);
16519 return NULL;
16520 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016521 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 +010016522 Token * _literal;
16523 expr_ty a;
16524 expr_ty b;
16525 if (
16526 (a = t_primary_rule(p)) // t_primary
16527 &&
16528 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
16529 &&
16530 (b = _PyPegen_name_token(p)) // NAME
16531 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016532 _PyPegen_lookahead(0, t_lookahead_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016533 )
16534 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016535 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 +010016536 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16537 if (_token == NULL) {
16538 D(p->level--);
16539 return NULL;
16540 }
16541 int _end_lineno = _token->end_lineno;
16542 UNUSED(_end_lineno); // Only used by EXTRA macro
16543 int _end_col_offset = _token->end_col_offset;
16544 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016545 _res = _PyAST_Attribute ( a , b -> v . Name . id , Del , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016546 if (_res == NULL && PyErr_Occurred()) {
16547 p->error_indicator = 1;
16548 D(p->level--);
16549 return NULL;
16550 }
16551 goto done;
16552 }
16553 p->mark = _mark;
16554 D(fprintf(stderr, "%*c%s del_target[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016555 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016556 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016557 { // t_primary '[' slices ']' !t_lookahead
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016558 if (p->error_indicator) {
16559 D(p->level--);
16560 return NULL;
16561 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016562 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 +010016563 Token * _literal;
16564 Token * _literal_1;
16565 expr_ty a;
16566 expr_ty b;
16567 if (
16568 (a = t_primary_rule(p)) // t_primary
16569 &&
16570 (_literal = _PyPegen_expect_token(p, 9)) // token='['
16571 &&
16572 (b = slices_rule(p)) // slices
16573 &&
16574 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
16575 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016576 _PyPegen_lookahead(0, t_lookahead_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016577 )
16578 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016579 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 +010016580 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16581 if (_token == NULL) {
16582 D(p->level--);
16583 return NULL;
16584 }
16585 int _end_lineno = _token->end_lineno;
16586 UNUSED(_end_lineno); // Only used by EXTRA macro
16587 int _end_col_offset = _token->end_col_offset;
16588 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016589 _res = _PyAST_Subscript ( a , b , Del , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016590 if (_res == NULL && PyErr_Occurred()) {
16591 p->error_indicator = 1;
16592 D(p->level--);
16593 return NULL;
16594 }
16595 goto done;
16596 }
16597 p->mark = _mark;
16598 D(fprintf(stderr, "%*c%s del_target[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016599 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016600 }
16601 { // del_t_atom
16602 if (p->error_indicator) {
16603 D(p->level--);
16604 return NULL;
16605 }
16606 D(fprintf(stderr, "%*c> del_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "del_t_atom"));
16607 expr_ty del_t_atom_var;
16608 if (
16609 (del_t_atom_var = del_t_atom_rule(p)) // del_t_atom
16610 )
16611 {
16612 D(fprintf(stderr, "%*c+ del_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "del_t_atom"));
16613 _res = del_t_atom_var;
16614 goto done;
16615 }
16616 p->mark = _mark;
16617 D(fprintf(stderr, "%*c%s del_target[%d-%d]: %s failed!\n", p->level, ' ',
16618 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "del_t_atom"));
16619 }
16620 _res = NULL;
16621 done:
16622 _PyPegen_insert_memo(p, _mark, del_target_type, _res);
16623 D(p->level--);
16624 return _res;
16625}
16626
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016627// del_t_atom: NAME | '(' del_target ')' | '(' del_targets? ')' | '[' del_targets? ']'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016628static expr_ty
16629del_t_atom_rule(Parser *p)
16630{
16631 D(p->level++);
16632 if (p->error_indicator) {
16633 D(p->level--);
16634 return NULL;
16635 }
16636 expr_ty _res = NULL;
16637 int _mark = p->mark;
16638 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
16639 p->error_indicator = 1;
16640 D(p->level--);
16641 return NULL;
16642 }
16643 int _start_lineno = p->tokens[_mark]->lineno;
16644 UNUSED(_start_lineno); // Only used by EXTRA macro
16645 int _start_col_offset = p->tokens[_mark]->col_offset;
16646 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016647 { // NAME
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016648 if (p->error_indicator) {
16649 D(p->level--);
16650 return NULL;
16651 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016652 D(fprintf(stderr, "%*c> del_t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016653 expr_ty a;
16654 if (
16655 (a = _PyPegen_name_token(p)) // NAME
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016656 )
16657 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016658 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 +010016659 _res = _PyPegen_set_expr_context ( p , a , Del );
16660 if (_res == NULL && PyErr_Occurred()) {
16661 p->error_indicator = 1;
16662 D(p->level--);
16663 return NULL;
16664 }
16665 goto done;
16666 }
16667 p->mark = _mark;
16668 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016669 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016670 }
16671 { // '(' del_target ')'
16672 if (p->error_indicator) {
16673 D(p->level--);
16674 return NULL;
16675 }
16676 D(fprintf(stderr, "%*c> del_t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' del_target ')'"));
16677 Token * _literal;
16678 Token * _literal_1;
16679 expr_ty a;
16680 if (
16681 (_literal = _PyPegen_expect_token(p, 7)) // token='('
16682 &&
16683 (a = del_target_rule(p)) // del_target
16684 &&
16685 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
16686 )
16687 {
16688 D(fprintf(stderr, "%*c+ del_t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' del_target ')'"));
16689 _res = _PyPegen_set_expr_context ( p , a , Del );
16690 if (_res == NULL && PyErr_Occurred()) {
16691 p->error_indicator = 1;
16692 D(p->level--);
16693 return NULL;
16694 }
16695 goto done;
16696 }
16697 p->mark = _mark;
16698 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
16699 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' del_target ')'"));
16700 }
16701 { // '(' del_targets? ')'
16702 if (p->error_indicator) {
16703 D(p->level--);
16704 return NULL;
16705 }
16706 D(fprintf(stderr, "%*c> del_t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' del_targets? ')'"));
16707 Token * _literal;
16708 Token * _literal_1;
16709 void *a;
16710 if (
16711 (_literal = _PyPegen_expect_token(p, 7)) // token='('
16712 &&
16713 (a = del_targets_rule(p), 1) // del_targets?
16714 &&
16715 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
16716 )
16717 {
16718 D(fprintf(stderr, "%*c+ del_t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' del_targets? ')'"));
16719 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16720 if (_token == NULL) {
16721 D(p->level--);
16722 return NULL;
16723 }
16724 int _end_lineno = _token->end_lineno;
16725 UNUSED(_end_lineno); // Only used by EXTRA macro
16726 int _end_col_offset = _token->end_col_offset;
16727 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016728 _res = _PyAST_Tuple ( a , Del , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016729 if (_res == NULL && PyErr_Occurred()) {
16730 p->error_indicator = 1;
16731 D(p->level--);
16732 return NULL;
16733 }
16734 goto done;
16735 }
16736 p->mark = _mark;
16737 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
16738 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' del_targets? ')'"));
16739 }
16740 { // '[' del_targets? ']'
16741 if (p->error_indicator) {
16742 D(p->level--);
16743 return NULL;
16744 }
16745 D(fprintf(stderr, "%*c> del_t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' del_targets? ']'"));
16746 Token * _literal;
16747 Token * _literal_1;
16748 void *a;
16749 if (
16750 (_literal = _PyPegen_expect_token(p, 9)) // token='['
16751 &&
16752 (a = del_targets_rule(p), 1) // del_targets?
16753 &&
16754 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
16755 )
16756 {
16757 D(fprintf(stderr, "%*c+ del_t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' del_targets? ']'"));
16758 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16759 if (_token == NULL) {
16760 D(p->level--);
16761 return NULL;
16762 }
16763 int _end_lineno = _token->end_lineno;
16764 UNUSED(_end_lineno); // Only used by EXTRA macro
16765 int _end_col_offset = _token->end_col_offset;
16766 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016767 _res = _PyAST_List ( a , Del , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016768 if (_res == NULL && PyErr_Occurred()) {
16769 p->error_indicator = 1;
16770 D(p->level--);
16771 return NULL;
16772 }
16773 goto done;
16774 }
16775 p->mark = _mark;
16776 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
16777 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' del_targets? ']'"));
16778 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016779 _res = NULL;
16780 done:
16781 D(p->level--);
16782 return _res;
16783}
16784
16785// targets: ','.target+ ','?
Pablo Galindoa5634c42020-09-16 19:42:00 +010016786static asdl_expr_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016787targets_rule(Parser *p)
16788{
16789 D(p->level++);
16790 if (p->error_indicator) {
16791 D(p->level--);
16792 return NULL;
16793 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010016794 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016795 int _mark = p->mark;
16796 { // ','.target+ ','?
16797 if (p->error_indicator) {
16798 D(p->level--);
16799 return NULL;
16800 }
16801 D(fprintf(stderr, "%*c> targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.target+ ','?"));
16802 void *_opt_var;
16803 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +010016804 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016805 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080016806 (a = (asdl_expr_seq*)_gather_140_rule(p)) // ','.target+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016807 &&
16808 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
16809 )
16810 {
16811 D(fprintf(stderr, "%*c+ targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.target+ ','?"));
16812 _res = a;
16813 if (_res == NULL && PyErr_Occurred()) {
16814 p->error_indicator = 1;
16815 D(p->level--);
16816 return NULL;
16817 }
16818 goto done;
16819 }
16820 p->mark = _mark;
16821 D(fprintf(stderr, "%*c%s targets[%d-%d]: %s failed!\n", p->level, ' ',
16822 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.target+ ','?"));
16823 }
16824 _res = NULL;
16825 done:
16826 D(p->level--);
16827 return _res;
16828}
16829
16830// target:
16831// | t_primary '.' NAME !t_lookahead
16832// | t_primary '[' slices ']' !t_lookahead
16833// | t_atom
16834static expr_ty
16835target_rule(Parser *p)
16836{
16837 D(p->level++);
16838 if (p->error_indicator) {
16839 D(p->level--);
16840 return NULL;
16841 }
16842 expr_ty _res = NULL;
16843 if (_PyPegen_is_memoized(p, target_type, &_res)) {
16844 D(p->level--);
16845 return _res;
16846 }
16847 int _mark = p->mark;
16848 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
16849 p->error_indicator = 1;
16850 D(p->level--);
16851 return NULL;
16852 }
16853 int _start_lineno = p->tokens[_mark]->lineno;
16854 UNUSED(_start_lineno); // Only used by EXTRA macro
16855 int _start_col_offset = p->tokens[_mark]->col_offset;
16856 UNUSED(_start_col_offset); // Only used by EXTRA macro
16857 { // t_primary '.' NAME !t_lookahead
16858 if (p->error_indicator) {
16859 D(p->level--);
16860 return NULL;
16861 }
16862 D(fprintf(stderr, "%*c> target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
16863 Token * _literal;
16864 expr_ty a;
16865 expr_ty b;
16866 if (
16867 (a = t_primary_rule(p)) // t_primary
16868 &&
16869 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
16870 &&
16871 (b = _PyPegen_name_token(p)) // NAME
16872 &&
16873 _PyPegen_lookahead(0, t_lookahead_rule, p)
16874 )
16875 {
16876 D(fprintf(stderr, "%*c+ target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
16877 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16878 if (_token == NULL) {
16879 D(p->level--);
16880 return NULL;
16881 }
16882 int _end_lineno = _token->end_lineno;
16883 UNUSED(_end_lineno); // Only used by EXTRA macro
16884 int _end_col_offset = _token->end_col_offset;
16885 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016886 _res = _PyAST_Attribute ( a , b -> v . Name . id , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016887 if (_res == NULL && PyErr_Occurred()) {
16888 p->error_indicator = 1;
16889 D(p->level--);
16890 return NULL;
16891 }
16892 goto done;
16893 }
16894 p->mark = _mark;
16895 D(fprintf(stderr, "%*c%s target[%d-%d]: %s failed!\n", p->level, ' ',
16896 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
16897 }
16898 { // t_primary '[' slices ']' !t_lookahead
16899 if (p->error_indicator) {
16900 D(p->level--);
16901 return NULL;
16902 }
16903 D(fprintf(stderr, "%*c> target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
16904 Token * _literal;
16905 Token * _literal_1;
16906 expr_ty a;
16907 expr_ty b;
16908 if (
16909 (a = t_primary_rule(p)) // t_primary
16910 &&
16911 (_literal = _PyPegen_expect_token(p, 9)) // token='['
16912 &&
16913 (b = slices_rule(p)) // slices
16914 &&
16915 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
16916 &&
16917 _PyPegen_lookahead(0, t_lookahead_rule, p)
16918 )
16919 {
16920 D(fprintf(stderr, "%*c+ target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
16921 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16922 if (_token == NULL) {
16923 D(p->level--);
16924 return NULL;
16925 }
16926 int _end_lineno = _token->end_lineno;
16927 UNUSED(_end_lineno); // Only used by EXTRA macro
16928 int _end_col_offset = _token->end_col_offset;
16929 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016930 _res = _PyAST_Subscript ( a , b , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016931 if (_res == NULL && PyErr_Occurred()) {
16932 p->error_indicator = 1;
16933 D(p->level--);
16934 return NULL;
16935 }
16936 goto done;
16937 }
16938 p->mark = _mark;
16939 D(fprintf(stderr, "%*c%s target[%d-%d]: %s failed!\n", p->level, ' ',
16940 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
16941 }
16942 { // t_atom
16943 if (p->error_indicator) {
16944 D(p->level--);
16945 return NULL;
16946 }
16947 D(fprintf(stderr, "%*c> target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_atom"));
16948 expr_ty t_atom_var;
16949 if (
16950 (t_atom_var = t_atom_rule(p)) // t_atom
16951 )
16952 {
16953 D(fprintf(stderr, "%*c+ target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_atom"));
16954 _res = t_atom_var;
16955 goto done;
16956 }
16957 p->mark = _mark;
16958 D(fprintf(stderr, "%*c%s target[%d-%d]: %s failed!\n", p->level, ' ',
16959 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_atom"));
16960 }
16961 _res = NULL;
16962 done:
16963 _PyPegen_insert_memo(p, _mark, target_type, _res);
16964 D(p->level--);
16965 return _res;
16966}
16967
16968// Left-recursive
16969// t_primary:
16970// | t_primary '.' NAME &t_lookahead
16971// | t_primary '[' slices ']' &t_lookahead
16972// | t_primary genexp &t_lookahead
16973// | t_primary '(' arguments? ')' &t_lookahead
16974// | atom &t_lookahead
16975static expr_ty t_primary_raw(Parser *);
16976static expr_ty
16977t_primary_rule(Parser *p)
16978{
16979 D(p->level++);
16980 expr_ty _res = NULL;
16981 if (_PyPegen_is_memoized(p, t_primary_type, &_res)) {
16982 D(p->level--);
16983 return _res;
16984 }
16985 int _mark = p->mark;
16986 int _resmark = p->mark;
16987 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080016988 int tmpvar_9 = _PyPegen_update_memo(p, _mark, t_primary_type, _res);
16989 if (tmpvar_9) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016990 D(p->level--);
16991 return _res;
16992 }
16993 p->mark = _mark;
16994 void *_raw = t_primary_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020016995 if (p->error_indicator)
16996 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016997 if (_raw == NULL || p->mark <= _resmark)
16998 break;
16999 _resmark = p->mark;
17000 _res = _raw;
17001 }
17002 p->mark = _resmark;
17003 D(p->level--);
17004 return _res;
17005}
17006static expr_ty
17007t_primary_raw(Parser *p)
17008{
17009 D(p->level++);
17010 if (p->error_indicator) {
17011 D(p->level--);
17012 return NULL;
17013 }
17014 expr_ty _res = NULL;
17015 int _mark = p->mark;
17016 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
17017 p->error_indicator = 1;
17018 D(p->level--);
17019 return NULL;
17020 }
17021 int _start_lineno = p->tokens[_mark]->lineno;
17022 UNUSED(_start_lineno); // Only used by EXTRA macro
17023 int _start_col_offset = p->tokens[_mark]->col_offset;
17024 UNUSED(_start_col_offset); // Only used by EXTRA macro
17025 { // t_primary '.' NAME &t_lookahead
17026 if (p->error_indicator) {
17027 D(p->level--);
17028 return NULL;
17029 }
17030 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME &t_lookahead"));
17031 Token * _literal;
17032 expr_ty a;
17033 expr_ty b;
17034 if (
17035 (a = t_primary_rule(p)) // t_primary
17036 &&
17037 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
17038 &&
17039 (b = _PyPegen_name_token(p)) // NAME
17040 &&
17041 _PyPegen_lookahead(1, t_lookahead_rule, p)
17042 )
17043 {
17044 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME &t_lookahead"));
17045 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17046 if (_token == NULL) {
17047 D(p->level--);
17048 return NULL;
17049 }
17050 int _end_lineno = _token->end_lineno;
17051 UNUSED(_end_lineno); // Only used by EXTRA macro
17052 int _end_col_offset = _token->end_col_offset;
17053 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017054 _res = _PyAST_Attribute ( a , b -> v . Name . id , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017055 if (_res == NULL && PyErr_Occurred()) {
17056 p->error_indicator = 1;
17057 D(p->level--);
17058 return NULL;
17059 }
17060 goto done;
17061 }
17062 p->mark = _mark;
17063 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
17064 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME &t_lookahead"));
17065 }
17066 { // t_primary '[' slices ']' &t_lookahead
17067 if (p->error_indicator) {
17068 D(p->level--);
17069 return NULL;
17070 }
17071 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' &t_lookahead"));
17072 Token * _literal;
17073 Token * _literal_1;
17074 expr_ty a;
17075 expr_ty b;
17076 if (
17077 (a = t_primary_rule(p)) // t_primary
17078 &&
17079 (_literal = _PyPegen_expect_token(p, 9)) // token='['
17080 &&
17081 (b = slices_rule(p)) // slices
17082 &&
17083 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
17084 &&
17085 _PyPegen_lookahead(1, t_lookahead_rule, p)
17086 )
17087 {
17088 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' &t_lookahead"));
17089 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17090 if (_token == NULL) {
17091 D(p->level--);
17092 return NULL;
17093 }
17094 int _end_lineno = _token->end_lineno;
17095 UNUSED(_end_lineno); // Only used by EXTRA macro
17096 int _end_col_offset = _token->end_col_offset;
17097 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017098 _res = _PyAST_Subscript ( a , b , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017099 if (_res == NULL && PyErr_Occurred()) {
17100 p->error_indicator = 1;
17101 D(p->level--);
17102 return NULL;
17103 }
17104 goto done;
17105 }
17106 p->mark = _mark;
17107 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
17108 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' &t_lookahead"));
17109 }
17110 { // t_primary genexp &t_lookahead
17111 if (p->error_indicator) {
17112 D(p->level--);
17113 return NULL;
17114 }
17115 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary genexp &t_lookahead"));
17116 expr_ty a;
17117 expr_ty b;
17118 if (
17119 (a = t_primary_rule(p)) // t_primary
17120 &&
17121 (b = genexp_rule(p)) // genexp
17122 &&
17123 _PyPegen_lookahead(1, t_lookahead_rule, p)
17124 )
17125 {
17126 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary genexp &t_lookahead"));
17127 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17128 if (_token == NULL) {
17129 D(p->level--);
17130 return NULL;
17131 }
17132 int _end_lineno = _token->end_lineno;
17133 UNUSED(_end_lineno); // Only used by EXTRA macro
17134 int _end_col_offset = _token->end_col_offset;
17135 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017136 _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 +010017137 if (_res == NULL && PyErr_Occurred()) {
17138 p->error_indicator = 1;
17139 D(p->level--);
17140 return NULL;
17141 }
17142 goto done;
17143 }
17144 p->mark = _mark;
17145 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
17146 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary genexp &t_lookahead"));
17147 }
17148 { // t_primary '(' arguments? ')' &t_lookahead
17149 if (p->error_indicator) {
17150 D(p->level--);
17151 return NULL;
17152 }
17153 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '(' arguments? ')' &t_lookahead"));
17154 Token * _literal;
17155 Token * _literal_1;
17156 expr_ty a;
17157 void *b;
17158 if (
17159 (a = t_primary_rule(p)) // t_primary
17160 &&
17161 (_literal = _PyPegen_expect_token(p, 7)) // token='('
17162 &&
17163 (b = arguments_rule(p), 1) // arguments?
17164 &&
17165 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
17166 &&
17167 _PyPegen_lookahead(1, t_lookahead_rule, p)
17168 )
17169 {
17170 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '(' arguments? ')' &t_lookahead"));
17171 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17172 if (_token == NULL) {
17173 D(p->level--);
17174 return NULL;
17175 }
17176 int _end_lineno = _token->end_lineno;
17177 UNUSED(_end_lineno); // Only used by EXTRA macro
17178 int _end_col_offset = _token->end_col_offset;
17179 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017180 _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 +010017181 if (_res == NULL && PyErr_Occurred()) {
17182 p->error_indicator = 1;
17183 D(p->level--);
17184 return NULL;
17185 }
17186 goto done;
17187 }
17188 p->mark = _mark;
17189 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
17190 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '(' arguments? ')' &t_lookahead"));
17191 }
17192 { // atom &t_lookahead
17193 if (p->error_indicator) {
17194 D(p->level--);
17195 return NULL;
17196 }
17197 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "atom &t_lookahead"));
17198 expr_ty a;
17199 if (
17200 (a = atom_rule(p)) // atom
17201 &&
17202 _PyPegen_lookahead(1, t_lookahead_rule, p)
17203 )
17204 {
17205 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "atom &t_lookahead"));
17206 _res = a;
17207 if (_res == NULL && PyErr_Occurred()) {
17208 p->error_indicator = 1;
17209 D(p->level--);
17210 return NULL;
17211 }
17212 goto done;
17213 }
17214 p->mark = _mark;
17215 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
17216 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "atom &t_lookahead"));
17217 }
17218 _res = NULL;
17219 done:
17220 D(p->level--);
17221 return _res;
17222}
17223
17224// t_lookahead: '(' | '[' | '.'
17225static void *
17226t_lookahead_rule(Parser *p)
17227{
17228 D(p->level++);
17229 if (p->error_indicator) {
17230 D(p->level--);
17231 return NULL;
17232 }
17233 void * _res = NULL;
17234 int _mark = p->mark;
17235 { // '('
17236 if (p->error_indicator) {
17237 D(p->level--);
17238 return NULL;
17239 }
17240 D(fprintf(stderr, "%*c> t_lookahead[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('"));
17241 Token * _literal;
17242 if (
17243 (_literal = _PyPegen_expect_token(p, 7)) // token='('
17244 )
17245 {
17246 D(fprintf(stderr, "%*c+ t_lookahead[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('"));
17247 _res = _literal;
17248 goto done;
17249 }
17250 p->mark = _mark;
17251 D(fprintf(stderr, "%*c%s t_lookahead[%d-%d]: %s failed!\n", p->level, ' ',
17252 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('"));
17253 }
17254 { // '['
17255 if (p->error_indicator) {
17256 D(p->level--);
17257 return NULL;
17258 }
17259 D(fprintf(stderr, "%*c> t_lookahead[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['"));
17260 Token * _literal;
17261 if (
17262 (_literal = _PyPegen_expect_token(p, 9)) // token='['
17263 )
17264 {
17265 D(fprintf(stderr, "%*c+ t_lookahead[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['"));
17266 _res = _literal;
17267 goto done;
17268 }
17269 p->mark = _mark;
17270 D(fprintf(stderr, "%*c%s t_lookahead[%d-%d]: %s failed!\n", p->level, ' ',
17271 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['"));
17272 }
17273 { // '.'
17274 if (p->error_indicator) {
17275 D(p->level--);
17276 return NULL;
17277 }
17278 D(fprintf(stderr, "%*c> t_lookahead[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
17279 Token * _literal;
17280 if (
17281 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
17282 )
17283 {
17284 D(fprintf(stderr, "%*c+ t_lookahead[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
17285 _res = _literal;
17286 goto done;
17287 }
17288 p->mark = _mark;
17289 D(fprintf(stderr, "%*c%s t_lookahead[%d-%d]: %s failed!\n", p->level, ' ',
17290 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
17291 }
17292 _res = NULL;
17293 done:
17294 D(p->level--);
17295 return _res;
17296}
17297
17298// t_atom: NAME | '(' target ')' | '(' targets? ')' | '[' targets? ']'
17299static expr_ty
17300t_atom_rule(Parser *p)
17301{
17302 D(p->level++);
17303 if (p->error_indicator) {
17304 D(p->level--);
17305 return NULL;
17306 }
17307 expr_ty _res = NULL;
17308 int _mark = p->mark;
17309 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
17310 p->error_indicator = 1;
17311 D(p->level--);
17312 return NULL;
17313 }
17314 int _start_lineno = p->tokens[_mark]->lineno;
17315 UNUSED(_start_lineno); // Only used by EXTRA macro
17316 int _start_col_offset = p->tokens[_mark]->col_offset;
17317 UNUSED(_start_col_offset); // Only used by EXTRA macro
17318 { // NAME
17319 if (p->error_indicator) {
17320 D(p->level--);
17321 return NULL;
17322 }
17323 D(fprintf(stderr, "%*c> t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
17324 expr_ty a;
17325 if (
17326 (a = _PyPegen_name_token(p)) // NAME
17327 )
17328 {
17329 D(fprintf(stderr, "%*c+ t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
17330 _res = _PyPegen_set_expr_context ( p , a , Store );
17331 if (_res == NULL && PyErr_Occurred()) {
17332 p->error_indicator = 1;
17333 D(p->level--);
17334 return NULL;
17335 }
17336 goto done;
17337 }
17338 p->mark = _mark;
17339 D(fprintf(stderr, "%*c%s t_atom[%d-%d]: %s failed!\n", p->level, ' ',
17340 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
17341 }
17342 { // '(' target ')'
17343 if (p->error_indicator) {
17344 D(p->level--);
17345 return NULL;
17346 }
17347 D(fprintf(stderr, "%*c> t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' target ')'"));
17348 Token * _literal;
17349 Token * _literal_1;
17350 expr_ty a;
17351 if (
17352 (_literal = _PyPegen_expect_token(p, 7)) // token='('
17353 &&
17354 (a = target_rule(p)) // target
17355 &&
17356 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
17357 )
17358 {
17359 D(fprintf(stderr, "%*c+ t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' target ')'"));
17360 _res = _PyPegen_set_expr_context ( p , a , Store );
17361 if (_res == NULL && PyErr_Occurred()) {
17362 p->error_indicator = 1;
17363 D(p->level--);
17364 return NULL;
17365 }
17366 goto done;
17367 }
17368 p->mark = _mark;
17369 D(fprintf(stderr, "%*c%s t_atom[%d-%d]: %s failed!\n", p->level, ' ',
17370 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' target ')'"));
17371 }
17372 { // '(' targets? ')'
17373 if (p->error_indicator) {
17374 D(p->level--);
17375 return NULL;
17376 }
17377 D(fprintf(stderr, "%*c> t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' targets? ')'"));
17378 Token * _literal;
17379 Token * _literal_1;
17380 void *b;
17381 if (
17382 (_literal = _PyPegen_expect_token(p, 7)) // token='('
17383 &&
17384 (b = targets_rule(p), 1) // targets?
17385 &&
17386 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
17387 )
17388 {
17389 D(fprintf(stderr, "%*c+ t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' targets? ')'"));
17390 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17391 if (_token == NULL) {
17392 D(p->level--);
17393 return NULL;
17394 }
17395 int _end_lineno = _token->end_lineno;
17396 UNUSED(_end_lineno); // Only used by EXTRA macro
17397 int _end_col_offset = _token->end_col_offset;
17398 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017399 _res = _PyAST_Tuple ( b , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017400 if (_res == NULL && PyErr_Occurred()) {
17401 p->error_indicator = 1;
17402 D(p->level--);
17403 return NULL;
17404 }
17405 goto done;
17406 }
17407 p->mark = _mark;
17408 D(fprintf(stderr, "%*c%s t_atom[%d-%d]: %s failed!\n", p->level, ' ',
17409 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' targets? ')'"));
17410 }
17411 { // '[' targets? ']'
17412 if (p->error_indicator) {
17413 D(p->level--);
17414 return NULL;
17415 }
17416 D(fprintf(stderr, "%*c> t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' targets? ']'"));
17417 Token * _literal;
17418 Token * _literal_1;
17419 void *b;
17420 if (
17421 (_literal = _PyPegen_expect_token(p, 9)) // token='['
17422 &&
17423 (b = targets_rule(p), 1) // targets?
17424 &&
17425 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
17426 )
17427 {
17428 D(fprintf(stderr, "%*c+ t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' targets? ']'"));
17429 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17430 if (_token == NULL) {
17431 D(p->level--);
17432 return NULL;
17433 }
17434 int _end_lineno = _token->end_lineno;
17435 UNUSED(_end_lineno); // Only used by EXTRA macro
17436 int _end_col_offset = _token->end_col_offset;
17437 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017438 _res = _PyAST_List ( b , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017439 if (_res == NULL && PyErr_Occurred()) {
17440 p->error_indicator = 1;
17441 D(p->level--);
17442 return NULL;
17443 }
17444 goto done;
17445 }
17446 p->mark = _mark;
17447 D(fprintf(stderr, "%*c%s t_atom[%d-%d]: %s failed!\n", p->level, ' ',
17448 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' targets? ']'"));
17449 }
17450 _res = NULL;
17451 done:
17452 D(p->level--);
17453 return _res;
17454}
17455
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017456// invalid_arguments:
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017457// | args ',' '*'
17458// | expression for_if_clauses ',' [args | expression for_if_clauses]
17459// | args for_if_clauses
17460// | args ',' expression for_if_clauses
17461// | args ',' args
17462static void *
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017463invalid_arguments_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017464{
17465 D(p->level++);
17466 if (p->error_indicator) {
17467 D(p->level--);
17468 return NULL;
17469 }
17470 void * _res = NULL;
17471 int _mark = p->mark;
17472 { // args ',' '*'
17473 if (p->error_indicator) {
17474 D(p->level--);
17475 return NULL;
17476 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017477 D(fprintf(stderr, "%*c> invalid_arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args ',' '*'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017478 Token * _literal;
17479 Token * _literal_1;
Pablo Galindoa77aac42021-04-23 14:27:05 +010017480 expr_ty a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017481 if (
Pablo Galindoa77aac42021-04-23 14:27:05 +010017482 (a = args_rule(p)) // args
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017483 &&
17484 (_literal = _PyPegen_expect_token(p, 12)) // token=','
17485 &&
17486 (_literal_1 = _PyPegen_expect_token(p, 16)) // token='*'
17487 )
17488 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017489 D(fprintf(stderr, "%*c+ invalid_arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args ',' '*'"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010017490 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "iterable argument unpacking follows keyword argument unpacking" );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017491 if (_res == NULL && PyErr_Occurred()) {
17492 p->error_indicator = 1;
17493 D(p->level--);
17494 return NULL;
17495 }
17496 goto done;
17497 }
17498 p->mark = _mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017499 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017500 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ',' '*'"));
17501 }
17502 { // expression for_if_clauses ',' [args | expression for_if_clauses]
17503 if (p->error_indicator) {
17504 D(p->level--);
17505 return NULL;
17506 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017507 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 +010017508 Token * _literal;
17509 void *_opt_var;
17510 UNUSED(_opt_var); // Silence compiler warnings
17511 expr_ty a;
Pablo Galindoa77aac42021-04-23 14:27:05 +010017512 asdl_comprehension_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017513 if (
17514 (a = expression_rule(p)) // expression
17515 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010017516 (b = for_if_clauses_rule(p)) // for_if_clauses
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017517 &&
17518 (_literal = _PyPegen_expect_token(p, 12)) // token=','
17519 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080017520 (_opt_var = _tmp_142_rule(p), 1) // [args | expression for_if_clauses]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017521 )
17522 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017523 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 Galindoa77aac42021-04-23 14:27:05 +010017524 _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , PyPegen_last_item ( b , comprehension_ty ) -> target , "Generator expression must be parenthesized" );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017525 if (_res == NULL && PyErr_Occurred()) {
17526 p->error_indicator = 1;
17527 D(p->level--);
17528 return NULL;
17529 }
17530 goto done;
17531 }
17532 p->mark = _mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017533 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017534 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression for_if_clauses ',' [args | expression for_if_clauses]"));
17535 }
17536 { // args for_if_clauses
17537 if (p->error_indicator) {
17538 D(p->level--);
17539 return NULL;
17540 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017541 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 +010017542 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010017543 asdl_comprehension_seq* for_if_clauses_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017544 if (
17545 (a = args_rule(p)) // args
17546 &&
17547 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
17548 )
17549 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017550 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 +010017551 _res = _PyPegen_nonparen_genexp_in_call ( p , a );
17552 if (_res == NULL && PyErr_Occurred()) {
17553 p->error_indicator = 1;
17554 D(p->level--);
17555 return NULL;
17556 }
17557 goto done;
17558 }
17559 p->mark = _mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017560 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017561 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args for_if_clauses"));
17562 }
17563 { // args ',' expression for_if_clauses
17564 if (p->error_indicator) {
17565 D(p->level--);
17566 return NULL;
17567 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017568 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 +010017569 Token * _literal;
17570 expr_ty a;
17571 expr_ty args_var;
Pablo Galindoa77aac42021-04-23 14:27:05 +010017572 asdl_comprehension_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017573 if (
17574 (args_var = args_rule(p)) // args
17575 &&
17576 (_literal = _PyPegen_expect_token(p, 12)) // token=','
17577 &&
17578 (a = expression_rule(p)) // expression
17579 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010017580 (b = for_if_clauses_rule(p)) // for_if_clauses
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017581 )
17582 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017583 D(fprintf(stderr, "%*c+ invalid_arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args ',' expression for_if_clauses"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010017584 _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , asdl_seq_GET ( b , b -> size - 1 ) -> target , "Generator expression must be parenthesized" );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017585 if (_res == NULL && PyErr_Occurred()) {
17586 p->error_indicator = 1;
17587 D(p->level--);
17588 return NULL;
17589 }
17590 goto done;
17591 }
17592 p->mark = _mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017593 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017594 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ',' expression for_if_clauses"));
17595 }
17596 { // args ',' args
17597 if (p->error_indicator) {
17598 D(p->level--);
17599 return NULL;
17600 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017601 D(fprintf(stderr, "%*c> invalid_arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args ',' args"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017602 Token * _literal;
17603 expr_ty a;
17604 expr_ty args_var;
17605 if (
17606 (a = args_rule(p)) // args
17607 &&
17608 (_literal = _PyPegen_expect_token(p, 12)) // token=','
17609 &&
17610 (args_var = args_rule(p)) // args
17611 )
17612 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017613 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 +010017614 _res = _PyPegen_arguments_parsing_error ( p , a );
17615 if (_res == NULL && PyErr_Occurred()) {
17616 p->error_indicator = 1;
17617 D(p->level--);
17618 return NULL;
17619 }
17620 goto done;
17621 }
17622 p->mark = _mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017623 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017624 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ',' args"));
17625 }
17626 _res = NULL;
17627 done:
17628 D(p->level--);
17629 return _res;
17630}
17631
17632// invalid_kwarg: expression '='
17633static void *
17634invalid_kwarg_rule(Parser *p)
17635{
17636 D(p->level++);
17637 if (p->error_indicator) {
17638 D(p->level--);
17639 return NULL;
17640 }
17641 void * _res = NULL;
17642 int _mark = p->mark;
17643 { // expression '='
17644 if (p->error_indicator) {
17645 D(p->level--);
17646 return NULL;
17647 }
17648 D(fprintf(stderr, "%*c> invalid_kwarg[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression '='"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010017649 expr_ty a;
17650 Token * b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017651 if (
Pablo Galindoa77aac42021-04-23 14:27:05 +010017652 (a = expression_rule(p)) // expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017653 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010017654 (b = _PyPegen_expect_token(p, 22)) // token='='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017655 )
17656 {
17657 D(fprintf(stderr, "%*c+ invalid_kwarg[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression '='"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010017658 _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "expression cannot contain assignment, perhaps you meant \"==\"?" );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017659 if (_res == NULL && PyErr_Occurred()) {
17660 p->error_indicator = 1;
17661 D(p->level--);
17662 return NULL;
17663 }
17664 goto done;
17665 }
17666 p->mark = _mark;
17667 D(fprintf(stderr, "%*c%s invalid_kwarg[%d-%d]: %s failed!\n", p->level, ' ',
17668 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression '='"));
17669 }
17670 _res = NULL;
17671 done:
17672 D(p->level--);
17673 return _res;
17674}
17675
Pablo Galindob2802482021-04-15 21:38:45 +010017676// invalid_expression: !(NAME STRING | SOFT_KEYWORD) disjunction expression
17677static void *
17678invalid_expression_rule(Parser *p)
17679{
17680 D(p->level++);
17681 if (p->error_indicator) {
17682 D(p->level--);
17683 return NULL;
17684 }
17685 void * _res = NULL;
17686 int _mark = p->mark;
17687 { // !(NAME STRING | SOFT_KEYWORD) disjunction expression
17688 if (p->error_indicator) {
17689 D(p->level--);
17690 return NULL;
17691 }
17692 D(fprintf(stderr, "%*c> invalid_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "!(NAME STRING | SOFT_KEYWORD) disjunction expression"));
17693 expr_ty a;
Pablo Galindoa77aac42021-04-23 14:27:05 +010017694 expr_ty b;
Pablo Galindob2802482021-04-15 21:38:45 +010017695 if (
17696 _PyPegen_lookahead(0, _tmp_143_rule, p)
17697 &&
17698 (a = disjunction_rule(p)) // disjunction
17699 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010017700 (b = expression_rule(p)) // expression
Pablo Galindob2802482021-04-15 21:38:45 +010017701 )
17702 {
17703 D(fprintf(stderr, "%*c+ invalid_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "!(NAME STRING | SOFT_KEYWORD) disjunction expression"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010017704 _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "invalid syntax. Perhaps you forgot a comma?" );
Pablo Galindob2802482021-04-15 21:38:45 +010017705 if (_res == NULL && PyErr_Occurred()) {
17706 p->error_indicator = 1;
17707 D(p->level--);
17708 return NULL;
17709 }
17710 goto done;
17711 }
17712 p->mark = _mark;
17713 D(fprintf(stderr, "%*c%s invalid_expression[%d-%d]: %s failed!\n", p->level, ' ',
17714 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "!(NAME STRING | SOFT_KEYWORD) disjunction expression"));
17715 }
17716 _res = NULL;
17717 done:
17718 D(p->level--);
17719 return _res;
17720}
17721
Pablo Galindob86ed8e2021-04-12 16:59:30 +010017722// invalid_named_expression:
17723// | expression ':=' expression
17724// | NAME '=' bitwise_or !('=' | ':=' | ',')
17725// | !(list | tuple | genexp | 'True' | 'None' | 'False') bitwise_or '=' bitwise_or !('=' | ':=' | ',')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017726static void *
17727invalid_named_expression_rule(Parser *p)
17728{
17729 D(p->level++);
17730 if (p->error_indicator) {
17731 D(p->level--);
17732 return NULL;
17733 }
17734 void * _res = NULL;
17735 int _mark = p->mark;
17736 { // expression ':=' expression
17737 if (p->error_indicator) {
17738 D(p->level--);
17739 return NULL;
17740 }
17741 D(fprintf(stderr, "%*c> invalid_named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':=' expression"));
17742 Token * _literal;
17743 expr_ty a;
17744 expr_ty expression_var;
17745 if (
17746 (a = expression_rule(p)) // expression
17747 &&
17748 (_literal = _PyPegen_expect_token(p, 53)) // token=':='
17749 &&
17750 (expression_var = expression_rule(p)) // expression
17751 )
17752 {
17753 D(fprintf(stderr, "%*c+ invalid_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':=' expression"));
17754 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "cannot use assignment expressions with %s" , _PyPegen_get_expr_name ( a ) );
17755 if (_res == NULL && PyErr_Occurred()) {
17756 p->error_indicator = 1;
17757 D(p->level--);
17758 return NULL;
17759 }
17760 goto done;
17761 }
17762 p->mark = _mark;
17763 D(fprintf(stderr, "%*c%s invalid_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
17764 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':=' expression"));
17765 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010017766 { // NAME '=' bitwise_or !('=' | ':=' | ',')
17767 if (p->error_indicator) {
17768 D(p->level--);
17769 return NULL;
17770 }
17771 D(fprintf(stderr, "%*c> invalid_named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '=' bitwise_or !('=' | ':=' | ',')"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010017772 Token * _literal;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010017773 expr_ty a;
Pablo Galindoa77aac42021-04-23 14:27:05 +010017774 expr_ty b;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010017775 if (
17776 (a = _PyPegen_name_token(p)) // NAME
17777 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010017778 (_literal = _PyPegen_expect_token(p, 22)) // token='='
Pablo Galindob86ed8e2021-04-12 16:59:30 +010017779 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010017780 (b = bitwise_or_rule(p)) // bitwise_or
Pablo Galindob86ed8e2021-04-12 16:59:30 +010017781 &&
Pablo Galindob2802482021-04-15 21:38:45 +010017782 _PyPegen_lookahead(0, _tmp_144_rule, p)
Pablo Galindob86ed8e2021-04-12 16:59:30 +010017783 )
17784 {
17785 D(fprintf(stderr, "%*c+ invalid_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '=' bitwise_or !('=' | ':=' | ',')"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010017786 _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "invalid syntax. Maybe you meant '==' or ':=' instead of '='?" );
Pablo Galindob86ed8e2021-04-12 16:59:30 +010017787 if (_res == NULL && PyErr_Occurred()) {
17788 p->error_indicator = 1;
17789 D(p->level--);
17790 return NULL;
17791 }
17792 goto done;
17793 }
17794 p->mark = _mark;
17795 D(fprintf(stderr, "%*c%s invalid_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
17796 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' bitwise_or !('=' | ':=' | ',')"));
17797 }
17798 { // !(list | tuple | genexp | 'True' | 'None' | 'False') bitwise_or '=' bitwise_or !('=' | ':=' | ',')
17799 if (p->error_indicator) {
17800 D(p->level--);
17801 return NULL;
17802 }
17803 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 !('=' | ':=' | ',')"));
17804 expr_ty a;
17805 Token * b;
17806 expr_ty bitwise_or_var;
17807 if (
Pablo Galindob2802482021-04-15 21:38:45 +010017808 _PyPegen_lookahead(0, _tmp_145_rule, p)
Pablo Galindob86ed8e2021-04-12 16:59:30 +010017809 &&
17810 (a = bitwise_or_rule(p)) // bitwise_or
17811 &&
17812 (b = _PyPegen_expect_token(p, 22)) // token='='
17813 &&
17814 (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or
17815 &&
Pablo Galindob2802482021-04-15 21:38:45 +010017816 _PyPegen_lookahead(0, _tmp_146_rule, p)
Pablo Galindob86ed8e2021-04-12 16:59:30 +010017817 )
17818 {
17819 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 !('=' | ':=' | ',')"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010017820 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "cannot assign to %s here. Maybe you meant '==' instead of '='?" , _PyPegen_get_expr_name ( a ) );
Pablo Galindob86ed8e2021-04-12 16:59:30 +010017821 if (_res == NULL && PyErr_Occurred()) {
17822 p->error_indicator = 1;
17823 D(p->level--);
17824 return NULL;
17825 }
17826 goto done;
17827 }
17828 p->mark = _mark;
17829 D(fprintf(stderr, "%*c%s invalid_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
17830 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "!(list | tuple | genexp | 'True' | 'None' | 'False') bitwise_or '=' bitwise_or !('=' | ':=' | ',')"));
17831 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017832 _res = NULL;
17833 done:
17834 D(p->level--);
17835 return _res;
17836}
17837
17838// invalid_assignment:
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030017839// | invalid_ann_assign_target ':' expression
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030017840// | star_named_expression ',' star_named_expressions* ':' expression
17841// | expression ':' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017842// | ((star_targets '='))* star_expressions '='
17843// | ((star_targets '='))* yield_expr '='
17844// | star_expressions augassign (yield_expr | star_expressions)
17845static void *
17846invalid_assignment_rule(Parser *p)
17847{
17848 D(p->level++);
17849 if (p->error_indicator) {
17850 D(p->level--);
17851 return NULL;
17852 }
17853 void * _res = NULL;
17854 int _mark = p->mark;
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030017855 { // invalid_ann_assign_target ':' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017856 if (p->error_indicator) {
17857 D(p->level--);
17858 return NULL;
17859 }
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030017860 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 +010017861 Token * _literal;
17862 expr_ty a;
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030017863 expr_ty expression_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017864 if (
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030017865 (a = invalid_ann_assign_target_rule(p)) // invalid_ann_assign_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017866 &&
17867 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030017868 &&
17869 (expression_var = expression_rule(p)) // expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017870 )
17871 {
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030017872 D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_ann_assign_target ':' expression"));
17873 _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 +010017874 if (_res == NULL && PyErr_Occurred()) {
17875 p->error_indicator = 1;
17876 D(p->level--);
17877 return NULL;
17878 }
17879 goto done;
17880 }
17881 p->mark = _mark;
17882 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030017883 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_ann_assign_target ':' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017884 }
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030017885 { // star_named_expression ',' star_named_expressions* ':' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017886 if (p->error_indicator) {
17887 D(p->level--);
17888 return NULL;
17889 }
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030017890 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 +010017891 Token * _literal;
17892 Token * _literal_1;
Pablo Galindob2802482021-04-15 21:38:45 +010017893 asdl_seq * _loop0_147_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017894 expr_ty a;
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030017895 expr_ty expression_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017896 if (
17897 (a = star_named_expression_rule(p)) // star_named_expression
17898 &&
17899 (_literal = _PyPegen_expect_token(p, 12)) // token=','
17900 &&
Pablo Galindob2802482021-04-15 21:38:45 +010017901 (_loop0_147_var = _loop0_147_rule(p)) // star_named_expressions*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017902 &&
17903 (_literal_1 = _PyPegen_expect_token(p, 11)) // token=':'
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030017904 &&
17905 (expression_var = expression_rule(p)) // expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017906 )
17907 {
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030017908 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 +010017909 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "only single target (not tuple) can be annotated" );
17910 if (_res == NULL && PyErr_Occurred()) {
17911 p->error_indicator = 1;
17912 D(p->level--);
17913 return NULL;
17914 }
17915 goto done;
17916 }
17917 p->mark = _mark;
17918 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030017919 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression ',' star_named_expressions* ':' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017920 }
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030017921 { // expression ':' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017922 if (p->error_indicator) {
17923 D(p->level--);
17924 return NULL;
17925 }
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030017926 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017927 Token * _literal;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017928 expr_ty a;
17929 expr_ty expression_var;
17930 if (
17931 (a = expression_rule(p)) // expression
17932 &&
17933 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
17934 &&
17935 (expression_var = expression_rule(p)) // expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017936 )
17937 {
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030017938 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 +010017939 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "illegal target for annotation" );
17940 if (_res == NULL && PyErr_Occurred()) {
17941 p->error_indicator = 1;
17942 D(p->level--);
17943 return NULL;
17944 }
17945 goto done;
17946 }
17947 p->mark = _mark;
17948 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030017949 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017950 }
17951 { // ((star_targets '='))* star_expressions '='
17952 if (p->error_indicator) {
17953 D(p->level--);
17954 return NULL;
17955 }
17956 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "((star_targets '='))* star_expressions '='"));
17957 Token * _literal;
Pablo Galindob2802482021-04-15 21:38:45 +010017958 asdl_seq * _loop0_148_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017959 expr_ty a;
17960 if (
Pablo Galindob2802482021-04-15 21:38:45 +010017961 (_loop0_148_var = _loop0_148_rule(p)) // ((star_targets '='))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017962 &&
17963 (a = star_expressions_rule(p)) // star_expressions
17964 &&
17965 (_literal = _PyPegen_expect_token(p, 22)) // token='='
17966 )
17967 {
17968 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 +030017969 _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( STAR_TARGETS , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017970 if (_res == NULL && PyErr_Occurred()) {
17971 p->error_indicator = 1;
17972 D(p->level--);
17973 return NULL;
17974 }
17975 goto done;
17976 }
17977 p->mark = _mark;
17978 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
17979 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "((star_targets '='))* star_expressions '='"));
17980 }
17981 { // ((star_targets '='))* yield_expr '='
17982 if (p->error_indicator) {
17983 D(p->level--);
17984 return NULL;
17985 }
17986 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "((star_targets '='))* yield_expr '='"));
17987 Token * _literal;
Pablo Galindob2802482021-04-15 21:38:45 +010017988 asdl_seq * _loop0_149_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017989 expr_ty a;
17990 if (
Pablo Galindob2802482021-04-15 21:38:45 +010017991 (_loop0_149_var = _loop0_149_rule(p)) // ((star_targets '='))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017992 &&
17993 (a = yield_expr_rule(p)) // yield_expr
17994 &&
17995 (_literal = _PyPegen_expect_token(p, 22)) // token='='
17996 )
17997 {
17998 D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "((star_targets '='))* yield_expr '='"));
17999 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "assignment to yield expression not possible" );
18000 if (_res == NULL && PyErr_Occurred()) {
18001 p->error_indicator = 1;
18002 D(p->level--);
18003 return NULL;
18004 }
18005 goto done;
18006 }
18007 p->mark = _mark;
18008 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
18009 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "((star_targets '='))* yield_expr '='"));
18010 }
18011 { // star_expressions augassign (yield_expr | star_expressions)
18012 if (p->error_indicator) {
18013 D(p->level--);
18014 return NULL;
18015 }
18016 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions augassign (yield_expr | star_expressions)"));
Pablo Galindob2802482021-04-15 21:38:45 +010018017 void *_tmp_150_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018018 expr_ty a;
18019 AugOperator* augassign_var;
18020 if (
18021 (a = star_expressions_rule(p)) // star_expressions
18022 &&
18023 (augassign_var = augassign_rule(p)) // augassign
18024 &&
Pablo Galindob2802482021-04-15 21:38:45 +010018025 (_tmp_150_var = _tmp_150_rule(p)) // yield_expr | star_expressions
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018026 )
18027 {
18028 D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions augassign (yield_expr | star_expressions)"));
18029 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "'%s' is an illegal expression for augmented assignment" , _PyPegen_get_expr_name ( a ) );
18030 if (_res == NULL && PyErr_Occurred()) {
18031 p->error_indicator = 1;
18032 D(p->level--);
18033 return NULL;
18034 }
18035 goto done;
18036 }
18037 p->mark = _mark;
18038 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
18039 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions augassign (yield_expr | star_expressions)"));
18040 }
18041 _res = NULL;
18042 done:
18043 D(p->level--);
18044 return _res;
18045}
18046
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030018047// invalid_ann_assign_target: list | tuple | '(' invalid_ann_assign_target ')'
18048static expr_ty
18049invalid_ann_assign_target_rule(Parser *p)
18050{
18051 D(p->level++);
18052 if (p->error_indicator) {
18053 D(p->level--);
18054 return NULL;
18055 }
18056 expr_ty _res = NULL;
18057 int _mark = p->mark;
18058 { // list
18059 if (p->error_indicator) {
18060 D(p->level--);
18061 return NULL;
18062 }
18063 D(fprintf(stderr, "%*c> invalid_ann_assign_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "list"));
18064 expr_ty list_var;
18065 if (
18066 (list_var = list_rule(p)) // list
18067 )
18068 {
18069 D(fprintf(stderr, "%*c+ invalid_ann_assign_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "list"));
18070 _res = list_var;
18071 goto done;
18072 }
18073 p->mark = _mark;
18074 D(fprintf(stderr, "%*c%s invalid_ann_assign_target[%d-%d]: %s failed!\n", p->level, ' ',
18075 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "list"));
18076 }
18077 { // tuple
18078 if (p->error_indicator) {
18079 D(p->level--);
18080 return NULL;
18081 }
18082 D(fprintf(stderr, "%*c> invalid_ann_assign_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "tuple"));
18083 expr_ty tuple_var;
18084 if (
18085 (tuple_var = tuple_rule(p)) // tuple
18086 )
18087 {
18088 D(fprintf(stderr, "%*c+ invalid_ann_assign_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "tuple"));
18089 _res = tuple_var;
18090 goto done;
18091 }
18092 p->mark = _mark;
18093 D(fprintf(stderr, "%*c%s invalid_ann_assign_target[%d-%d]: %s failed!\n", p->level, ' ',
18094 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "tuple"));
18095 }
18096 { // '(' invalid_ann_assign_target ')'
18097 if (p->error_indicator) {
18098 D(p->level--);
18099 return NULL;
18100 }
18101 D(fprintf(stderr, "%*c> invalid_ann_assign_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' invalid_ann_assign_target ')'"));
18102 Token * _literal;
18103 Token * _literal_1;
18104 expr_ty a;
18105 if (
18106 (_literal = _PyPegen_expect_token(p, 7)) // token='('
18107 &&
18108 (a = invalid_ann_assign_target_rule(p)) // invalid_ann_assign_target
18109 &&
18110 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
18111 )
18112 {
18113 D(fprintf(stderr, "%*c+ invalid_ann_assign_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' invalid_ann_assign_target ')'"));
18114 _res = a;
18115 if (_res == NULL && PyErr_Occurred()) {
18116 p->error_indicator = 1;
18117 D(p->level--);
18118 return NULL;
18119 }
18120 goto done;
18121 }
18122 p->mark = _mark;
18123 D(fprintf(stderr, "%*c%s invalid_ann_assign_target[%d-%d]: %s failed!\n", p->level, ' ',
18124 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' invalid_ann_assign_target ')'"));
18125 }
18126 _res = NULL;
18127 done:
18128 D(p->level--);
18129 return _res;
18130}
18131
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018132// invalid_del_stmt: 'del' star_expressions
18133static void *
18134invalid_del_stmt_rule(Parser *p)
18135{
18136 D(p->level++);
18137 if (p->error_indicator) {
18138 D(p->level--);
18139 return NULL;
18140 }
18141 void * _res = NULL;
18142 int _mark = p->mark;
18143 { // 'del' star_expressions
18144 if (p->error_indicator) {
18145 D(p->level--);
18146 return NULL;
18147 }
18148 D(fprintf(stderr, "%*c> invalid_del_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'del' star_expressions"));
18149 Token * _keyword;
18150 expr_ty a;
18151 if (
18152 (_keyword = _PyPegen_expect_token(p, 503)) // token='del'
18153 &&
18154 (a = star_expressions_rule(p)) // star_expressions
18155 )
18156 {
18157 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 +030018158 _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( DEL_TARGETS , a );
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018159 if (_res == NULL && PyErr_Occurred()) {
18160 p->error_indicator = 1;
18161 D(p->level--);
18162 return NULL;
18163 }
18164 goto done;
18165 }
18166 p->mark = _mark;
18167 D(fprintf(stderr, "%*c%s invalid_del_stmt[%d-%d]: %s failed!\n", p->level, ' ',
18168 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'del' star_expressions"));
18169 }
18170 _res = NULL;
18171 done:
18172 D(p->level--);
18173 return _res;
18174}
18175
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018176// invalid_block: NEWLINE !INDENT
18177static void *
18178invalid_block_rule(Parser *p)
18179{
18180 D(p->level++);
18181 if (p->error_indicator) {
18182 D(p->level--);
18183 return NULL;
18184 }
18185 void * _res = NULL;
18186 int _mark = p->mark;
18187 { // NEWLINE !INDENT
18188 if (p->error_indicator) {
18189 D(p->level--);
18190 return NULL;
18191 }
18192 D(fprintf(stderr, "%*c> invalid_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE !INDENT"));
18193 Token * newline_var;
18194 if (
18195 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
18196 &&
18197 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
18198 )
18199 {
18200 D(fprintf(stderr, "%*c+ invalid_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE !INDENT"));
18201 _res = RAISE_INDENTATION_ERROR ( "expected an indented block" );
18202 if (_res == NULL && PyErr_Occurred()) {
18203 p->error_indicator = 1;
18204 D(p->level--);
18205 return NULL;
18206 }
18207 goto done;
18208 }
18209 p->mark = _mark;
18210 D(fprintf(stderr, "%*c%s invalid_block[%d-%d]: %s failed!\n", p->level, ' ',
18211 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE !INDENT"));
18212 }
18213 _res = NULL;
18214 done:
18215 D(p->level--);
18216 return _res;
18217}
18218
Lysandros Nikolaou15acc4e2020-10-27 20:54:20 +020018219// Left-recursive
18220// invalid_primary: primary '{'
18221static void *
18222invalid_primary_rule(Parser *p)
18223{
18224 D(p->level++);
18225 if (p->error_indicator) {
18226 D(p->level--);
18227 return NULL;
18228 }
18229 void * _res = NULL;
18230 int _mark = p->mark;
18231 { // primary '{'
18232 if (p->error_indicator) {
18233 D(p->level--);
18234 return NULL;
18235 }
18236 D(fprintf(stderr, "%*c> invalid_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '{'"));
18237 Token * a;
18238 expr_ty primary_var;
18239 if (
18240 (primary_var = primary_rule(p)) // primary
18241 &&
18242 (a = _PyPegen_expect_token(p, 25)) // token='{'
18243 )
18244 {
18245 D(fprintf(stderr, "%*c+ invalid_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '{'"));
18246 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "invalid syntax" );
18247 if (_res == NULL && PyErr_Occurred()) {
18248 p->error_indicator = 1;
18249 D(p->level--);
18250 return NULL;
18251 }
18252 goto done;
18253 }
18254 p->mark = _mark;
18255 D(fprintf(stderr, "%*c%s invalid_primary[%d-%d]: %s failed!\n", p->level, ' ',
18256 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '{'"));
18257 }
18258 _res = NULL;
18259 done:
18260 D(p->level--);
18261 return _res;
18262}
18263
Pablo Galindo835f14f2021-01-31 22:52:56 +000018264// invalid_comprehension:
18265// | ('[' | '(' | '{') starred_expression for_if_clauses
Pablo Galindoa77aac42021-04-23 14:27:05 +010018266// | ('[' | '{') star_named_expression ',' star_named_expressions for_if_clauses
18267// | ('[' | '{') star_named_expression ',' for_if_clauses
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018268static void *
18269invalid_comprehension_rule(Parser *p)
18270{
18271 D(p->level++);
18272 if (p->error_indicator) {
18273 D(p->level--);
18274 return NULL;
18275 }
18276 void * _res = NULL;
18277 int _mark = p->mark;
18278 { // ('[' | '(' | '{') starred_expression for_if_clauses
18279 if (p->error_indicator) {
18280 D(p->level--);
18281 return NULL;
18282 }
18283 D(fprintf(stderr, "%*c> invalid_comprehension[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('[' | '(' | '{') starred_expression for_if_clauses"));
Pablo Galindob2802482021-04-15 21:38:45 +010018284 void *_tmp_151_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018285 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010018286 asdl_comprehension_seq* for_if_clauses_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018287 if (
Pablo Galindob2802482021-04-15 21:38:45 +010018288 (_tmp_151_var = _tmp_151_rule(p)) // '[' | '(' | '{'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018289 &&
18290 (a = starred_expression_rule(p)) // starred_expression
18291 &&
18292 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
18293 )
18294 {
18295 D(fprintf(stderr, "%*c+ invalid_comprehension[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "('[' | '(' | '{') starred_expression for_if_clauses"));
18296 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "iterable unpacking cannot be used in comprehension" );
18297 if (_res == NULL && PyErr_Occurred()) {
18298 p->error_indicator = 1;
18299 D(p->level--);
18300 return NULL;
18301 }
18302 goto done;
18303 }
18304 p->mark = _mark;
18305 D(fprintf(stderr, "%*c%s invalid_comprehension[%d-%d]: %s failed!\n", p->level, ' ',
18306 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('[' | '(' | '{') starred_expression for_if_clauses"));
18307 }
Pablo Galindoa77aac42021-04-23 14:27:05 +010018308 { // ('[' | '{') star_named_expression ',' star_named_expressions for_if_clauses
Pablo Galindo835f14f2021-01-31 22:52:56 +000018309 if (p->error_indicator) {
18310 D(p->level--);
18311 return NULL;
18312 }
Pablo Galindoa77aac42021-04-23 14:27:05 +010018313 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 +000018314 Token * _literal;
Pablo Galindob2802482021-04-15 21:38:45 +010018315 void *_tmp_152_var;
Pablo Galindo835f14f2021-01-31 22:52:56 +000018316 expr_ty a;
Pablo Galindoa77aac42021-04-23 14:27:05 +010018317 asdl_expr_seq* b;
Pablo Galindod4e6ed72021-02-03 23:29:26 +000018318 asdl_comprehension_seq* for_if_clauses_var;
Pablo Galindo835f14f2021-01-31 22:52:56 +000018319 if (
Pablo Galindob2802482021-04-15 21:38:45 +010018320 (_tmp_152_var = _tmp_152_rule(p)) // '[' | '{'
Pablo Galindo835f14f2021-01-31 22:52:56 +000018321 &&
18322 (a = star_named_expression_rule(p)) // star_named_expression
18323 &&
18324 (_literal = _PyPegen_expect_token(p, 12)) // token=','
18325 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010018326 (b = star_named_expressions_rule(p)) // star_named_expressions
Pablo Galindod4e6ed72021-02-03 23:29:26 +000018327 &&
18328 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
Pablo Galindo835f14f2021-01-31 22:52:56 +000018329 )
18330 {
Pablo Galindoa77aac42021-04-23 14:27:05 +010018331 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"));
18332 _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , PyPegen_last_item ( b , expr_ty ) , "did you forget parentheses around the comprehension target?" );
Pablo Galindo835f14f2021-01-31 22:52:56 +000018333 if (_res == NULL && PyErr_Occurred()) {
18334 p->error_indicator = 1;
18335 D(p->level--);
18336 return NULL;
18337 }
18338 goto done;
18339 }
18340 p->mark = _mark;
18341 D(fprintf(stderr, "%*c%s invalid_comprehension[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindoa77aac42021-04-23 14:27:05 +010018342 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('[' | '{') star_named_expression ',' star_named_expressions for_if_clauses"));
18343 }
18344 { // ('[' | '{') star_named_expression ',' for_if_clauses
18345 if (p->error_indicator) {
18346 D(p->level--);
18347 return NULL;
18348 }
18349 D(fprintf(stderr, "%*c> invalid_comprehension[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('[' | '{') star_named_expression ',' for_if_clauses"));
18350 void *_tmp_153_var;
18351 expr_ty a;
18352 Token * b;
18353 asdl_comprehension_seq* for_if_clauses_var;
18354 if (
18355 (_tmp_153_var = _tmp_153_rule(p)) // '[' | '{'
18356 &&
18357 (a = star_named_expression_rule(p)) // star_named_expression
18358 &&
18359 (b = _PyPegen_expect_token(p, 12)) // token=','
18360 &&
18361 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
18362 )
18363 {
18364 D(fprintf(stderr, "%*c+ invalid_comprehension[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "('[' | '{') star_named_expression ',' for_if_clauses"));
18365 _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "did you forget parentheses around the comprehension target?" );
18366 if (_res == NULL && PyErr_Occurred()) {
18367 p->error_indicator = 1;
18368 D(p->level--);
18369 return NULL;
18370 }
18371 goto done;
18372 }
18373 p->mark = _mark;
18374 D(fprintf(stderr, "%*c%s invalid_comprehension[%d-%d]: %s failed!\n", p->level, ' ',
18375 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('[' | '{') star_named_expression ',' for_if_clauses"));
Pablo Galindo835f14f2021-01-31 22:52:56 +000018376 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018377 _res = NULL;
18378 done:
18379 D(p->level--);
18380 return _res;
18381}
18382
18383// invalid_dict_comprehension: '{' '**' bitwise_or for_if_clauses '}'
18384static void *
18385invalid_dict_comprehension_rule(Parser *p)
18386{
18387 D(p->level++);
18388 if (p->error_indicator) {
18389 D(p->level--);
18390 return NULL;
18391 }
18392 void * _res = NULL;
18393 int _mark = p->mark;
18394 { // '{' '**' bitwise_or for_if_clauses '}'
18395 if (p->error_indicator) {
18396 D(p->level--);
18397 return NULL;
18398 }
18399 D(fprintf(stderr, "%*c> invalid_dict_comprehension[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' '**' bitwise_or for_if_clauses '}'"));
18400 Token * _literal;
18401 Token * _literal_1;
18402 Token * a;
18403 expr_ty bitwise_or_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +010018404 asdl_comprehension_seq* for_if_clauses_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018405 if (
18406 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
18407 &&
18408 (a = _PyPegen_expect_token(p, 35)) // token='**'
18409 &&
18410 (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or
18411 &&
18412 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
18413 &&
18414 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
18415 )
18416 {
18417 D(fprintf(stderr, "%*c+ invalid_dict_comprehension[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' '**' bitwise_or for_if_clauses '}'"));
18418 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "dict unpacking cannot be used in dict comprehension" );
18419 if (_res == NULL && PyErr_Occurred()) {
18420 p->error_indicator = 1;
18421 D(p->level--);
18422 return NULL;
18423 }
18424 goto done;
18425 }
18426 p->mark = _mark;
18427 D(fprintf(stderr, "%*c%s invalid_dict_comprehension[%d-%d]: %s failed!\n", p->level, ' ',
18428 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' '**' bitwise_or for_if_clauses '}'"));
18429 }
18430 _res = NULL;
18431 done:
18432 D(p->level--);
18433 return _res;
18434}
18435
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020018436// invalid_parameters: param_no_default* invalid_parameters_helper param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018437static void *
18438invalid_parameters_rule(Parser *p)
18439{
18440 D(p->level++);
18441 if (p->error_indicator) {
18442 D(p->level--);
18443 return NULL;
18444 }
18445 void * _res = NULL;
18446 int _mark = p->mark;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020018447 { // param_no_default* invalid_parameters_helper param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018448 if (p->error_indicator) {
18449 D(p->level--);
18450 return NULL;
18451 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020018452 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 Galindoa77aac42021-04-23 14:27:05 +010018453 asdl_seq * _loop0_154_var;
18454 arg_ty a;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020018455 void *invalid_parameters_helper_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018456 if (
Pablo Galindoa77aac42021-04-23 14:27:05 +010018457 (_loop0_154_var = _loop0_154_rule(p)) // param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018458 &&
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020018459 (invalid_parameters_helper_var = invalid_parameters_helper_rule(p)) // invalid_parameters_helper
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018460 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010018461 (a = param_no_default_rule(p)) // param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018462 )
18463 {
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020018464 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 Galindoa77aac42021-04-23 14:27:05 +010018465 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "non-default argument follows default argument" );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018466 if (_res == NULL && PyErr_Occurred()) {
18467 p->error_indicator = 1;
18468 D(p->level--);
18469 return NULL;
18470 }
18471 goto done;
18472 }
18473 p->mark = _mark;
18474 D(fprintf(stderr, "%*c%s invalid_parameters[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020018475 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default* invalid_parameters_helper param_no_default"));
18476 }
18477 _res = NULL;
18478 done:
18479 D(p->level--);
18480 return _res;
18481}
18482
18483// invalid_parameters_helper: slash_with_default | param_with_default+
18484static void *
18485invalid_parameters_helper_rule(Parser *p)
18486{
18487 D(p->level++);
18488 if (p->error_indicator) {
18489 D(p->level--);
18490 return NULL;
18491 }
18492 void * _res = NULL;
18493 int _mark = p->mark;
18494 { // slash_with_default
18495 if (p->error_indicator) {
18496 D(p->level--);
18497 return NULL;
18498 }
18499 D(fprintf(stderr, "%*c> invalid_parameters_helper[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slash_with_default"));
18500 SlashWithDefault* a;
18501 if (
18502 (a = slash_with_default_rule(p)) // slash_with_default
18503 )
18504 {
18505 D(fprintf(stderr, "%*c+ invalid_parameters_helper[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slash_with_default"));
18506 _res = _PyPegen_singleton_seq ( p , a );
18507 if (_res == NULL && PyErr_Occurred()) {
18508 p->error_indicator = 1;
18509 D(p->level--);
18510 return NULL;
18511 }
18512 goto done;
18513 }
18514 p->mark = _mark;
18515 D(fprintf(stderr, "%*c%s invalid_parameters_helper[%d-%d]: %s failed!\n", p->level, ' ',
18516 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_with_default"));
18517 }
18518 { // param_with_default+
18519 if (p->error_indicator) {
18520 D(p->level--);
18521 return NULL;
18522 }
18523 D(fprintf(stderr, "%*c> invalid_parameters_helper[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default+"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010018524 asdl_seq * _loop1_155_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020018525 if (
Pablo Galindoa77aac42021-04-23 14:27:05 +010018526 (_loop1_155_var = _loop1_155_rule(p)) // param_with_default+
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020018527 )
18528 {
18529 D(fprintf(stderr, "%*c+ invalid_parameters_helper[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_with_default+"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010018530 _res = _loop1_155_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020018531 goto done;
18532 }
18533 p->mark = _mark;
18534 D(fprintf(stderr, "%*c%s invalid_parameters_helper[%d-%d]: %s failed!\n", p->level, ' ',
18535 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default+"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018536 }
18537 _res = NULL;
18538 done:
18539 D(p->level--);
18540 return _res;
18541}
18542
18543// invalid_lambda_parameters:
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020018544// | lambda_param_no_default* invalid_lambda_parameters_helper lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018545static void *
18546invalid_lambda_parameters_rule(Parser *p)
18547{
18548 D(p->level++);
18549 if (p->error_indicator) {
18550 D(p->level--);
18551 return NULL;
18552 }
18553 void * _res = NULL;
18554 int _mark = p->mark;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020018555 { // lambda_param_no_default* invalid_lambda_parameters_helper lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018556 if (p->error_indicator) {
18557 D(p->level--);
18558 return NULL;
18559 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020018560 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 Galindoa77aac42021-04-23 14:27:05 +010018561 asdl_seq * _loop0_156_var;
18562 arg_ty a;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020018563 void *invalid_lambda_parameters_helper_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018564 if (
Pablo Galindoa77aac42021-04-23 14:27:05 +010018565 (_loop0_156_var = _loop0_156_rule(p)) // lambda_param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018566 &&
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020018567 (invalid_lambda_parameters_helper_var = invalid_lambda_parameters_helper_rule(p)) // invalid_lambda_parameters_helper
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018568 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010018569 (a = lambda_param_no_default_rule(p)) // lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018570 )
18571 {
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020018572 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 Galindoa77aac42021-04-23 14:27:05 +010018573 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "non-default argument follows default argument" );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018574 if (_res == NULL && PyErr_Occurred()) {
18575 p->error_indicator = 1;
18576 D(p->level--);
18577 return NULL;
18578 }
18579 goto done;
18580 }
18581 p->mark = _mark;
18582 D(fprintf(stderr, "%*c%s invalid_lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020018583 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default* invalid_lambda_parameters_helper lambda_param_no_default"));
18584 }
18585 _res = NULL;
18586 done:
18587 D(p->level--);
18588 return _res;
18589}
18590
18591// invalid_lambda_parameters_helper:
18592// | lambda_slash_with_default
18593// | lambda_param_with_default+
18594static void *
18595invalid_lambda_parameters_helper_rule(Parser *p)
18596{
18597 D(p->level++);
18598 if (p->error_indicator) {
18599 D(p->level--);
18600 return NULL;
18601 }
18602 void * _res = NULL;
18603 int _mark = p->mark;
18604 { // lambda_slash_with_default
18605 if (p->error_indicator) {
18606 D(p->level--);
18607 return NULL;
18608 }
18609 D(fprintf(stderr, "%*c> invalid_lambda_parameters_helper[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_slash_with_default"));
18610 SlashWithDefault* a;
18611 if (
18612 (a = lambda_slash_with_default_rule(p)) // lambda_slash_with_default
18613 )
18614 {
18615 D(fprintf(stderr, "%*c+ invalid_lambda_parameters_helper[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_slash_with_default"));
18616 _res = _PyPegen_singleton_seq ( p , a );
18617 if (_res == NULL && PyErr_Occurred()) {
18618 p->error_indicator = 1;
18619 D(p->level--);
18620 return NULL;
18621 }
18622 goto done;
18623 }
18624 p->mark = _mark;
18625 D(fprintf(stderr, "%*c%s invalid_lambda_parameters_helper[%d-%d]: %s failed!\n", p->level, ' ',
18626 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_slash_with_default"));
18627 }
18628 { // lambda_param_with_default+
18629 if (p->error_indicator) {
18630 D(p->level--);
18631 return NULL;
18632 }
18633 D(fprintf(stderr, "%*c> invalid_lambda_parameters_helper[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010018634 asdl_seq * _loop1_157_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020018635 if (
Pablo Galindoa77aac42021-04-23 14:27:05 +010018636 (_loop1_157_var = _loop1_157_rule(p)) // lambda_param_with_default+
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020018637 )
18638 {
18639 D(fprintf(stderr, "%*c+ invalid_lambda_parameters_helper[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010018640 _res = _loop1_157_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020018641 goto done;
18642 }
18643 p->mark = _mark;
18644 D(fprintf(stderr, "%*c%s invalid_lambda_parameters_helper[%d-%d]: %s failed!\n", p->level, ' ',
18645 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default+"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018646 }
18647 _res = NULL;
18648 done:
18649 D(p->level--);
18650 return _res;
18651}
18652
18653// invalid_star_etc: '*' (')' | ',' (')' | '**')) | '*' ',' TYPE_COMMENT
18654static void *
18655invalid_star_etc_rule(Parser *p)
18656{
18657 D(p->level++);
18658 if (p->error_indicator) {
18659 D(p->level--);
18660 return NULL;
18661 }
18662 void * _res = NULL;
18663 int _mark = p->mark;
18664 { // '*' (')' | ',' (')' | '**'))
18665 if (p->error_indicator) {
18666 D(p->level--);
18667 return NULL;
18668 }
18669 D(fprintf(stderr, "%*c> invalid_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (')' | ',' (')' | '**'))"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010018670 void *_tmp_158_var;
18671 Token * a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018672 if (
Pablo Galindoa77aac42021-04-23 14:27:05 +010018673 (a = _PyPegen_expect_token(p, 16)) // token='*'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018674 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010018675 (_tmp_158_var = _tmp_158_rule(p)) // ')' | ',' (')' | '**')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018676 )
18677 {
18678 D(fprintf(stderr, "%*c+ invalid_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (')' | ',' (')' | '**'))"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010018679 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "named arguments must follow bare *" );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018680 if (_res == NULL && PyErr_Occurred()) {
18681 p->error_indicator = 1;
18682 D(p->level--);
18683 return NULL;
18684 }
18685 goto done;
18686 }
18687 p->mark = _mark;
18688 D(fprintf(stderr, "%*c%s invalid_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
18689 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' (')' | ',' (')' | '**'))"));
18690 }
18691 { // '*' ',' TYPE_COMMENT
18692 if (p->error_indicator) {
18693 D(p->level--);
18694 return NULL;
18695 }
18696 D(fprintf(stderr, "%*c> invalid_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' ',' TYPE_COMMENT"));
18697 Token * _literal;
18698 Token * _literal_1;
18699 Token * type_comment_var;
18700 if (
18701 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
18702 &&
18703 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
18704 &&
18705 (type_comment_var = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
18706 )
18707 {
18708 D(fprintf(stderr, "%*c+ invalid_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' ',' TYPE_COMMENT"));
18709 _res = RAISE_SYNTAX_ERROR ( "bare * has associated type comment" );
18710 if (_res == NULL && PyErr_Occurred()) {
18711 p->error_indicator = 1;
18712 D(p->level--);
18713 return NULL;
18714 }
18715 goto done;
18716 }
18717 p->mark = _mark;
18718 D(fprintf(stderr, "%*c%s invalid_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
18719 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' ',' TYPE_COMMENT"));
18720 }
18721 _res = NULL;
18722 done:
18723 D(p->level--);
18724 return _res;
18725}
18726
18727// invalid_lambda_star_etc: '*' (':' | ',' (':' | '**'))
18728static void *
18729invalid_lambda_star_etc_rule(Parser *p)
18730{
18731 D(p->level++);
18732 if (p->error_indicator) {
18733 D(p->level--);
18734 return NULL;
18735 }
18736 void * _res = NULL;
18737 int _mark = p->mark;
18738 { // '*' (':' | ',' (':' | '**'))
18739 if (p->error_indicator) {
18740 D(p->level--);
18741 return NULL;
18742 }
18743 D(fprintf(stderr, "%*c> invalid_lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (':' | ',' (':' | '**'))"));
18744 Token * _literal;
Pablo Galindoa77aac42021-04-23 14:27:05 +010018745 void *_tmp_159_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018746 if (
18747 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
18748 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010018749 (_tmp_159_var = _tmp_159_rule(p)) // ':' | ',' (':' | '**')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018750 )
18751 {
18752 D(fprintf(stderr, "%*c+ invalid_lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (':' | ',' (':' | '**'))"));
18753 _res = RAISE_SYNTAX_ERROR ( "named arguments must follow bare *" );
18754 if (_res == NULL && PyErr_Occurred()) {
18755 p->error_indicator = 1;
18756 D(p->level--);
18757 return NULL;
18758 }
18759 goto done;
18760 }
18761 p->mark = _mark;
18762 D(fprintf(stderr, "%*c%s invalid_lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
18763 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' (':' | ',' (':' | '**'))"));
18764 }
18765 _res = NULL;
18766 done:
18767 D(p->level--);
18768 return _res;
18769}
18770
18771// invalid_double_type_comments: TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT
18772static void *
18773invalid_double_type_comments_rule(Parser *p)
18774{
18775 D(p->level++);
18776 if (p->error_indicator) {
18777 D(p->level--);
18778 return NULL;
18779 }
18780 void * _res = NULL;
18781 int _mark = p->mark;
18782 { // TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT
18783 if (p->error_indicator) {
18784 D(p->level--);
18785 return NULL;
18786 }
18787 D(fprintf(stderr, "%*c> invalid_double_type_comments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT"));
18788 Token * indent_var;
18789 Token * newline_var;
18790 Token * newline_var_1;
18791 Token * type_comment_var;
18792 Token * type_comment_var_1;
18793 if (
18794 (type_comment_var = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
18795 &&
18796 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
18797 &&
18798 (type_comment_var_1 = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
18799 &&
18800 (newline_var_1 = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
18801 &&
18802 (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
18803 )
18804 {
18805 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"));
18806 _res = RAISE_SYNTAX_ERROR ( "Cannot have two type comments on def" );
18807 if (_res == NULL && PyErr_Occurred()) {
18808 p->error_indicator = 1;
18809 D(p->level--);
18810 return NULL;
18811 }
18812 goto done;
18813 }
18814 p->mark = _mark;
18815 D(fprintf(stderr, "%*c%s invalid_double_type_comments[%d-%d]: %s failed!\n", p->level, ' ',
18816 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT"));
18817 }
18818 _res = NULL;
18819 done:
18820 D(p->level--);
18821 return _res;
18822}
18823
Pablo Galindo58fb1562021-02-02 19:54:22 +000018824// invalid_with_item: expression 'as' expression &(',' | ')' | ':')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018825static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018826invalid_with_item_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018827{
18828 D(p->level++);
18829 if (p->error_indicator) {
18830 D(p->level--);
18831 return NULL;
18832 }
18833 void * _res = NULL;
18834 int _mark = p->mark;
Pablo Galindo58fb1562021-02-02 19:54:22 +000018835 { // expression 'as' expression &(',' | ')' | ':')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018836 if (p->error_indicator) {
18837 D(p->level--);
18838 return NULL;
18839 }
Pablo Galindo58fb1562021-02-02 19:54:22 +000018840 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 +030018841 Token * _keyword;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018842 expr_ty a;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018843 expr_ty expression_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018844 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018845 (expression_var = expression_rule(p)) // expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018846 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018847 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
18848 &&
18849 (a = expression_rule(p)) // expression
Pablo Galindo58fb1562021-02-02 19:54:22 +000018850 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010018851 _PyPegen_lookahead(1, _tmp_160_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018852 )
18853 {
Pablo Galindo58fb1562021-02-02 19:54:22 +000018854 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 +030018855 _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( STAR_TARGETS , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018856 if (_res == NULL && PyErr_Occurred()) {
18857 p->error_indicator = 1;
18858 D(p->level--);
18859 return NULL;
18860 }
18861 goto done;
18862 }
18863 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018864 D(fprintf(stderr, "%*c%s invalid_with_item[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +000018865 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression 'as' expression &(',' | ')' | ':')"));
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018866 }
18867 _res = NULL;
18868 done:
18869 D(p->level--);
18870 return _res;
18871}
18872
18873// invalid_for_target: ASYNC? 'for' star_expressions
18874static void *
18875invalid_for_target_rule(Parser *p)
18876{
18877 D(p->level++);
18878 if (p->error_indicator) {
18879 D(p->level--);
18880 return NULL;
18881 }
18882 void * _res = NULL;
18883 int _mark = p->mark;
18884 { // ASYNC? 'for' star_expressions
18885 if (p->error_indicator) {
18886 D(p->level--);
18887 return NULL;
18888 }
18889 D(fprintf(stderr, "%*c> invalid_for_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'for' star_expressions"));
18890 Token * _keyword;
18891 void *_opt_var;
18892 UNUSED(_opt_var); // Silence compiler warnings
18893 expr_ty a;
18894 if (
18895 (_opt_var = _PyPegen_expect_token(p, ASYNC), 1) // ASYNC?
18896 &&
18897 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
18898 &&
18899 (a = star_expressions_rule(p)) // star_expressions
18900 )
18901 {
18902 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 +030018903 _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( FOR_TARGETS , a );
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018904 if (_res == NULL && PyErr_Occurred()) {
18905 p->error_indicator = 1;
18906 D(p->level--);
18907 return NULL;
18908 }
18909 goto done;
18910 }
18911 p->mark = _mark;
18912 D(fprintf(stderr, "%*c%s invalid_for_target[%d-%d]: %s failed!\n", p->level, ' ',
18913 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'for' star_expressions"));
18914 }
18915 _res = NULL;
18916 done:
18917 D(p->level--);
18918 return _res;
18919}
18920
Pablo Galindo8efad612021-03-24 19:34:17 +000018921// invalid_group: '(' starred_expression ')' | '(' '**' expression ')'
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018922static void *
18923invalid_group_rule(Parser *p)
18924{
18925 D(p->level++);
18926 if (p->error_indicator) {
18927 D(p->level--);
18928 return NULL;
18929 }
18930 void * _res = NULL;
18931 int _mark = p->mark;
18932 { // '(' starred_expression ')'
18933 if (p->error_indicator) {
18934 D(p->level--);
18935 return NULL;
18936 }
18937 D(fprintf(stderr, "%*c> invalid_group[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' starred_expression ')'"));
18938 Token * _literal;
18939 Token * _literal_1;
18940 expr_ty a;
18941 if (
18942 (_literal = _PyPegen_expect_token(p, 7)) // token='('
18943 &&
18944 (a = starred_expression_rule(p)) // starred_expression
18945 &&
18946 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
18947 )
18948 {
18949 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 +010018950 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "cannot use starred expression here" );
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018951 if (_res == NULL && PyErr_Occurred()) {
18952 p->error_indicator = 1;
18953 D(p->level--);
18954 return NULL;
18955 }
18956 goto done;
18957 }
18958 p->mark = _mark;
18959 D(fprintf(stderr, "%*c%s invalid_group[%d-%d]: %s failed!\n", p->level, ' ',
18960 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' starred_expression ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018961 }
Pablo Galindo8efad612021-03-24 19:34:17 +000018962 { // '(' '**' expression ')'
18963 if (p->error_indicator) {
18964 D(p->level--);
18965 return NULL;
18966 }
18967 D(fprintf(stderr, "%*c> invalid_group[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' '**' expression ')'"));
18968 Token * _literal;
18969 Token * _literal_1;
18970 Token * a;
18971 expr_ty expression_var;
18972 if (
18973 (_literal = _PyPegen_expect_token(p, 7)) // token='('
18974 &&
18975 (a = _PyPegen_expect_token(p, 35)) // token='**'
18976 &&
18977 (expression_var = expression_rule(p)) // expression
18978 &&
18979 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
18980 )
18981 {
18982 D(fprintf(stderr, "%*c+ invalid_group[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' '**' expression ')'"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018983 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "cannot use double starred expression here" );
Pablo Galindo8efad612021-03-24 19:34:17 +000018984 if (_res == NULL && PyErr_Occurred()) {
18985 p->error_indicator = 1;
18986 D(p->level--);
18987 return NULL;
18988 }
18989 goto done;
18990 }
18991 p->mark = _mark;
18992 D(fprintf(stderr, "%*c%s invalid_group[%d-%d]: %s failed!\n", p->level, ' ',
18993 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' '**' expression ')'"));
18994 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018995 _res = NULL;
18996 done:
18997 D(p->level--);
18998 return _res;
18999}
19000
19001// invalid_import_from_targets: import_from_as_names ','
19002static void *
19003invalid_import_from_targets_rule(Parser *p)
19004{
19005 D(p->level++);
19006 if (p->error_indicator) {
19007 D(p->level--);
19008 return NULL;
19009 }
19010 void * _res = NULL;
19011 int _mark = p->mark;
19012 { // import_from_as_names ','
19013 if (p->error_indicator) {
19014 D(p->level--);
19015 return NULL;
19016 }
19017 D(fprintf(stderr, "%*c> invalid_import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "import_from_as_names ','"));
19018 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +010019019 asdl_alias_seq* import_from_as_names_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019020 if (
19021 (import_from_as_names_var = import_from_as_names_rule(p)) // import_from_as_names
19022 &&
19023 (_literal = _PyPegen_expect_token(p, 12)) // token=','
19024 )
19025 {
19026 D(fprintf(stderr, "%*c+ invalid_import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_from_as_names ','"));
19027 _res = RAISE_SYNTAX_ERROR ( "trailing comma not allowed without surrounding parentheses" );
19028 if (_res == NULL && PyErr_Occurred()) {
19029 p->error_indicator = 1;
19030 D(p->level--);
19031 return NULL;
19032 }
19033 goto done;
19034 }
19035 p->mark = _mark;
19036 D(fprintf(stderr, "%*c%s invalid_import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
19037 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from_as_names ','"));
19038 }
19039 _res = NULL;
19040 done:
19041 D(p->level--);
19042 return _res;
19043}
19044
Pablo Galindo58fb1562021-02-02 19:54:22 +000019045// invalid_with_stmt:
19046// | ASYNC? 'with' ','.(expression ['as' star_target])+ &&':'
19047// | ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' &&':'
19048static void *
19049invalid_with_stmt_rule(Parser *p)
19050{
19051 D(p->level++);
19052 if (p->error_indicator) {
19053 D(p->level--);
19054 return NULL;
19055 }
19056 void * _res = NULL;
19057 int _mark = p->mark;
19058 { // ASYNC? 'with' ','.(expression ['as' star_target])+ &&':'
19059 if (p->error_indicator) {
19060 D(p->level--);
19061 return NULL;
19062 }
19063 D(fprintf(stderr, "%*c> invalid_with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' ','.(expression ['as' star_target])+ &&':'"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010019064 asdl_seq * _gather_161_var;
Pablo Galindo58fb1562021-02-02 19:54:22 +000019065 Token * _keyword;
19066 Token * _literal;
19067 void *_opt_var;
19068 UNUSED(_opt_var); // Silence compiler warnings
19069 if (
19070 (_opt_var = _PyPegen_expect_token(p, ASYNC), 1) // ASYNC?
19071 &&
19072 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
19073 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010019074 (_gather_161_var = _gather_161_rule(p)) // ','.(expression ['as' star_target])+
Pablo Galindo58fb1562021-02-02 19:54:22 +000019075 &&
19076 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
19077 )
19078 {
19079 D(fprintf(stderr, "%*c+ invalid_with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' ','.(expression ['as' star_target])+ &&':'"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010019080 _res = _PyPegen_dummy_name(p, _opt_var, _keyword, _gather_161_var, _literal);
Pablo Galindo58fb1562021-02-02 19:54:22 +000019081 goto done;
19082 }
19083 p->mark = _mark;
19084 D(fprintf(stderr, "%*c%s invalid_with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
19085 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'with' ','.(expression ['as' star_target])+ &&':'"));
19086 }
19087 { // ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' &&':'
19088 if (p->error_indicator) {
19089 D(p->level--);
19090 return NULL;
19091 }
19092 D(fprintf(stderr, "%*c> invalid_with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' &&':'"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010019093 asdl_seq * _gather_163_var;
Pablo Galindo58fb1562021-02-02 19:54:22 +000019094 Token * _keyword;
19095 Token * _literal;
19096 Token * _literal_1;
19097 Token * _literal_2;
19098 void *_opt_var;
19099 UNUSED(_opt_var); // Silence compiler warnings
19100 void *_opt_var_1;
19101 UNUSED(_opt_var_1); // Silence compiler warnings
19102 if (
19103 (_opt_var = _PyPegen_expect_token(p, ASYNC), 1) // ASYNC?
19104 &&
19105 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
19106 &&
19107 (_literal = _PyPegen_expect_token(p, 7)) // token='('
19108 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010019109 (_gather_163_var = _gather_163_rule(p)) // ','.(expressions ['as' star_target])+
Pablo Galindo58fb1562021-02-02 19:54:22 +000019110 &&
19111 (_opt_var_1 = _PyPegen_expect_token(p, 12), 1) // ','?
19112 &&
19113 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
19114 &&
19115 (_literal_2 = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
19116 )
19117 {
19118 D(fprintf(stderr, "%*c+ invalid_with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' &&':'"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010019119 _res = _PyPegen_dummy_name(p, _opt_var, _keyword, _literal, _gather_163_var, _opt_var_1, _literal_1, _literal_2);
Pablo Galindo58fb1562021-02-02 19:54:22 +000019120 goto done;
19121 }
19122 p->mark = _mark;
19123 D(fprintf(stderr, "%*c%s invalid_with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
19124 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' &&':'"));
19125 }
19126 _res = NULL;
19127 done:
19128 D(p->level--);
19129 return _res;
19130}
19131
Pablo Galindo56c95df2021-04-21 15:28:21 +010019132// invalid_with_stmt_indent:
19133// | ASYNC? 'with' ','.(expression ['as' star_target])+ ':' NEWLINE !INDENT
19134// | ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' ':' NEWLINE !INDENT
Pablo Galindo206cbda2021-02-07 18:42:21 +000019135static void *
Pablo Galindo56c95df2021-04-21 15:28:21 +010019136invalid_with_stmt_indent_rule(Parser *p)
19137{
19138 D(p->level++);
19139 if (p->error_indicator) {
19140 D(p->level--);
19141 return NULL;
19142 }
19143 void * _res = NULL;
19144 int _mark = p->mark;
19145 { // ASYNC? 'with' ','.(expression ['as' star_target])+ ':' NEWLINE !INDENT
19146 if (p->error_indicator) {
19147 D(p->level--);
19148 return NULL;
19149 }
19150 D(fprintf(stderr, "%*c> invalid_with_stmt_indent[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' ','.(expression ['as' star_target])+ ':' NEWLINE !INDENT"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010019151 asdl_seq * _gather_165_var;
Pablo Galindo56c95df2021-04-21 15:28:21 +010019152 Token * _literal;
19153 void *_opt_var;
19154 UNUSED(_opt_var); // Silence compiler warnings
19155 Token * a;
19156 Token * newline_var;
19157 if (
19158 (_opt_var = _PyPegen_expect_token(p, ASYNC), 1) // ASYNC?
19159 &&
19160 (a = _PyPegen_expect_token(p, 519)) // token='with'
19161 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010019162 (_gather_165_var = _gather_165_rule(p)) // ','.(expression ['as' star_target])+
Pablo Galindo56c95df2021-04-21 15:28:21 +010019163 &&
19164 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
19165 &&
19166 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
19167 &&
19168 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
19169 )
19170 {
19171 D(fprintf(stderr, "%*c+ invalid_with_stmt_indent[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' ','.(expression ['as' star_target])+ ':' NEWLINE !INDENT"));
19172 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'with' statement on line %d" , a -> lineno );
19173 if (_res == NULL && PyErr_Occurred()) {
19174 p->error_indicator = 1;
19175 D(p->level--);
19176 return NULL;
19177 }
19178 goto done;
19179 }
19180 p->mark = _mark;
19181 D(fprintf(stderr, "%*c%s invalid_with_stmt_indent[%d-%d]: %s failed!\n", p->level, ' ',
19182 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'with' ','.(expression ['as' star_target])+ ':' NEWLINE !INDENT"));
19183 }
19184 { // ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' ':' NEWLINE !INDENT
19185 if (p->error_indicator) {
19186 D(p->level--);
19187 return NULL;
19188 }
19189 D(fprintf(stderr, "%*c> invalid_with_stmt_indent[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' ':' NEWLINE !INDENT"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010019190 asdl_seq * _gather_167_var;
Pablo Galindo56c95df2021-04-21 15:28:21 +010019191 Token * _literal;
19192 Token * _literal_1;
19193 Token * _literal_2;
19194 void *_opt_var;
19195 UNUSED(_opt_var); // Silence compiler warnings
19196 void *_opt_var_1;
19197 UNUSED(_opt_var_1); // Silence compiler warnings
19198 Token * a;
19199 Token * newline_var;
19200 if (
19201 (_opt_var = _PyPegen_expect_token(p, ASYNC), 1) // ASYNC?
19202 &&
19203 (a = _PyPegen_expect_token(p, 519)) // token='with'
19204 &&
19205 (_literal = _PyPegen_expect_token(p, 7)) // token='('
19206 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010019207 (_gather_167_var = _gather_167_rule(p)) // ','.(expressions ['as' star_target])+
Pablo Galindo56c95df2021-04-21 15:28:21 +010019208 &&
19209 (_opt_var_1 = _PyPegen_expect_token(p, 12), 1) // ','?
19210 &&
19211 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
19212 &&
19213 (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':'
19214 &&
19215 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
19216 &&
19217 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
19218 )
19219 {
19220 D(fprintf(stderr, "%*c+ invalid_with_stmt_indent[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' ':' NEWLINE !INDENT"));
19221 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'with' statement on line %d" , a -> lineno );
19222 if (_res == NULL && PyErr_Occurred()) {
19223 p->error_indicator = 1;
19224 D(p->level--);
19225 return NULL;
19226 }
19227 goto done;
19228 }
19229 p->mark = _mark;
19230 D(fprintf(stderr, "%*c%s invalid_with_stmt_indent[%d-%d]: %s failed!\n", p->level, ' ',
19231 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' ':' NEWLINE !INDENT"));
19232 }
19233 _res = NULL;
19234 done:
19235 D(p->level--);
19236 return _res;
19237}
19238
19239// invalid_try_stmt: 'try' ':' NEWLINE !INDENT
19240static void *
19241invalid_try_stmt_rule(Parser *p)
19242{
19243 D(p->level++);
19244 if (p->error_indicator) {
19245 D(p->level--);
19246 return NULL;
19247 }
19248 void * _res = NULL;
19249 int _mark = p->mark;
19250 { // 'try' ':' NEWLINE !INDENT
19251 if (p->error_indicator) {
19252 D(p->level--);
19253 return NULL;
19254 }
19255 D(fprintf(stderr, "%*c> invalid_try_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'try' ':' NEWLINE !INDENT"));
19256 Token * _literal;
19257 Token * a;
19258 Token * newline_var;
19259 if (
19260 (a = _PyPegen_expect_token(p, 511)) // token='try'
19261 &&
19262 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
19263 &&
19264 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
19265 &&
19266 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
19267 )
19268 {
19269 D(fprintf(stderr, "%*c+ invalid_try_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'try' ':' NEWLINE !INDENT"));
19270 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'try' statement on line %d" , a -> lineno );
19271 if (_res == NULL && PyErr_Occurred()) {
19272 p->error_indicator = 1;
19273 D(p->level--);
19274 return NULL;
19275 }
19276 goto done;
19277 }
19278 p->mark = _mark;
19279 D(fprintf(stderr, "%*c%s invalid_try_stmt[%d-%d]: %s failed!\n", p->level, ' ',
19280 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'try' ':' NEWLINE !INDENT"));
19281 }
19282 _res = NULL;
19283 done:
19284 D(p->level--);
19285 return _res;
19286}
19287
19288// invalid_except_stmt:
19289// | 'except' expression ',' expressions ['as' NAME] ':'
19290// | 'except' expression ['as' NAME] NEWLINE
19291// | 'except' NEWLINE
19292static void *
19293invalid_except_stmt_rule(Parser *p)
Pablo Galindo206cbda2021-02-07 18:42:21 +000019294{
19295 D(p->level++);
19296 if (p->error_indicator) {
19297 D(p->level--);
19298 return NULL;
19299 }
19300 void * _res = NULL;
19301 int _mark = p->mark;
19302 { // 'except' expression ',' expressions ['as' NAME] ':'
19303 if (p->error_indicator) {
19304 D(p->level--);
19305 return NULL;
19306 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010019307 D(fprintf(stderr, "%*c> invalid_except_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' expression ',' expressions ['as' NAME] ':'"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000019308 Token * _keyword;
19309 Token * _literal;
19310 Token * _literal_1;
19311 void *_opt_var;
19312 UNUSED(_opt_var); // Silence compiler warnings
19313 expr_ty a;
19314 expr_ty expressions_var;
19315 if (
19316 (_keyword = _PyPegen_expect_token(p, 521)) // token='except'
19317 &&
19318 (a = expression_rule(p)) // expression
19319 &&
19320 (_literal = _PyPegen_expect_token(p, 12)) // token=','
19321 &&
19322 (expressions_var = expressions_rule(p)) // expressions
19323 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010019324 (_opt_var = _tmp_169_rule(p), 1) // ['as' NAME]
Pablo Galindo206cbda2021-02-07 18:42:21 +000019325 &&
19326 (_literal_1 = _PyPegen_expect_token(p, 11)) // token=':'
19327 )
19328 {
Pablo Galindo56c95df2021-04-21 15:28:21 +010019329 D(fprintf(stderr, "%*c+ invalid_except_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' expression ',' expressions ['as' NAME] ':'"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010019330 _res = RAISE_SYNTAX_ERROR_STARTING_FROM ( a , "exception group must be parenthesized" );
Pablo Galindo206cbda2021-02-07 18:42:21 +000019331 if (_res == NULL && PyErr_Occurred()) {
19332 p->error_indicator = 1;
19333 D(p->level--);
19334 return NULL;
19335 }
19336 goto done;
19337 }
19338 p->mark = _mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +010019339 D(fprintf(stderr, "%*c%s invalid_except_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo206cbda2021-02-07 18:42:21 +000019340 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' expression ',' expressions ['as' NAME] ':'"));
19341 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010019342 { // 'except' expression ['as' NAME] NEWLINE
Pablo Galindo206cbda2021-02-07 18:42:21 +000019343 if (p->error_indicator) {
19344 D(p->level--);
19345 return NULL;
19346 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010019347 D(fprintf(stderr, "%*c> invalid_except_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' expression ['as' NAME] NEWLINE"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000019348 void *_opt_var;
19349 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindo56c95df2021-04-21 15:28:21 +010019350 Token * a;
Pablo Galindo206cbda2021-02-07 18:42:21 +000019351 expr_ty expression_var;
Pablo Galindo56c95df2021-04-21 15:28:21 +010019352 Token * newline_var;
Pablo Galindo206cbda2021-02-07 18:42:21 +000019353 if (
Pablo Galindo56c95df2021-04-21 15:28:21 +010019354 (a = _PyPegen_expect_token(p, 521)) // token='except'
Pablo Galindo206cbda2021-02-07 18:42:21 +000019355 &&
19356 (expression_var = expression_rule(p)) // expression
19357 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010019358 (_opt_var = _tmp_170_rule(p), 1) // ['as' NAME]
Pablo Galindo206cbda2021-02-07 18:42:21 +000019359 &&
Pablo Galindo56c95df2021-04-21 15:28:21 +010019360 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Pablo Galindo206cbda2021-02-07 18:42:21 +000019361 )
19362 {
Pablo Galindo56c95df2021-04-21 15:28:21 +010019363 D(fprintf(stderr, "%*c+ invalid_except_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' expression ['as' NAME] NEWLINE"));
19364 _res = RAISE_SYNTAX_ERROR ( "expected ':'" );
19365 if (_res == NULL && PyErr_Occurred()) {
19366 p->error_indicator = 1;
19367 D(p->level--);
19368 return NULL;
19369 }
Pablo Galindo206cbda2021-02-07 18:42:21 +000019370 goto done;
19371 }
19372 p->mark = _mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +010019373 D(fprintf(stderr, "%*c%s invalid_except_stmt[%d-%d]: %s failed!\n", p->level, ' ',
19374 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' expression ['as' NAME] NEWLINE"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000019375 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010019376 { // 'except' NEWLINE
Pablo Galindo206cbda2021-02-07 18:42:21 +000019377 if (p->error_indicator) {
19378 D(p->level--);
19379 return NULL;
19380 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010019381 D(fprintf(stderr, "%*c> invalid_except_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' NEWLINE"));
19382 Token * a;
19383 Token * newline_var;
Pablo Galindo206cbda2021-02-07 18:42:21 +000019384 if (
Pablo Galindo56c95df2021-04-21 15:28:21 +010019385 (a = _PyPegen_expect_token(p, 521)) // token='except'
Pablo Galindo206cbda2021-02-07 18:42:21 +000019386 &&
Pablo Galindo56c95df2021-04-21 15:28:21 +010019387 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Pablo Galindo206cbda2021-02-07 18:42:21 +000019388 )
19389 {
Pablo Galindo56c95df2021-04-21 15:28:21 +010019390 D(fprintf(stderr, "%*c+ invalid_except_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' NEWLINE"));
19391 _res = RAISE_SYNTAX_ERROR ( "expected ':'" );
19392 if (_res == NULL && PyErr_Occurred()) {
19393 p->error_indicator = 1;
19394 D(p->level--);
19395 return NULL;
19396 }
Pablo Galindo206cbda2021-02-07 18:42:21 +000019397 goto done;
19398 }
19399 p->mark = _mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +010019400 D(fprintf(stderr, "%*c%s invalid_except_stmt[%d-%d]: %s failed!\n", p->level, ' ',
19401 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' NEWLINE"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000019402 }
19403 _res = NULL;
19404 done:
19405 D(p->level--);
19406 return _res;
19407}
19408
Pablo Galindo56c95df2021-04-21 15:28:21 +010019409// invalid_finally_stmt: 'finally' ':' NEWLINE !INDENT
19410static void *
19411invalid_finally_stmt_rule(Parser *p)
19412{
19413 D(p->level++);
19414 if (p->error_indicator) {
19415 D(p->level--);
19416 return NULL;
19417 }
19418 void * _res = NULL;
19419 int _mark = p->mark;
19420 { // 'finally' ':' NEWLINE !INDENT
19421 if (p->error_indicator) {
19422 D(p->level--);
19423 return NULL;
19424 }
19425 D(fprintf(stderr, "%*c> invalid_finally_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'finally' ':' NEWLINE !INDENT"));
19426 Token * _literal;
19427 Token * a;
19428 Token * newline_var;
19429 if (
19430 (a = _PyPegen_expect_token(p, 522)) // token='finally'
19431 &&
19432 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
19433 &&
19434 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
19435 &&
19436 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
19437 )
19438 {
19439 D(fprintf(stderr, "%*c+ invalid_finally_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'finally' ':' NEWLINE !INDENT"));
19440 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'finally' statement on line %d" , a -> lineno );
19441 if (_res == NULL && PyErr_Occurred()) {
19442 p->error_indicator = 1;
19443 D(p->level--);
19444 return NULL;
19445 }
19446 goto done;
19447 }
19448 p->mark = _mark;
19449 D(fprintf(stderr, "%*c%s invalid_finally_stmt[%d-%d]: %s failed!\n", p->level, ' ',
19450 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'finally' ':' NEWLINE !INDENT"));
19451 }
19452 _res = NULL;
19453 done:
19454 D(p->level--);
19455 return _res;
19456}
19457
19458// invalid_except_stmt_indent:
19459// | 'except' expression ['as' NAME] ':' NEWLINE !INDENT
19460// | 'except' ':' NEWLINE !INDENT
19461static void *
19462invalid_except_stmt_indent_rule(Parser *p)
19463{
19464 D(p->level++);
19465 if (p->error_indicator) {
19466 D(p->level--);
19467 return NULL;
19468 }
19469 void * _res = NULL;
19470 int _mark = p->mark;
19471 { // 'except' expression ['as' NAME] ':' NEWLINE !INDENT
19472 if (p->error_indicator) {
19473 D(p->level--);
19474 return NULL;
19475 }
19476 D(fprintf(stderr, "%*c> invalid_except_stmt_indent[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' expression ['as' NAME] ':' NEWLINE !INDENT"));
19477 Token * _literal;
19478 void *_opt_var;
19479 UNUSED(_opt_var); // Silence compiler warnings
19480 Token * a;
19481 expr_ty expression_var;
19482 Token * newline_var;
19483 if (
19484 (a = _PyPegen_expect_token(p, 521)) // token='except'
19485 &&
19486 (expression_var = expression_rule(p)) // expression
19487 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010019488 (_opt_var = _tmp_171_rule(p), 1) // ['as' NAME]
Pablo Galindo56c95df2021-04-21 15:28:21 +010019489 &&
19490 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
19491 &&
19492 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
19493 &&
19494 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
19495 )
19496 {
19497 D(fprintf(stderr, "%*c+ invalid_except_stmt_indent[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' expression ['as' NAME] ':' NEWLINE !INDENT"));
19498 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'except' statement on line %d" , a -> lineno );
19499 if (_res == NULL && PyErr_Occurred()) {
19500 p->error_indicator = 1;
19501 D(p->level--);
19502 return NULL;
19503 }
19504 goto done;
19505 }
19506 p->mark = _mark;
19507 D(fprintf(stderr, "%*c%s invalid_except_stmt_indent[%d-%d]: %s failed!\n", p->level, ' ',
19508 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' expression ['as' NAME] ':' NEWLINE !INDENT"));
19509 }
19510 { // 'except' ':' NEWLINE !INDENT
19511 if (p->error_indicator) {
19512 D(p->level--);
19513 return NULL;
19514 }
19515 D(fprintf(stderr, "%*c> invalid_except_stmt_indent[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' ':' NEWLINE !INDENT"));
19516 Token * _literal;
19517 Token * a;
19518 Token * newline_var;
19519 if (
19520 (a = _PyPegen_expect_token(p, 521)) // token='except'
19521 &&
19522 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
19523 &&
19524 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
19525 &&
19526 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
19527 )
19528 {
19529 D(fprintf(stderr, "%*c+ invalid_except_stmt_indent[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' ':' NEWLINE !INDENT"));
19530 _res = RAISE_SYNTAX_ERROR ( "expected an indented block after except statement on line %d" , a -> lineno );
19531 if (_res == NULL && PyErr_Occurred()) {
19532 p->error_indicator = 1;
19533 D(p->level--);
19534 return NULL;
19535 }
19536 goto done;
19537 }
19538 p->mark = _mark;
19539 D(fprintf(stderr, "%*c%s invalid_except_stmt_indent[%d-%d]: %s failed!\n", p->level, ' ',
19540 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' ':' NEWLINE !INDENT"));
19541 }
19542 _res = NULL;
19543 done:
19544 D(p->level--);
19545 return _res;
19546}
19547
19548// invalid_match_stmt:
19549// | "match" subject_expr !':'
19550// | "match" subject_expr ':' NEWLINE !INDENT
Pablo Galindo08fb8ac2021-03-18 01:03:11 +000019551static void *
19552invalid_match_stmt_rule(Parser *p)
19553{
19554 D(p->level++);
19555 if (p->error_indicator) {
19556 D(p->level--);
19557 return NULL;
19558 }
19559 void * _res = NULL;
19560 int _mark = p->mark;
19561 { // "match" subject_expr !':'
19562 if (p->error_indicator) {
19563 D(p->level--);
19564 return NULL;
19565 }
19566 D(fprintf(stderr, "%*c> invalid_match_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"match\" subject_expr !':'"));
19567 expr_ty _keyword;
19568 expr_ty subject_expr_var;
19569 if (
19570 (_keyword = _PyPegen_expect_soft_keyword(p, "match")) // soft_keyword='"match"'
19571 &&
19572 (subject_expr_var = subject_expr_rule(p)) // subject_expr
19573 &&
19574 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 11) // token=':'
19575 )
19576 {
19577 D(fprintf(stderr, "%*c+ invalid_match_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"match\" subject_expr !':'"));
19578 _res = CHECK_VERSION ( void * , 10 , "Pattern matching is" , RAISE_SYNTAX_ERROR ( "expected ':'" ) );
19579 if (_res == NULL && PyErr_Occurred()) {
19580 p->error_indicator = 1;
19581 D(p->level--);
19582 return NULL;
19583 }
19584 goto done;
19585 }
19586 p->mark = _mark;
19587 D(fprintf(stderr, "%*c%s invalid_match_stmt[%d-%d]: %s failed!\n", p->level, ' ',
19588 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"match\" subject_expr !':'"));
19589 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010019590 { // "match" subject_expr ':' NEWLINE !INDENT
19591 if (p->error_indicator) {
19592 D(p->level--);
19593 return NULL;
19594 }
19595 D(fprintf(stderr, "%*c> invalid_match_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"match\" subject_expr ':' NEWLINE !INDENT"));
19596 Token * _literal;
19597 expr_ty a;
19598 Token * newline_var;
19599 expr_ty subject;
19600 if (
19601 (a = _PyPegen_expect_soft_keyword(p, "match")) // soft_keyword='"match"'
19602 &&
19603 (subject = subject_expr_rule(p)) // subject_expr
19604 &&
19605 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
19606 &&
19607 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
19608 &&
19609 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
19610 )
19611 {
19612 D(fprintf(stderr, "%*c+ invalid_match_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"match\" subject_expr ':' NEWLINE !INDENT"));
19613 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'match' statement on line %d" , a -> lineno );
19614 if (_res == NULL && PyErr_Occurred()) {
19615 p->error_indicator = 1;
19616 D(p->level--);
19617 return NULL;
19618 }
19619 goto done;
19620 }
19621 p->mark = _mark;
19622 D(fprintf(stderr, "%*c%s invalid_match_stmt[%d-%d]: %s failed!\n", p->level, ' ',
19623 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"match\" subject_expr ':' NEWLINE !INDENT"));
19624 }
Pablo Galindo08fb8ac2021-03-18 01:03:11 +000019625 _res = NULL;
19626 done:
19627 D(p->level--);
19628 return _res;
19629}
19630
Pablo Galindo56c95df2021-04-21 15:28:21 +010019631// invalid_case_block:
19632// | "case" patterns guard? !':'
19633// | "case" patterns guard? ':' NEWLINE !INDENT
Pablo Galindo08fb8ac2021-03-18 01:03:11 +000019634static void *
19635invalid_case_block_rule(Parser *p)
19636{
19637 D(p->level++);
19638 if (p->error_indicator) {
19639 D(p->level--);
19640 return NULL;
19641 }
19642 void * _res = NULL;
19643 int _mark = p->mark;
19644 { // "case" patterns guard? !':'
19645 if (p->error_indicator) {
19646 D(p->level--);
19647 return NULL;
19648 }
19649 D(fprintf(stderr, "%*c> invalid_case_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"case\" patterns guard? !':'"));
19650 expr_ty _keyword;
19651 void *_opt_var;
19652 UNUSED(_opt_var); // Silence compiler warnings
19653 expr_ty patterns_var;
19654 if (
19655 (_keyword = _PyPegen_expect_soft_keyword(p, "case")) // soft_keyword='"case"'
19656 &&
19657 (patterns_var = patterns_rule(p)) // patterns
19658 &&
19659 (_opt_var = guard_rule(p), 1) // guard?
19660 &&
19661 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 11) // token=':'
19662 )
19663 {
19664 D(fprintf(stderr, "%*c+ invalid_case_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"case\" patterns guard? !':'"));
19665 _res = RAISE_SYNTAX_ERROR ( "expected ':'" );
19666 if (_res == NULL && PyErr_Occurred()) {
19667 p->error_indicator = 1;
19668 D(p->level--);
19669 return NULL;
19670 }
19671 goto done;
19672 }
19673 p->mark = _mark;
19674 D(fprintf(stderr, "%*c%s invalid_case_block[%d-%d]: %s failed!\n", p->level, ' ',
19675 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"case\" patterns guard? !':'"));
19676 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010019677 { // "case" patterns guard? ':' NEWLINE !INDENT
19678 if (p->error_indicator) {
19679 D(p->level--);
19680 return NULL;
19681 }
19682 D(fprintf(stderr, "%*c> invalid_case_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"case\" patterns guard? ':' NEWLINE !INDENT"));
19683 Token * _literal;
19684 void *_opt_var;
19685 UNUSED(_opt_var); // Silence compiler warnings
19686 expr_ty a;
19687 Token * newline_var;
19688 expr_ty patterns_var;
19689 if (
19690 (a = _PyPegen_expect_soft_keyword(p, "case")) // soft_keyword='"case"'
19691 &&
19692 (patterns_var = patterns_rule(p)) // patterns
19693 &&
19694 (_opt_var = guard_rule(p), 1) // guard?
19695 &&
19696 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
19697 &&
19698 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
19699 &&
19700 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
19701 )
19702 {
19703 D(fprintf(stderr, "%*c+ invalid_case_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"case\" patterns guard? ':' NEWLINE !INDENT"));
19704 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'case' statement on line %d" , a -> lineno );
19705 if (_res == NULL && PyErr_Occurred()) {
19706 p->error_indicator = 1;
19707 D(p->level--);
19708 return NULL;
19709 }
19710 goto done;
19711 }
19712 p->mark = _mark;
19713 D(fprintf(stderr, "%*c%s invalid_case_block[%d-%d]: %s failed!\n", p->level, ' ',
19714 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"case\" patterns guard? ':' NEWLINE !INDENT"));
19715 }
Pablo Galindo08fb8ac2021-03-18 01:03:11 +000019716 _res = NULL;
19717 done:
19718 D(p->level--);
19719 return _res;
19720}
19721
Pablo Galindo56c95df2021-04-21 15:28:21 +010019722// invalid_if_stmt:
19723// | 'if' named_expression NEWLINE
19724// | 'if' named_expression ':' NEWLINE !INDENT
Pablo Galindob86ed8e2021-04-12 16:59:30 +010019725static void *
19726invalid_if_stmt_rule(Parser *p)
19727{
19728 D(p->level++);
19729 if (p->error_indicator) {
19730 D(p->level--);
19731 return NULL;
19732 }
19733 void * _res = NULL;
19734 int _mark = p->mark;
19735 { // 'if' named_expression NEWLINE
19736 if (p->error_indicator) {
19737 D(p->level--);
19738 return NULL;
19739 }
19740 D(fprintf(stderr, "%*c> invalid_if_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' named_expression NEWLINE"));
19741 Token * _keyword;
19742 expr_ty named_expression_var;
19743 Token * newline_var;
19744 if (
19745 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
19746 &&
19747 (named_expression_var = named_expression_rule(p)) // named_expression
19748 &&
19749 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
19750 )
19751 {
19752 D(fprintf(stderr, "%*c+ invalid_if_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' named_expression NEWLINE"));
19753 _res = RAISE_SYNTAX_ERROR ( "expected ':'" );
19754 if (_res == NULL && PyErr_Occurred()) {
19755 p->error_indicator = 1;
19756 D(p->level--);
19757 return NULL;
19758 }
19759 goto done;
19760 }
19761 p->mark = _mark;
19762 D(fprintf(stderr, "%*c%s invalid_if_stmt[%d-%d]: %s failed!\n", p->level, ' ',
19763 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression NEWLINE"));
19764 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010019765 { // 'if' named_expression ':' NEWLINE !INDENT
19766 if (p->error_indicator) {
19767 D(p->level--);
19768 return NULL;
19769 }
19770 D(fprintf(stderr, "%*c> invalid_if_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' named_expression ':' NEWLINE !INDENT"));
19771 Token * _literal;
19772 Token * a;
19773 expr_ty a_1;
19774 Token * newline_var;
19775 if (
19776 (a = _PyPegen_expect_token(p, 510)) // token='if'
19777 &&
19778 (a_1 = named_expression_rule(p)) // named_expression
19779 &&
19780 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
19781 &&
19782 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
19783 &&
19784 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
19785 )
19786 {
19787 D(fprintf(stderr, "%*c+ invalid_if_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' named_expression ':' NEWLINE !INDENT"));
19788 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'if' statement on line %d" , a -> lineno );
19789 if (_res == NULL && PyErr_Occurred()) {
19790 p->error_indicator = 1;
19791 D(p->level--);
19792 return NULL;
19793 }
19794 goto done;
19795 }
19796 p->mark = _mark;
19797 D(fprintf(stderr, "%*c%s invalid_if_stmt[%d-%d]: %s failed!\n", p->level, ' ',
19798 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression ':' NEWLINE !INDENT"));
19799 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010019800 _res = NULL;
19801 done:
19802 D(p->level--);
19803 return _res;
19804}
19805
Pablo Galindo56c95df2021-04-21 15:28:21 +010019806// invalid_elif_stmt:
19807// | 'elif' named_expression NEWLINE
19808// | 'elif' named_expression ':' NEWLINE !INDENT
Pablo Galindob86ed8e2021-04-12 16:59:30 +010019809static void *
19810invalid_elif_stmt_rule(Parser *p)
19811{
19812 D(p->level++);
19813 if (p->error_indicator) {
19814 D(p->level--);
19815 return NULL;
19816 }
19817 void * _res = NULL;
19818 int _mark = p->mark;
19819 { // 'elif' named_expression NEWLINE
19820 if (p->error_indicator) {
19821 D(p->level--);
19822 return NULL;
19823 }
19824 D(fprintf(stderr, "%*c> invalid_elif_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'elif' named_expression NEWLINE"));
19825 Token * _keyword;
19826 expr_ty named_expression_var;
19827 Token * newline_var;
19828 if (
19829 (_keyword = _PyPegen_expect_token(p, 515)) // token='elif'
19830 &&
19831 (named_expression_var = named_expression_rule(p)) // named_expression
19832 &&
19833 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
19834 )
19835 {
19836 D(fprintf(stderr, "%*c+ invalid_elif_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'elif' named_expression NEWLINE"));
19837 _res = RAISE_SYNTAX_ERROR ( "expected ':'" );
19838 if (_res == NULL && PyErr_Occurred()) {
19839 p->error_indicator = 1;
19840 D(p->level--);
19841 return NULL;
19842 }
19843 goto done;
19844 }
19845 p->mark = _mark;
19846 D(fprintf(stderr, "%*c%s invalid_elif_stmt[%d-%d]: %s failed!\n", p->level, ' ',
19847 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'elif' named_expression NEWLINE"));
19848 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010019849 { // 'elif' named_expression ':' NEWLINE !INDENT
19850 if (p->error_indicator) {
19851 D(p->level--);
19852 return NULL;
19853 }
19854 D(fprintf(stderr, "%*c> invalid_elif_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'elif' named_expression ':' NEWLINE !INDENT"));
19855 Token * _literal;
19856 Token * a;
19857 expr_ty named_expression_var;
19858 Token * newline_var;
19859 if (
19860 (a = _PyPegen_expect_token(p, 515)) // token='elif'
19861 &&
19862 (named_expression_var = named_expression_rule(p)) // named_expression
19863 &&
19864 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
19865 &&
19866 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
19867 &&
19868 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
19869 )
19870 {
19871 D(fprintf(stderr, "%*c+ invalid_elif_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'elif' named_expression ':' NEWLINE !INDENT"));
19872 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'elif' statement on line %d" , a -> lineno );
19873 if (_res == NULL && PyErr_Occurred()) {
19874 p->error_indicator = 1;
19875 D(p->level--);
19876 return NULL;
19877 }
19878 goto done;
19879 }
19880 p->mark = _mark;
19881 D(fprintf(stderr, "%*c%s invalid_elif_stmt[%d-%d]: %s failed!\n", p->level, ' ',
19882 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'elif' named_expression ':' NEWLINE !INDENT"));
19883 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010019884 _res = NULL;
19885 done:
19886 D(p->level--);
19887 return _res;
19888}
19889
Pablo Galindo56c95df2021-04-21 15:28:21 +010019890// invalid_else_stmt: 'else' ':' NEWLINE !INDENT
19891static void *
19892invalid_else_stmt_rule(Parser *p)
19893{
19894 D(p->level++);
19895 if (p->error_indicator) {
19896 D(p->level--);
19897 return NULL;
19898 }
19899 void * _res = NULL;
19900 int _mark = p->mark;
19901 { // 'else' ':' NEWLINE !INDENT
19902 if (p->error_indicator) {
19903 D(p->level--);
19904 return NULL;
19905 }
19906 D(fprintf(stderr, "%*c> invalid_else_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'else' ':' NEWLINE !INDENT"));
19907 Token * _literal;
19908 Token * a;
19909 Token * newline_var;
19910 if (
19911 (a = _PyPegen_expect_token(p, 516)) // token='else'
19912 &&
19913 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
19914 &&
19915 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
19916 &&
19917 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
19918 )
19919 {
19920 D(fprintf(stderr, "%*c+ invalid_else_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'else' ':' NEWLINE !INDENT"));
19921 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'else' statement on line %d" , a -> lineno );
19922 if (_res == NULL && PyErr_Occurred()) {
19923 p->error_indicator = 1;
19924 D(p->level--);
19925 return NULL;
19926 }
19927 goto done;
19928 }
19929 p->mark = _mark;
19930 D(fprintf(stderr, "%*c%s invalid_else_stmt[%d-%d]: %s failed!\n", p->level, ' ',
19931 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'else' ':' NEWLINE !INDENT"));
19932 }
19933 _res = NULL;
19934 done:
19935 D(p->level--);
19936 return _res;
19937}
19938
19939// invalid_while_stmt:
19940// | 'while' named_expression NEWLINE
19941// | 'while' named_expression ':' NEWLINE !INDENT
Pablo Galindob86ed8e2021-04-12 16:59:30 +010019942static void *
19943invalid_while_stmt_rule(Parser *p)
19944{
19945 D(p->level++);
19946 if (p->error_indicator) {
19947 D(p->level--);
19948 return NULL;
19949 }
19950 void * _res = NULL;
19951 int _mark = p->mark;
19952 { // 'while' named_expression NEWLINE
19953 if (p->error_indicator) {
19954 D(p->level--);
19955 return NULL;
19956 }
19957 D(fprintf(stderr, "%*c> invalid_while_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'while' named_expression NEWLINE"));
19958 Token * _keyword;
19959 expr_ty named_expression_var;
19960 Token * newline_var;
19961 if (
19962 (_keyword = _PyPegen_expect_token(p, 512)) // token='while'
19963 &&
19964 (named_expression_var = named_expression_rule(p)) // named_expression
19965 &&
19966 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
19967 )
19968 {
19969 D(fprintf(stderr, "%*c+ invalid_while_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'while' named_expression NEWLINE"));
19970 _res = RAISE_SYNTAX_ERROR ( "expected ':'" );
19971 if (_res == NULL && PyErr_Occurred()) {
19972 p->error_indicator = 1;
19973 D(p->level--);
19974 return NULL;
19975 }
19976 goto done;
19977 }
19978 p->mark = _mark;
19979 D(fprintf(stderr, "%*c%s invalid_while_stmt[%d-%d]: %s failed!\n", p->level, ' ',
19980 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'while' named_expression NEWLINE"));
19981 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010019982 { // 'while' named_expression ':' NEWLINE !INDENT
19983 if (p->error_indicator) {
19984 D(p->level--);
19985 return NULL;
19986 }
19987 D(fprintf(stderr, "%*c> invalid_while_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'while' named_expression ':' NEWLINE !INDENT"));
19988 Token * _literal;
19989 Token * a;
19990 expr_ty named_expression_var;
19991 Token * newline_var;
19992 if (
19993 (a = _PyPegen_expect_token(p, 512)) // token='while'
19994 &&
19995 (named_expression_var = named_expression_rule(p)) // named_expression
19996 &&
19997 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
19998 &&
19999 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20000 &&
20001 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20002 )
20003 {
20004 D(fprintf(stderr, "%*c+ invalid_while_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'while' named_expression ':' NEWLINE !INDENT"));
20005 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'while' statement on line %d" , a -> lineno );
20006 if (_res == NULL && PyErr_Occurred()) {
20007 p->error_indicator = 1;
20008 D(p->level--);
20009 return NULL;
20010 }
20011 goto done;
20012 }
20013 p->mark = _mark;
20014 D(fprintf(stderr, "%*c%s invalid_while_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20015 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'while' named_expression ':' NEWLINE !INDENT"));
20016 }
20017 _res = NULL;
20018 done:
20019 D(p->level--);
20020 return _res;
20021}
20022
20023// invalid_for_stmt: ASYNC? 'for' star_targets 'in' star_expressions ':' NEWLINE !INDENT
20024static void *
20025invalid_for_stmt_rule(Parser *p)
20026{
20027 D(p->level++);
20028 if (p->error_indicator) {
20029 D(p->level--);
20030 return NULL;
20031 }
20032 void * _res = NULL;
20033 int _mark = p->mark;
20034 { // ASYNC? 'for' star_targets 'in' star_expressions ':' NEWLINE !INDENT
20035 if (p->error_indicator) {
20036 D(p->level--);
20037 return NULL;
20038 }
20039 D(fprintf(stderr, "%*c> invalid_for_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'for' star_targets 'in' star_expressions ':' NEWLINE !INDENT"));
20040 Token * _keyword;
20041 Token * _literal;
20042 void *_opt_var;
20043 UNUSED(_opt_var); // Silence compiler warnings
20044 Token * a;
20045 Token * newline_var;
20046 expr_ty star_expressions_var;
20047 expr_ty star_targets_var;
20048 if (
20049 (_opt_var = _PyPegen_expect_token(p, ASYNC), 1) // ASYNC?
20050 &&
20051 (a = _PyPegen_expect_token(p, 517)) // token='for'
20052 &&
20053 (star_targets_var = star_targets_rule(p)) // star_targets
20054 &&
20055 (_keyword = _PyPegen_expect_token(p, 518)) // token='in'
20056 &&
20057 (star_expressions_var = star_expressions_rule(p)) // star_expressions
20058 &&
20059 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20060 &&
20061 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20062 &&
20063 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20064 )
20065 {
20066 D(fprintf(stderr, "%*c+ invalid_for_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC? 'for' star_targets 'in' star_expressions ':' NEWLINE !INDENT"));
20067 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'for' statement on line %d" , a -> lineno );
20068 if (_res == NULL && PyErr_Occurred()) {
20069 p->error_indicator = 1;
20070 D(p->level--);
20071 return NULL;
20072 }
20073 goto done;
20074 }
20075 p->mark = _mark;
20076 D(fprintf(stderr, "%*c%s invalid_for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20077 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'for' star_targets 'in' star_expressions ':' NEWLINE !INDENT"));
20078 }
20079 _res = NULL;
20080 done:
20081 D(p->level--);
20082 return _res;
20083}
20084
20085// invalid_def_raw:
20086// | ASYNC? 'def' NAME '(' params? ')' ['->' expression] ':' NEWLINE !INDENT
20087static void *
20088invalid_def_raw_rule(Parser *p)
20089{
20090 D(p->level++);
20091 if (p->error_indicator) {
20092 D(p->level--);
20093 return NULL;
20094 }
20095 void * _res = NULL;
20096 int _mark = p->mark;
20097 { // ASYNC? 'def' NAME '(' params? ')' ['->' expression] ':' NEWLINE !INDENT
20098 if (p->error_indicator) {
20099 D(p->level--);
20100 return NULL;
20101 }
20102 D(fprintf(stderr, "%*c> invalid_def_raw[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'def' NAME '(' params? ')' ['->' expression] ':' NEWLINE !INDENT"));
20103 Token * _literal;
20104 Token * _literal_1;
20105 Token * _literal_2;
20106 void *_opt_var;
20107 UNUSED(_opt_var); // Silence compiler warnings
20108 void *_opt_var_1;
20109 UNUSED(_opt_var_1); // Silence compiler warnings
20110 void *_opt_var_2;
20111 UNUSED(_opt_var_2); // Silence compiler warnings
20112 Token * a;
20113 expr_ty name_var;
20114 Token * newline_var;
20115 if (
20116 (_opt_var = _PyPegen_expect_token(p, ASYNC), 1) // ASYNC?
20117 &&
20118 (a = _PyPegen_expect_token(p, 526)) // token='def'
20119 &&
20120 (name_var = _PyPegen_name_token(p)) // NAME
20121 &&
20122 (_literal = _PyPegen_expect_token(p, 7)) // token='('
20123 &&
20124 (_opt_var_1 = params_rule(p), 1) // params?
20125 &&
20126 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
20127 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010020128 (_opt_var_2 = _tmp_172_rule(p), 1) // ['->' expression]
Pablo Galindo56c95df2021-04-21 15:28:21 +010020129 &&
20130 (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':'
20131 &&
20132 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20133 &&
20134 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20135 )
20136 {
20137 D(fprintf(stderr, "%*c+ invalid_def_raw[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC? 'def' NAME '(' params? ')' ['->' expression] ':' NEWLINE !INDENT"));
20138 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after function definition on line %d" , a -> lineno );
20139 if (_res == NULL && PyErr_Occurred()) {
20140 p->error_indicator = 1;
20141 D(p->level--);
20142 return NULL;
20143 }
20144 goto done;
20145 }
20146 p->mark = _mark;
20147 D(fprintf(stderr, "%*c%s invalid_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
20148 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'def' NAME '(' params? ')' ['->' expression] ':' NEWLINE !INDENT"));
20149 }
20150 _res = NULL;
20151 done:
20152 D(p->level--);
20153 return _res;
20154}
20155
20156// invalid_class_def_raw: 'class' NAME ['(' arguments? ')'] ':' NEWLINE !INDENT
20157static void *
20158invalid_class_def_raw_rule(Parser *p)
20159{
20160 D(p->level++);
20161 if (p->error_indicator) {
20162 D(p->level--);
20163 return NULL;
20164 }
20165 void * _res = NULL;
20166 int _mark = p->mark;
20167 { // 'class' NAME ['(' arguments? ')'] ':' NEWLINE !INDENT
20168 if (p->error_indicator) {
20169 D(p->level--);
20170 return NULL;
20171 }
20172 D(fprintf(stderr, "%*c> invalid_class_def_raw[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'class' NAME ['(' arguments? ')'] ':' NEWLINE !INDENT"));
20173 Token * _literal;
20174 void *_opt_var;
20175 UNUSED(_opt_var); // Silence compiler warnings
20176 Token * a;
20177 expr_ty name_var;
20178 Token * newline_var;
20179 if (
20180 (a = _PyPegen_expect_token(p, 527)) // token='class'
20181 &&
20182 (name_var = _PyPegen_name_token(p)) // NAME
20183 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010020184 (_opt_var = _tmp_173_rule(p), 1) // ['(' arguments? ')']
Pablo Galindo56c95df2021-04-21 15:28:21 +010020185 &&
20186 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20187 &&
20188 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20189 &&
20190 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20191 )
20192 {
20193 D(fprintf(stderr, "%*c+ invalid_class_def_raw[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'class' NAME ['(' arguments? ')'] ':' NEWLINE !INDENT"));
20194 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after class definition on line %d" , a -> lineno );
20195 if (_res == NULL && PyErr_Occurred()) {
20196 p->error_indicator = 1;
20197 D(p->level--);
20198 return NULL;
20199 }
20200 goto done;
20201 }
20202 p->mark = _mark;
20203 D(fprintf(stderr, "%*c%s invalid_class_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
20204 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'class' NAME ['(' arguments? ')'] ':' NEWLINE !INDENT"));
20205 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010020206 _res = NULL;
20207 done:
20208 D(p->level--);
20209 return _res;
20210}
20211
Pablo Galindoda743502021-04-15 14:06:39 +010020212// invalid_double_starred_kvpairs:
20213// | ','.double_starred_kvpair+ ',' invalid_kvpair
20214// | expression ':' '*' bitwise_or
20215// | expression ':' &('}' | ',')
20216static void *
20217invalid_double_starred_kvpairs_rule(Parser *p)
20218{
20219 D(p->level++);
20220 if (p->error_indicator) {
20221 D(p->level--);
20222 return NULL;
20223 }
20224 void * _res = NULL;
20225 int _mark = p->mark;
20226 { // ','.double_starred_kvpair+ ',' invalid_kvpair
20227 if (p->error_indicator) {
20228 D(p->level--);
20229 return NULL;
20230 }
20231 D(fprintf(stderr, "%*c> invalid_double_starred_kvpairs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.double_starred_kvpair+ ',' invalid_kvpair"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010020232 asdl_seq * _gather_174_var;
Pablo Galindoda743502021-04-15 14:06:39 +010020233 Token * _literal;
20234 void *invalid_kvpair_var;
20235 if (
Pablo Galindoa77aac42021-04-23 14:27:05 +010020236 (_gather_174_var = _gather_174_rule(p)) // ','.double_starred_kvpair+
Pablo Galindoda743502021-04-15 14:06:39 +010020237 &&
20238 (_literal = _PyPegen_expect_token(p, 12)) // token=','
20239 &&
20240 (invalid_kvpair_var = invalid_kvpair_rule(p)) // invalid_kvpair
20241 )
20242 {
20243 D(fprintf(stderr, "%*c+ invalid_double_starred_kvpairs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.double_starred_kvpair+ ',' invalid_kvpair"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010020244 _res = _PyPegen_dummy_name(p, _gather_174_var, _literal, invalid_kvpair_var);
Pablo Galindoda743502021-04-15 14:06:39 +010020245 goto done;
20246 }
20247 p->mark = _mark;
20248 D(fprintf(stderr, "%*c%s invalid_double_starred_kvpairs[%d-%d]: %s failed!\n", p->level, ' ',
20249 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.double_starred_kvpair+ ',' invalid_kvpair"));
20250 }
20251 { // expression ':' '*' bitwise_or
20252 if (p->error_indicator) {
20253 D(p->level--);
20254 return NULL;
20255 }
20256 D(fprintf(stderr, "%*c> invalid_double_starred_kvpairs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' '*' bitwise_or"));
20257 Token * _literal;
20258 Token * a;
20259 expr_ty bitwise_or_var;
20260 expr_ty expression_var;
20261 if (
20262 (expression_var = expression_rule(p)) // expression
20263 &&
20264 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20265 &&
20266 (a = _PyPegen_expect_token(p, 16)) // token='*'
20267 &&
20268 (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or
20269 )
20270 {
20271 D(fprintf(stderr, "%*c+ invalid_double_starred_kvpairs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':' '*' bitwise_or"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010020272 _res = RAISE_SYNTAX_ERROR_STARTING_FROM ( a , "cannot use a starred expression in a dictionary value" );
Pablo Galindoda743502021-04-15 14:06:39 +010020273 if (_res == NULL && PyErr_Occurred()) {
20274 p->error_indicator = 1;
20275 D(p->level--);
20276 return NULL;
20277 }
20278 goto done;
20279 }
20280 p->mark = _mark;
20281 D(fprintf(stderr, "%*c%s invalid_double_starred_kvpairs[%d-%d]: %s failed!\n", p->level, ' ',
20282 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' '*' bitwise_or"));
20283 }
20284 { // expression ':' &('}' | ',')
20285 if (p->error_indicator) {
20286 D(p->level--);
20287 return NULL;
20288 }
20289 D(fprintf(stderr, "%*c> invalid_double_starred_kvpairs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' &('}' | ',')"));
20290 Token * a;
20291 expr_ty expression_var;
20292 if (
20293 (expression_var = expression_rule(p)) // expression
20294 &&
20295 (a = _PyPegen_expect_token(p, 11)) // token=':'
20296 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010020297 _PyPegen_lookahead(1, _tmp_176_rule, p)
Pablo Galindoda743502021-04-15 14:06:39 +010020298 )
20299 {
20300 D(fprintf(stderr, "%*c+ invalid_double_starred_kvpairs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':' &('}' | ',')"));
20301 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "expression expected after dictionary key and ':'" );
20302 if (_res == NULL && PyErr_Occurred()) {
20303 p->error_indicator = 1;
20304 D(p->level--);
20305 return NULL;
20306 }
20307 goto done;
20308 }
20309 p->mark = _mark;
20310 D(fprintf(stderr, "%*c%s invalid_double_starred_kvpairs[%d-%d]: %s failed!\n", p->level, ' ',
20311 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' &('}' | ',')"));
20312 }
20313 _res = NULL;
20314 done:
20315 D(p->level--);
20316 return _res;
20317}
20318
20319// invalid_kvpair: expression !(':') | expression ':' '*' bitwise_or | expression ':'
20320static void *
20321invalid_kvpair_rule(Parser *p)
20322{
20323 D(p->level++);
20324 if (p->error_indicator) {
20325 D(p->level--);
20326 return NULL;
20327 }
20328 void * _res = NULL;
20329 int _mark = p->mark;
20330 { // expression !(':')
20331 if (p->error_indicator) {
20332 D(p->level--);
20333 return NULL;
20334 }
20335 D(fprintf(stderr, "%*c> invalid_kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression !(':')"));
20336 expr_ty a;
20337 if (
20338 (a = expression_rule(p)) // expression
20339 &&
20340 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 11) // token=(':')
20341 )
20342 {
20343 D(fprintf(stderr, "%*c+ invalid_kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression !(':')"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010020344 _res = RAISE_ERROR_KNOWN_LOCATION ( p , PyExc_SyntaxError , a -> lineno , a -> end_col_offset - 1 , a -> end_lineno , - 1 , "':' expected after dictionary key" );
Pablo Galindoda743502021-04-15 14:06:39 +010020345 if (_res == NULL && PyErr_Occurred()) {
20346 p->error_indicator = 1;
20347 D(p->level--);
20348 return NULL;
20349 }
20350 goto done;
20351 }
20352 p->mark = _mark;
20353 D(fprintf(stderr, "%*c%s invalid_kvpair[%d-%d]: %s failed!\n", p->level, ' ',
20354 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression !(':')"));
20355 }
20356 { // expression ':' '*' bitwise_or
20357 if (p->error_indicator) {
20358 D(p->level--);
20359 return NULL;
20360 }
20361 D(fprintf(stderr, "%*c> invalid_kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' '*' bitwise_or"));
20362 Token * _literal;
20363 Token * a;
20364 expr_ty bitwise_or_var;
20365 expr_ty expression_var;
20366 if (
20367 (expression_var = expression_rule(p)) // expression
20368 &&
20369 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20370 &&
20371 (a = _PyPegen_expect_token(p, 16)) // token='*'
20372 &&
20373 (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or
20374 )
20375 {
20376 D(fprintf(stderr, "%*c+ invalid_kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':' '*' bitwise_or"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010020377 _res = RAISE_SYNTAX_ERROR_STARTING_FROM ( a , "cannot use a starred expression in a dictionary value" );
Pablo Galindoda743502021-04-15 14:06:39 +010020378 if (_res == NULL && PyErr_Occurred()) {
20379 p->error_indicator = 1;
20380 D(p->level--);
20381 return NULL;
20382 }
20383 goto done;
20384 }
20385 p->mark = _mark;
20386 D(fprintf(stderr, "%*c%s invalid_kvpair[%d-%d]: %s failed!\n", p->level, ' ',
20387 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' '*' bitwise_or"));
20388 }
20389 { // expression ':'
20390 if (p->error_indicator) {
20391 D(p->level--);
20392 return NULL;
20393 }
20394 D(fprintf(stderr, "%*c> invalid_kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':'"));
20395 Token * a;
20396 expr_ty expression_var;
20397 if (
20398 (expression_var = expression_rule(p)) // expression
20399 &&
20400 (a = _PyPegen_expect_token(p, 11)) // token=':'
20401 )
20402 {
20403 D(fprintf(stderr, "%*c+ invalid_kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':'"));
20404 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "expression expected after dictionary key and ':'" );
20405 if (_res == NULL && PyErr_Occurred()) {
20406 p->error_indicator = 1;
20407 D(p->level--);
20408 return NULL;
20409 }
20410 goto done;
20411 }
20412 p->mark = _mark;
20413 D(fprintf(stderr, "%*c%s invalid_kvpair[%d-%d]: %s failed!\n", p->level, ' ',
20414 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':'"));
20415 }
20416 _res = NULL;
20417 done:
20418 D(p->level--);
20419 return _res;
20420}
20421
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020422// _loop0_1: NEWLINE
20423static asdl_seq *
20424_loop0_1_rule(Parser *p)
20425{
20426 D(p->level++);
20427 if (p->error_indicator) {
20428 D(p->level--);
20429 return NULL;
20430 }
20431 void *_res = NULL;
20432 int _mark = p->mark;
20433 int _start_mark = p->mark;
20434 void **_children = PyMem_Malloc(sizeof(void *));
20435 if (!_children) {
20436 p->error_indicator = 1;
20437 PyErr_NoMemory();
20438 D(p->level--);
20439 return NULL;
20440 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010020441 Py_ssize_t _children_capacity = 1;
20442 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020443 { // NEWLINE
20444 if (p->error_indicator) {
20445 D(p->level--);
20446 return NULL;
20447 }
20448 D(fprintf(stderr, "%*c> _loop0_1[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
20449 Token * newline_var;
20450 while (
20451 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20452 )
20453 {
20454 _res = newline_var;
20455 if (_n == _children_capacity) {
20456 _children_capacity *= 2;
20457 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20458 if (!_new_children) {
20459 p->error_indicator = 1;
20460 PyErr_NoMemory();
20461 D(p->level--);
20462 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000020463 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020464 _children = _new_children;
20465 }
20466 _children[_n++] = _res;
20467 _mark = p->mark;
20468 }
20469 p->mark = _mark;
20470 D(fprintf(stderr, "%*c%s _loop0_1[%d-%d]: %s failed!\n", p->level, ' ',
20471 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
20472 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020473 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020474 if (!_seq) {
20475 PyMem_Free(_children);
20476 p->error_indicator = 1;
20477 PyErr_NoMemory();
20478 D(p->level--);
20479 return NULL;
20480 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020481 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020482 PyMem_Free(_children);
20483 _PyPegen_insert_memo(p, _start_mark, _loop0_1_type, _seq);
20484 D(p->level--);
20485 return _seq;
20486}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000020487
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020488// _loop0_2: NEWLINE
20489static asdl_seq *
20490_loop0_2_rule(Parser *p)
20491{
20492 D(p->level++);
20493 if (p->error_indicator) {
20494 D(p->level--);
20495 return NULL;
20496 }
20497 void *_res = NULL;
20498 int _mark = p->mark;
20499 int _start_mark = p->mark;
20500 void **_children = PyMem_Malloc(sizeof(void *));
20501 if (!_children) {
20502 p->error_indicator = 1;
20503 PyErr_NoMemory();
20504 D(p->level--);
20505 return NULL;
20506 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010020507 Py_ssize_t _children_capacity = 1;
20508 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020509 { // NEWLINE
20510 if (p->error_indicator) {
20511 D(p->level--);
20512 return NULL;
20513 }
20514 D(fprintf(stderr, "%*c> _loop0_2[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
20515 Token * newline_var;
20516 while (
20517 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20518 )
20519 {
20520 _res = newline_var;
20521 if (_n == _children_capacity) {
20522 _children_capacity *= 2;
20523 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20524 if (!_new_children) {
20525 p->error_indicator = 1;
20526 PyErr_NoMemory();
20527 D(p->level--);
20528 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000020529 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020530 _children = _new_children;
20531 }
20532 _children[_n++] = _res;
20533 _mark = p->mark;
20534 }
20535 p->mark = _mark;
20536 D(fprintf(stderr, "%*c%s _loop0_2[%d-%d]: %s failed!\n", p->level, ' ',
20537 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
20538 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020539 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020540 if (!_seq) {
20541 PyMem_Free(_children);
20542 p->error_indicator = 1;
20543 PyErr_NoMemory();
20544 D(p->level--);
20545 return NULL;
20546 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020547 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020548 PyMem_Free(_children);
20549 _PyPegen_insert_memo(p, _start_mark, _loop0_2_type, _seq);
20550 D(p->level--);
20551 return _seq;
20552}
20553
20554// _loop0_4: ',' expression
20555static asdl_seq *
20556_loop0_4_rule(Parser *p)
20557{
20558 D(p->level++);
20559 if (p->error_indicator) {
20560 D(p->level--);
20561 return NULL;
20562 }
20563 void *_res = NULL;
20564 int _mark = p->mark;
20565 int _start_mark = p->mark;
20566 void **_children = PyMem_Malloc(sizeof(void *));
20567 if (!_children) {
20568 p->error_indicator = 1;
20569 PyErr_NoMemory();
20570 D(p->level--);
20571 return NULL;
20572 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010020573 Py_ssize_t _children_capacity = 1;
20574 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020575 { // ',' expression
20576 if (p->error_indicator) {
20577 D(p->level--);
20578 return NULL;
20579 }
20580 D(fprintf(stderr, "%*c> _loop0_4[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
20581 Token * _literal;
20582 expr_ty elem;
20583 while (
20584 (_literal = _PyPegen_expect_token(p, 12)) // token=','
20585 &&
20586 (elem = expression_rule(p)) // expression
20587 )
20588 {
20589 _res = elem;
20590 if (_res == NULL && PyErr_Occurred()) {
20591 p->error_indicator = 1;
20592 PyMem_Free(_children);
20593 D(p->level--);
20594 return NULL;
20595 }
20596 if (_n == _children_capacity) {
20597 _children_capacity *= 2;
20598 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20599 if (!_new_children) {
20600 p->error_indicator = 1;
20601 PyErr_NoMemory();
20602 D(p->level--);
20603 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000020604 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020605 _children = _new_children;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000020606 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020607 _children[_n++] = _res;
20608 _mark = p->mark;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000020609 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020610 p->mark = _mark;
20611 D(fprintf(stderr, "%*c%s _loop0_4[%d-%d]: %s failed!\n", p->level, ' ',
20612 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000020613 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020614 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020615 if (!_seq) {
20616 PyMem_Free(_children);
20617 p->error_indicator = 1;
20618 PyErr_NoMemory();
20619 D(p->level--);
20620 return NULL;
20621 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020622 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020623 PyMem_Free(_children);
20624 _PyPegen_insert_memo(p, _start_mark, _loop0_4_type, _seq);
20625 D(p->level--);
20626 return _seq;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000020627}
20628
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020629// _gather_3: expression _loop0_4
20630static asdl_seq *
20631_gather_3_rule(Parser *p)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000020632{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020633 D(p->level++);
20634 if (p->error_indicator) {
20635 D(p->level--);
20636 return NULL;
20637 }
20638 asdl_seq * _res = NULL;
20639 int _mark = p->mark;
20640 { // expression _loop0_4
20641 if (p->error_indicator) {
20642 D(p->level--);
20643 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000020644 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020645 D(fprintf(stderr, "%*c> _gather_3[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_4"));
20646 expr_ty elem;
20647 asdl_seq * seq;
20648 if (
20649 (elem = expression_rule(p)) // expression
20650 &&
20651 (seq = _loop0_4_rule(p)) // _loop0_4
20652 )
20653 {
20654 D(fprintf(stderr, "%*c+ _gather_3[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_4"));
20655 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
20656 goto done;
20657 }
20658 p->mark = _mark;
20659 D(fprintf(stderr, "%*c%s _gather_3[%d-%d]: %s failed!\n", p->level, ' ',
20660 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_4"));
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000020661 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020662 _res = NULL;
20663 done:
20664 D(p->level--);
20665 return _res;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000020666}
20667
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020668// _loop0_6: ',' expression
20669static asdl_seq *
20670_loop0_6_rule(Parser *p)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000020671{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020672 D(p->level++);
20673 if (p->error_indicator) {
20674 D(p->level--);
20675 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000020676 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020677 void *_res = NULL;
20678 int _mark = p->mark;
20679 int _start_mark = p->mark;
20680 void **_children = PyMem_Malloc(sizeof(void *));
20681 if (!_children) {
20682 p->error_indicator = 1;
20683 PyErr_NoMemory();
20684 D(p->level--);
20685 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000020686 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010020687 Py_ssize_t _children_capacity = 1;
20688 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020689 { // ',' expression
20690 if (p->error_indicator) {
20691 D(p->level--);
20692 return NULL;
20693 }
20694 D(fprintf(stderr, "%*c> _loop0_6[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
20695 Token * _literal;
20696 expr_ty elem;
20697 while (
20698 (_literal = _PyPegen_expect_token(p, 12)) // token=','
20699 &&
20700 (elem = expression_rule(p)) // expression
20701 )
20702 {
20703 _res = elem;
20704 if (_res == NULL && PyErr_Occurred()) {
20705 p->error_indicator = 1;
20706 PyMem_Free(_children);
20707 D(p->level--);
20708 return NULL;
20709 }
20710 if (_n == _children_capacity) {
20711 _children_capacity *= 2;
20712 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20713 if (!_new_children) {
20714 p->error_indicator = 1;
20715 PyErr_NoMemory();
20716 D(p->level--);
20717 return NULL;
20718 }
20719 _children = _new_children;
20720 }
20721 _children[_n++] = _res;
20722 _mark = p->mark;
20723 }
20724 p->mark = _mark;
20725 D(fprintf(stderr, "%*c%s _loop0_6[%d-%d]: %s failed!\n", p->level, ' ',
20726 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
20727 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020728 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020729 if (!_seq) {
20730 PyMem_Free(_children);
20731 p->error_indicator = 1;
20732 PyErr_NoMemory();
20733 D(p->level--);
20734 return NULL;
20735 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020736 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020737 PyMem_Free(_children);
20738 _PyPegen_insert_memo(p, _start_mark, _loop0_6_type, _seq);
20739 D(p->level--);
20740 return _seq;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000020741}
20742
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020743// _gather_5: expression _loop0_6
20744static asdl_seq *
20745_gather_5_rule(Parser *p)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000020746{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020747 D(p->level++);
20748 if (p->error_indicator) {
20749 D(p->level--);
20750 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000020751 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020752 asdl_seq * _res = NULL;
20753 int _mark = p->mark;
20754 { // expression _loop0_6
20755 if (p->error_indicator) {
20756 D(p->level--);
20757 return NULL;
20758 }
20759 D(fprintf(stderr, "%*c> _gather_5[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_6"));
20760 expr_ty elem;
20761 asdl_seq * seq;
20762 if (
20763 (elem = expression_rule(p)) // expression
20764 &&
20765 (seq = _loop0_6_rule(p)) // _loop0_6
20766 )
20767 {
20768 D(fprintf(stderr, "%*c+ _gather_5[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_6"));
20769 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
20770 goto done;
20771 }
20772 p->mark = _mark;
20773 D(fprintf(stderr, "%*c%s _gather_5[%d-%d]: %s failed!\n", p->level, ' ',
20774 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_6"));
20775 }
20776 _res = NULL;
20777 done:
20778 D(p->level--);
20779 return _res;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000020780}
20781
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020782// _loop0_8: ',' expression
20783static asdl_seq *
20784_loop0_8_rule(Parser *p)
20785{
20786 D(p->level++);
20787 if (p->error_indicator) {
20788 D(p->level--);
20789 return NULL;
20790 }
20791 void *_res = NULL;
20792 int _mark = p->mark;
20793 int _start_mark = p->mark;
20794 void **_children = PyMem_Malloc(sizeof(void *));
20795 if (!_children) {
20796 p->error_indicator = 1;
20797 PyErr_NoMemory();
20798 D(p->level--);
20799 return NULL;
20800 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010020801 Py_ssize_t _children_capacity = 1;
20802 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020803 { // ',' expression
20804 if (p->error_indicator) {
20805 D(p->level--);
20806 return NULL;
20807 }
20808 D(fprintf(stderr, "%*c> _loop0_8[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
20809 Token * _literal;
20810 expr_ty elem;
20811 while (
20812 (_literal = _PyPegen_expect_token(p, 12)) // token=','
20813 &&
20814 (elem = expression_rule(p)) // expression
20815 )
20816 {
20817 _res = elem;
20818 if (_res == NULL && PyErr_Occurred()) {
20819 p->error_indicator = 1;
20820 PyMem_Free(_children);
20821 D(p->level--);
20822 return NULL;
20823 }
20824 if (_n == _children_capacity) {
20825 _children_capacity *= 2;
20826 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20827 if (!_new_children) {
20828 p->error_indicator = 1;
20829 PyErr_NoMemory();
20830 D(p->level--);
20831 return NULL;
20832 }
20833 _children = _new_children;
20834 }
20835 _children[_n++] = _res;
20836 _mark = p->mark;
20837 }
20838 p->mark = _mark;
20839 D(fprintf(stderr, "%*c%s _loop0_8[%d-%d]: %s failed!\n", p->level, ' ',
20840 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
20841 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020842 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020843 if (!_seq) {
20844 PyMem_Free(_children);
20845 p->error_indicator = 1;
20846 PyErr_NoMemory();
20847 D(p->level--);
20848 return NULL;
20849 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020850 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020851 PyMem_Free(_children);
20852 _PyPegen_insert_memo(p, _start_mark, _loop0_8_type, _seq);
20853 D(p->level--);
20854 return _seq;
20855}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000020856
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020857// _gather_7: expression _loop0_8
20858static asdl_seq *
20859_gather_7_rule(Parser *p)
20860{
20861 D(p->level++);
20862 if (p->error_indicator) {
20863 D(p->level--);
20864 return NULL;
20865 }
20866 asdl_seq * _res = NULL;
20867 int _mark = p->mark;
20868 { // expression _loop0_8
20869 if (p->error_indicator) {
20870 D(p->level--);
20871 return NULL;
20872 }
20873 D(fprintf(stderr, "%*c> _gather_7[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_8"));
20874 expr_ty elem;
20875 asdl_seq * seq;
20876 if (
20877 (elem = expression_rule(p)) // expression
20878 &&
20879 (seq = _loop0_8_rule(p)) // _loop0_8
20880 )
20881 {
20882 D(fprintf(stderr, "%*c+ _gather_7[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_8"));
20883 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
20884 goto done;
20885 }
20886 p->mark = _mark;
20887 D(fprintf(stderr, "%*c%s _gather_7[%d-%d]: %s failed!\n", p->level, ' ',
20888 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_8"));
20889 }
20890 _res = NULL;
20891 done:
20892 D(p->level--);
20893 return _res;
20894}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000020895
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020896// _loop0_10: ',' expression
20897static asdl_seq *
20898_loop0_10_rule(Parser *p)
20899{
20900 D(p->level++);
20901 if (p->error_indicator) {
20902 D(p->level--);
20903 return NULL;
20904 }
20905 void *_res = NULL;
20906 int _mark = p->mark;
20907 int _start_mark = p->mark;
20908 void **_children = PyMem_Malloc(sizeof(void *));
20909 if (!_children) {
20910 p->error_indicator = 1;
20911 PyErr_NoMemory();
20912 D(p->level--);
20913 return NULL;
20914 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010020915 Py_ssize_t _children_capacity = 1;
20916 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020917 { // ',' expression
20918 if (p->error_indicator) {
20919 D(p->level--);
20920 return NULL;
20921 }
20922 D(fprintf(stderr, "%*c> _loop0_10[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
20923 Token * _literal;
20924 expr_ty elem;
20925 while (
20926 (_literal = _PyPegen_expect_token(p, 12)) // token=','
20927 &&
20928 (elem = expression_rule(p)) // expression
20929 )
20930 {
20931 _res = elem;
20932 if (_res == NULL && PyErr_Occurred()) {
20933 p->error_indicator = 1;
20934 PyMem_Free(_children);
20935 D(p->level--);
20936 return NULL;
20937 }
20938 if (_n == _children_capacity) {
20939 _children_capacity *= 2;
20940 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20941 if (!_new_children) {
20942 p->error_indicator = 1;
20943 PyErr_NoMemory();
20944 D(p->level--);
20945 return NULL;
20946 }
20947 _children = _new_children;
20948 }
20949 _children[_n++] = _res;
20950 _mark = p->mark;
20951 }
20952 p->mark = _mark;
20953 D(fprintf(stderr, "%*c%s _loop0_10[%d-%d]: %s failed!\n", p->level, ' ',
20954 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
20955 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020956 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020957 if (!_seq) {
20958 PyMem_Free(_children);
20959 p->error_indicator = 1;
20960 PyErr_NoMemory();
20961 D(p->level--);
20962 return NULL;
20963 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020964 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020965 PyMem_Free(_children);
20966 _PyPegen_insert_memo(p, _start_mark, _loop0_10_type, _seq);
20967 D(p->level--);
20968 return _seq;
20969}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000020970
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020971// _gather_9: expression _loop0_10
20972static asdl_seq *
20973_gather_9_rule(Parser *p)
20974{
20975 D(p->level++);
20976 if (p->error_indicator) {
20977 D(p->level--);
20978 return NULL;
20979 }
20980 asdl_seq * _res = NULL;
20981 int _mark = p->mark;
20982 { // expression _loop0_10
20983 if (p->error_indicator) {
20984 D(p->level--);
20985 return NULL;
20986 }
20987 D(fprintf(stderr, "%*c> _gather_9[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_10"));
20988 expr_ty elem;
20989 asdl_seq * seq;
20990 if (
20991 (elem = expression_rule(p)) // expression
20992 &&
20993 (seq = _loop0_10_rule(p)) // _loop0_10
20994 )
20995 {
20996 D(fprintf(stderr, "%*c+ _gather_9[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_10"));
20997 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
20998 goto done;
20999 }
21000 p->mark = _mark;
21001 D(fprintf(stderr, "%*c%s _gather_9[%d-%d]: %s failed!\n", p->level, ' ',
21002 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_10"));
21003 }
21004 _res = NULL;
21005 done:
21006 D(p->level--);
21007 return _res;
21008}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021009
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021010// _loop1_11: statement
21011static asdl_seq *
21012_loop1_11_rule(Parser *p)
21013{
21014 D(p->level++);
21015 if (p->error_indicator) {
21016 D(p->level--);
21017 return NULL;
21018 }
21019 void *_res = NULL;
21020 int _mark = p->mark;
21021 int _start_mark = p->mark;
21022 void **_children = PyMem_Malloc(sizeof(void *));
21023 if (!_children) {
21024 p->error_indicator = 1;
21025 PyErr_NoMemory();
21026 D(p->level--);
21027 return NULL;
21028 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010021029 Py_ssize_t _children_capacity = 1;
21030 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021031 { // statement
21032 if (p->error_indicator) {
21033 D(p->level--);
21034 return NULL;
21035 }
21036 D(fprintf(stderr, "%*c> _loop1_11[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statement"));
Pablo Galindoa5634c42020-09-16 19:42:00 +010021037 asdl_stmt_seq* statement_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021038 while (
21039 (statement_var = statement_rule(p)) // statement
21040 )
21041 {
21042 _res = statement_var;
21043 if (_n == _children_capacity) {
21044 _children_capacity *= 2;
21045 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21046 if (!_new_children) {
21047 p->error_indicator = 1;
21048 PyErr_NoMemory();
21049 D(p->level--);
21050 return NULL;
21051 }
21052 _children = _new_children;
21053 }
21054 _children[_n++] = _res;
21055 _mark = p->mark;
21056 }
21057 p->mark = _mark;
21058 D(fprintf(stderr, "%*c%s _loop1_11[%d-%d]: %s failed!\n", p->level, ' ',
21059 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statement"));
21060 }
21061 if (_n == 0 || p->error_indicator) {
21062 PyMem_Free(_children);
21063 D(p->level--);
21064 return NULL;
21065 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021066 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021067 if (!_seq) {
21068 PyMem_Free(_children);
21069 p->error_indicator = 1;
21070 PyErr_NoMemory();
21071 D(p->level--);
21072 return NULL;
21073 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021074 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021075 PyMem_Free(_children);
21076 _PyPegen_insert_memo(p, _start_mark, _loop1_11_type, _seq);
21077 D(p->level--);
21078 return _seq;
21079}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021080
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000021081// _loop0_13: ';' simple_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021082static asdl_seq *
21083_loop0_13_rule(Parser *p)
21084{
21085 D(p->level++);
21086 if (p->error_indicator) {
21087 D(p->level--);
21088 return NULL;
21089 }
21090 void *_res = NULL;
21091 int _mark = p->mark;
21092 int _start_mark = p->mark;
21093 void **_children = PyMem_Malloc(sizeof(void *));
21094 if (!_children) {
21095 p->error_indicator = 1;
21096 PyErr_NoMemory();
21097 D(p->level--);
21098 return NULL;
21099 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010021100 Py_ssize_t _children_capacity = 1;
21101 Py_ssize_t _n = 0;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000021102 { // ';' simple_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021103 if (p->error_indicator) {
21104 D(p->level--);
21105 return NULL;
21106 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000021107 D(fprintf(stderr, "%*c> _loop0_13[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "';' simple_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021108 Token * _literal;
21109 stmt_ty elem;
21110 while (
21111 (_literal = _PyPegen_expect_token(p, 13)) // token=';'
21112 &&
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000021113 (elem = simple_stmt_rule(p)) // simple_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021114 )
21115 {
21116 _res = elem;
21117 if (_res == NULL && PyErr_Occurred()) {
21118 p->error_indicator = 1;
21119 PyMem_Free(_children);
21120 D(p->level--);
21121 return NULL;
21122 }
21123 if (_n == _children_capacity) {
21124 _children_capacity *= 2;
21125 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21126 if (!_new_children) {
21127 p->error_indicator = 1;
21128 PyErr_NoMemory();
21129 D(p->level--);
21130 return NULL;
21131 }
21132 _children = _new_children;
21133 }
21134 _children[_n++] = _res;
21135 _mark = p->mark;
21136 }
21137 p->mark = _mark;
21138 D(fprintf(stderr, "%*c%s _loop0_13[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000021139 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "';' simple_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021140 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021141 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021142 if (!_seq) {
21143 PyMem_Free(_children);
21144 p->error_indicator = 1;
21145 PyErr_NoMemory();
21146 D(p->level--);
21147 return NULL;
21148 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021149 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021150 PyMem_Free(_children);
21151 _PyPegen_insert_memo(p, _start_mark, _loop0_13_type, _seq);
21152 D(p->level--);
21153 return _seq;
21154}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021155
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000021156// _gather_12: simple_stmt _loop0_13
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021157static asdl_seq *
21158_gather_12_rule(Parser *p)
21159{
21160 D(p->level++);
21161 if (p->error_indicator) {
21162 D(p->level--);
21163 return NULL;
21164 }
21165 asdl_seq * _res = NULL;
21166 int _mark = p->mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000021167 { // simple_stmt _loop0_13
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021168 if (p->error_indicator) {
21169 D(p->level--);
21170 return NULL;
21171 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000021172 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 +010021173 stmt_ty elem;
21174 asdl_seq * seq;
21175 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000021176 (elem = simple_stmt_rule(p)) // simple_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021177 &&
21178 (seq = _loop0_13_rule(p)) // _loop0_13
21179 )
21180 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000021181 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 +010021182 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
21183 goto done;
21184 }
21185 p->mark = _mark;
21186 D(fprintf(stderr, "%*c%s _gather_12[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000021187 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmt _loop0_13"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021188 }
21189 _res = NULL;
21190 done:
21191 D(p->level--);
21192 return _res;
21193}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021194
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021195// _tmp_14: 'import' | 'from'
21196static void *
21197_tmp_14_rule(Parser *p)
21198{
21199 D(p->level++);
21200 if (p->error_indicator) {
21201 D(p->level--);
21202 return NULL;
21203 }
21204 void * _res = NULL;
21205 int _mark = p->mark;
21206 { // 'import'
21207 if (p->error_indicator) {
21208 D(p->level--);
21209 return NULL;
21210 }
21211 D(fprintf(stderr, "%*c> _tmp_14[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'import'"));
21212 Token * _keyword;
21213 if (
21214 (_keyword = _PyPegen_expect_token(p, 513)) // token='import'
21215 )
21216 {
21217 D(fprintf(stderr, "%*c+ _tmp_14[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'import'"));
21218 _res = _keyword;
21219 goto done;
21220 }
21221 p->mark = _mark;
21222 D(fprintf(stderr, "%*c%s _tmp_14[%d-%d]: %s failed!\n", p->level, ' ',
21223 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'import'"));
21224 }
21225 { // 'from'
21226 if (p->error_indicator) {
21227 D(p->level--);
21228 return NULL;
21229 }
21230 D(fprintf(stderr, "%*c> _tmp_14[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from'"));
21231 Token * _keyword;
21232 if (
21233 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
21234 )
21235 {
21236 D(fprintf(stderr, "%*c+ _tmp_14[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'from'"));
21237 _res = _keyword;
21238 goto done;
21239 }
21240 p->mark = _mark;
21241 D(fprintf(stderr, "%*c%s _tmp_14[%d-%d]: %s failed!\n", p->level, ' ',
21242 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from'"));
21243 }
21244 _res = NULL;
21245 done:
21246 D(p->level--);
21247 return _res;
21248}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021249
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021250// _tmp_15: 'def' | '@' | ASYNC
21251static void *
21252_tmp_15_rule(Parser *p)
21253{
21254 D(p->level++);
21255 if (p->error_indicator) {
21256 D(p->level--);
21257 return NULL;
21258 }
21259 void * _res = NULL;
21260 int _mark = p->mark;
21261 { // 'def'
21262 if (p->error_indicator) {
21263 D(p->level--);
21264 return NULL;
21265 }
21266 D(fprintf(stderr, "%*c> _tmp_15[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'def'"));
21267 Token * _keyword;
21268 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080021269 (_keyword = _PyPegen_expect_token(p, 526)) // token='def'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021270 )
21271 {
21272 D(fprintf(stderr, "%*c+ _tmp_15[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'def'"));
21273 _res = _keyword;
21274 goto done;
21275 }
21276 p->mark = _mark;
21277 D(fprintf(stderr, "%*c%s _tmp_15[%d-%d]: %s failed!\n", p->level, ' ',
21278 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'def'"));
21279 }
21280 { // '@'
21281 if (p->error_indicator) {
21282 D(p->level--);
21283 return NULL;
21284 }
21285 D(fprintf(stderr, "%*c> _tmp_15[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@'"));
21286 Token * _literal;
21287 if (
21288 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
21289 )
21290 {
21291 D(fprintf(stderr, "%*c+ _tmp_15[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@'"));
21292 _res = _literal;
21293 goto done;
21294 }
21295 p->mark = _mark;
21296 D(fprintf(stderr, "%*c%s _tmp_15[%d-%d]: %s failed!\n", p->level, ' ',
21297 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@'"));
21298 }
21299 { // ASYNC
21300 if (p->error_indicator) {
21301 D(p->level--);
21302 return NULL;
21303 }
21304 D(fprintf(stderr, "%*c> _tmp_15[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC"));
21305 Token * async_var;
21306 if (
21307 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
21308 )
21309 {
21310 D(fprintf(stderr, "%*c+ _tmp_15[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC"));
21311 _res = async_var;
21312 goto done;
21313 }
21314 p->mark = _mark;
21315 D(fprintf(stderr, "%*c%s _tmp_15[%d-%d]: %s failed!\n", p->level, ' ',
21316 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC"));
21317 }
21318 _res = NULL;
21319 done:
21320 D(p->level--);
21321 return _res;
21322}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021323
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021324// _tmp_16: 'class' | '@'
21325static void *
21326_tmp_16_rule(Parser *p)
21327{
21328 D(p->level++);
21329 if (p->error_indicator) {
21330 D(p->level--);
21331 return NULL;
21332 }
21333 void * _res = NULL;
21334 int _mark = p->mark;
21335 { // 'class'
21336 if (p->error_indicator) {
21337 D(p->level--);
21338 return NULL;
21339 }
21340 D(fprintf(stderr, "%*c> _tmp_16[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'class'"));
21341 Token * _keyword;
21342 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080021343 (_keyword = _PyPegen_expect_token(p, 527)) // token='class'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021344 )
21345 {
21346 D(fprintf(stderr, "%*c+ _tmp_16[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'class'"));
21347 _res = _keyword;
21348 goto done;
21349 }
21350 p->mark = _mark;
21351 D(fprintf(stderr, "%*c%s _tmp_16[%d-%d]: %s failed!\n", p->level, ' ',
21352 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'class'"));
21353 }
21354 { // '@'
21355 if (p->error_indicator) {
21356 D(p->level--);
21357 return NULL;
21358 }
21359 D(fprintf(stderr, "%*c> _tmp_16[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@'"));
21360 Token * _literal;
21361 if (
21362 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
21363 )
21364 {
21365 D(fprintf(stderr, "%*c+ _tmp_16[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@'"));
21366 _res = _literal;
21367 goto done;
21368 }
21369 p->mark = _mark;
21370 D(fprintf(stderr, "%*c%s _tmp_16[%d-%d]: %s failed!\n", p->level, ' ',
21371 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@'"));
21372 }
21373 _res = NULL;
21374 done:
21375 D(p->level--);
21376 return _res;
21377}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021378
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021379// _tmp_17: 'with' | ASYNC
21380static void *
21381_tmp_17_rule(Parser *p)
21382{
21383 D(p->level++);
21384 if (p->error_indicator) {
21385 D(p->level--);
21386 return NULL;
21387 }
21388 void * _res = NULL;
21389 int _mark = p->mark;
21390 { // 'with'
21391 if (p->error_indicator) {
21392 D(p->level--);
21393 return NULL;
21394 }
21395 D(fprintf(stderr, "%*c> _tmp_17[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'with'"));
21396 Token * _keyword;
21397 if (
21398 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
21399 )
21400 {
21401 D(fprintf(stderr, "%*c+ _tmp_17[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'with'"));
21402 _res = _keyword;
21403 goto done;
21404 }
21405 p->mark = _mark;
21406 D(fprintf(stderr, "%*c%s _tmp_17[%d-%d]: %s failed!\n", p->level, ' ',
21407 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'with'"));
21408 }
21409 { // ASYNC
21410 if (p->error_indicator) {
21411 D(p->level--);
21412 return NULL;
21413 }
21414 D(fprintf(stderr, "%*c> _tmp_17[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC"));
21415 Token * async_var;
21416 if (
21417 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
21418 )
21419 {
21420 D(fprintf(stderr, "%*c+ _tmp_17[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC"));
21421 _res = async_var;
21422 goto done;
21423 }
21424 p->mark = _mark;
21425 D(fprintf(stderr, "%*c%s _tmp_17[%d-%d]: %s failed!\n", p->level, ' ',
21426 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC"));
21427 }
21428 _res = NULL;
21429 done:
21430 D(p->level--);
21431 return _res;
21432}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021433
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021434// _tmp_18: 'for' | ASYNC
21435static void *
21436_tmp_18_rule(Parser *p)
21437{
21438 D(p->level++);
21439 if (p->error_indicator) {
21440 D(p->level--);
21441 return NULL;
21442 }
21443 void * _res = NULL;
21444 int _mark = p->mark;
21445 { // 'for'
21446 if (p->error_indicator) {
21447 D(p->level--);
21448 return NULL;
21449 }
21450 D(fprintf(stderr, "%*c> _tmp_18[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'for'"));
21451 Token * _keyword;
21452 if (
21453 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
21454 )
21455 {
21456 D(fprintf(stderr, "%*c+ _tmp_18[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'for'"));
21457 _res = _keyword;
21458 goto done;
21459 }
21460 p->mark = _mark;
21461 D(fprintf(stderr, "%*c%s _tmp_18[%d-%d]: %s failed!\n", p->level, ' ',
21462 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'for'"));
21463 }
21464 { // ASYNC
21465 if (p->error_indicator) {
21466 D(p->level--);
21467 return NULL;
21468 }
21469 D(fprintf(stderr, "%*c> _tmp_18[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC"));
21470 Token * async_var;
21471 if (
21472 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
21473 )
21474 {
21475 D(fprintf(stderr, "%*c+ _tmp_18[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC"));
21476 _res = async_var;
21477 goto done;
21478 }
21479 p->mark = _mark;
21480 D(fprintf(stderr, "%*c%s _tmp_18[%d-%d]: %s failed!\n", p->level, ' ',
21481 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC"));
21482 }
21483 _res = NULL;
21484 done:
21485 D(p->level--);
21486 return _res;
21487}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021488
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021489// _tmp_19: '=' annotated_rhs
21490static void *
21491_tmp_19_rule(Parser *p)
21492{
21493 D(p->level++);
21494 if (p->error_indicator) {
21495 D(p->level--);
21496 return NULL;
21497 }
21498 void * _res = NULL;
21499 int _mark = p->mark;
21500 { // '=' annotated_rhs
21501 if (p->error_indicator) {
21502 D(p->level--);
21503 return NULL;
21504 }
21505 D(fprintf(stderr, "%*c> _tmp_19[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
21506 Token * _literal;
21507 expr_ty d;
21508 if (
21509 (_literal = _PyPegen_expect_token(p, 22)) // token='='
21510 &&
21511 (d = annotated_rhs_rule(p)) // annotated_rhs
21512 )
21513 {
21514 D(fprintf(stderr, "%*c+ _tmp_19[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
21515 _res = d;
21516 if (_res == NULL && PyErr_Occurred()) {
21517 p->error_indicator = 1;
21518 D(p->level--);
21519 return NULL;
21520 }
21521 goto done;
21522 }
21523 p->mark = _mark;
21524 D(fprintf(stderr, "%*c%s _tmp_19[%d-%d]: %s failed!\n", p->level, ' ',
21525 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'=' annotated_rhs"));
21526 }
21527 _res = NULL;
21528 done:
21529 D(p->level--);
21530 return _res;
21531}
21532
21533// _tmp_20: '(' single_target ')' | single_subscript_attribute_target
21534static void *
21535_tmp_20_rule(Parser *p)
21536{
21537 D(p->level++);
21538 if (p->error_indicator) {
21539 D(p->level--);
21540 return NULL;
21541 }
21542 void * _res = NULL;
21543 int _mark = p->mark;
21544 { // '(' single_target ')'
21545 if (p->error_indicator) {
21546 D(p->level--);
21547 return NULL;
21548 }
21549 D(fprintf(stderr, "%*c> _tmp_20[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
21550 Token * _literal;
21551 Token * _literal_1;
21552 expr_ty b;
21553 if (
21554 (_literal = _PyPegen_expect_token(p, 7)) // token='('
21555 &&
21556 (b = single_target_rule(p)) // single_target
21557 &&
21558 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
21559 )
21560 {
21561 D(fprintf(stderr, "%*c+ _tmp_20[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
21562 _res = b;
21563 if (_res == NULL && PyErr_Occurred()) {
21564 p->error_indicator = 1;
21565 D(p->level--);
21566 return NULL;
21567 }
21568 goto done;
21569 }
21570 p->mark = _mark;
21571 D(fprintf(stderr, "%*c%s _tmp_20[%d-%d]: %s failed!\n", p->level, ' ',
21572 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' single_target ')'"));
21573 }
21574 { // single_subscript_attribute_target
21575 if (p->error_indicator) {
21576 D(p->level--);
21577 return NULL;
21578 }
21579 D(fprintf(stderr, "%*c> _tmp_20[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "single_subscript_attribute_target"));
21580 expr_ty single_subscript_attribute_target_var;
21581 if (
21582 (single_subscript_attribute_target_var = single_subscript_attribute_target_rule(p)) // single_subscript_attribute_target
21583 )
21584 {
21585 D(fprintf(stderr, "%*c+ _tmp_20[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "single_subscript_attribute_target"));
21586 _res = single_subscript_attribute_target_var;
21587 goto done;
21588 }
21589 p->mark = _mark;
21590 D(fprintf(stderr, "%*c%s _tmp_20[%d-%d]: %s failed!\n", p->level, ' ',
21591 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "single_subscript_attribute_target"));
21592 }
21593 _res = NULL;
21594 done:
21595 D(p->level--);
21596 return _res;
21597}
21598
21599// _tmp_21: '=' annotated_rhs
21600static void *
21601_tmp_21_rule(Parser *p)
21602{
21603 D(p->level++);
21604 if (p->error_indicator) {
21605 D(p->level--);
21606 return NULL;
21607 }
21608 void * _res = NULL;
21609 int _mark = p->mark;
21610 { // '=' annotated_rhs
21611 if (p->error_indicator) {
21612 D(p->level--);
21613 return NULL;
21614 }
21615 D(fprintf(stderr, "%*c> _tmp_21[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
21616 Token * _literal;
21617 expr_ty d;
21618 if (
21619 (_literal = _PyPegen_expect_token(p, 22)) // token='='
21620 &&
21621 (d = annotated_rhs_rule(p)) // annotated_rhs
21622 )
21623 {
21624 D(fprintf(stderr, "%*c+ _tmp_21[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
21625 _res = d;
21626 if (_res == NULL && PyErr_Occurred()) {
21627 p->error_indicator = 1;
21628 D(p->level--);
21629 return NULL;
21630 }
21631 goto done;
21632 }
21633 p->mark = _mark;
21634 D(fprintf(stderr, "%*c%s _tmp_21[%d-%d]: %s failed!\n", p->level, ' ',
21635 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'=' annotated_rhs"));
21636 }
21637 _res = NULL;
21638 done:
21639 D(p->level--);
21640 return _res;
21641}
21642
21643// _loop1_22: (star_targets '=')
21644static asdl_seq *
21645_loop1_22_rule(Parser *p)
21646{
21647 D(p->level++);
21648 if (p->error_indicator) {
21649 D(p->level--);
21650 return NULL;
21651 }
21652 void *_res = NULL;
21653 int _mark = p->mark;
21654 int _start_mark = p->mark;
21655 void **_children = PyMem_Malloc(sizeof(void *));
21656 if (!_children) {
21657 p->error_indicator = 1;
21658 PyErr_NoMemory();
21659 D(p->level--);
21660 return NULL;
21661 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010021662 Py_ssize_t _children_capacity = 1;
21663 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021664 { // (star_targets '=')
21665 if (p->error_indicator) {
21666 D(p->level--);
21667 return NULL;
21668 }
21669 D(fprintf(stderr, "%*c> _loop1_22[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010021670 void *_tmp_177_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021671 while (
Pablo Galindoa77aac42021-04-23 14:27:05 +010021672 (_tmp_177_var = _tmp_177_rule(p)) // star_targets '='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021673 )
21674 {
Pablo Galindoa77aac42021-04-23 14:27:05 +010021675 _res = _tmp_177_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021676 if (_n == _children_capacity) {
21677 _children_capacity *= 2;
21678 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21679 if (!_new_children) {
21680 p->error_indicator = 1;
21681 PyErr_NoMemory();
21682 D(p->level--);
21683 return NULL;
21684 }
21685 _children = _new_children;
21686 }
21687 _children[_n++] = _res;
21688 _mark = p->mark;
21689 }
21690 p->mark = _mark;
21691 D(fprintf(stderr, "%*c%s _loop1_22[%d-%d]: %s failed!\n", p->level, ' ',
21692 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(star_targets '=')"));
21693 }
21694 if (_n == 0 || p->error_indicator) {
21695 PyMem_Free(_children);
21696 D(p->level--);
21697 return NULL;
21698 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021699 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021700 if (!_seq) {
21701 PyMem_Free(_children);
21702 p->error_indicator = 1;
21703 PyErr_NoMemory();
21704 D(p->level--);
21705 return NULL;
21706 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021707 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021708 PyMem_Free(_children);
21709 _PyPegen_insert_memo(p, _start_mark, _loop1_22_type, _seq);
21710 D(p->level--);
21711 return _seq;
21712}
21713
21714// _tmp_23: yield_expr | star_expressions
21715static void *
21716_tmp_23_rule(Parser *p)
21717{
21718 D(p->level++);
21719 if (p->error_indicator) {
21720 D(p->level--);
21721 return NULL;
21722 }
21723 void * _res = NULL;
21724 int _mark = p->mark;
21725 { // yield_expr
21726 if (p->error_indicator) {
21727 D(p->level--);
21728 return NULL;
21729 }
21730 D(fprintf(stderr, "%*c> _tmp_23[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
21731 expr_ty yield_expr_var;
21732 if (
21733 (yield_expr_var = yield_expr_rule(p)) // yield_expr
21734 )
21735 {
21736 D(fprintf(stderr, "%*c+ _tmp_23[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
21737 _res = yield_expr_var;
21738 goto done;
21739 }
21740 p->mark = _mark;
21741 D(fprintf(stderr, "%*c%s _tmp_23[%d-%d]: %s failed!\n", p->level, ' ',
21742 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
21743 }
21744 { // star_expressions
21745 if (p->error_indicator) {
21746 D(p->level--);
21747 return NULL;
21748 }
21749 D(fprintf(stderr, "%*c> _tmp_23[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
21750 expr_ty star_expressions_var;
21751 if (
21752 (star_expressions_var = star_expressions_rule(p)) // star_expressions
21753 )
21754 {
21755 D(fprintf(stderr, "%*c+ _tmp_23[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
21756 _res = star_expressions_var;
21757 goto done;
21758 }
21759 p->mark = _mark;
21760 D(fprintf(stderr, "%*c%s _tmp_23[%d-%d]: %s failed!\n", p->level, ' ',
21761 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
21762 }
21763 _res = NULL;
21764 done:
21765 D(p->level--);
21766 return _res;
21767}
21768
21769// _tmp_24: yield_expr | star_expressions
21770static void *
21771_tmp_24_rule(Parser *p)
21772{
21773 D(p->level++);
21774 if (p->error_indicator) {
21775 D(p->level--);
21776 return NULL;
21777 }
21778 void * _res = NULL;
21779 int _mark = p->mark;
21780 { // yield_expr
21781 if (p->error_indicator) {
21782 D(p->level--);
21783 return NULL;
21784 }
21785 D(fprintf(stderr, "%*c> _tmp_24[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
21786 expr_ty yield_expr_var;
21787 if (
21788 (yield_expr_var = yield_expr_rule(p)) // yield_expr
21789 )
21790 {
21791 D(fprintf(stderr, "%*c+ _tmp_24[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
21792 _res = yield_expr_var;
21793 goto done;
21794 }
21795 p->mark = _mark;
21796 D(fprintf(stderr, "%*c%s _tmp_24[%d-%d]: %s failed!\n", p->level, ' ',
21797 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
21798 }
21799 { // star_expressions
21800 if (p->error_indicator) {
21801 D(p->level--);
21802 return NULL;
21803 }
21804 D(fprintf(stderr, "%*c> _tmp_24[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
21805 expr_ty star_expressions_var;
21806 if (
21807 (star_expressions_var = star_expressions_rule(p)) // star_expressions
21808 )
21809 {
21810 D(fprintf(stderr, "%*c+ _tmp_24[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
21811 _res = star_expressions_var;
21812 goto done;
21813 }
21814 p->mark = _mark;
21815 D(fprintf(stderr, "%*c%s _tmp_24[%d-%d]: %s failed!\n", p->level, ' ',
21816 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
21817 }
21818 _res = NULL;
21819 done:
21820 D(p->level--);
21821 return _res;
21822}
21823
21824// _loop0_26: ',' NAME
21825static asdl_seq *
21826_loop0_26_rule(Parser *p)
21827{
21828 D(p->level++);
21829 if (p->error_indicator) {
21830 D(p->level--);
21831 return NULL;
21832 }
21833 void *_res = NULL;
21834 int _mark = p->mark;
21835 int _start_mark = p->mark;
21836 void **_children = PyMem_Malloc(sizeof(void *));
21837 if (!_children) {
21838 p->error_indicator = 1;
21839 PyErr_NoMemory();
21840 D(p->level--);
21841 return NULL;
21842 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010021843 Py_ssize_t _children_capacity = 1;
21844 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021845 { // ',' NAME
21846 if (p->error_indicator) {
21847 D(p->level--);
21848 return NULL;
21849 }
21850 D(fprintf(stderr, "%*c> _loop0_26[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' NAME"));
21851 Token * _literal;
21852 expr_ty elem;
21853 while (
21854 (_literal = _PyPegen_expect_token(p, 12)) // token=','
21855 &&
21856 (elem = _PyPegen_name_token(p)) // NAME
21857 )
21858 {
21859 _res = elem;
21860 if (_res == NULL && PyErr_Occurred()) {
21861 p->error_indicator = 1;
21862 PyMem_Free(_children);
21863 D(p->level--);
21864 return NULL;
21865 }
21866 if (_n == _children_capacity) {
21867 _children_capacity *= 2;
21868 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21869 if (!_new_children) {
21870 p->error_indicator = 1;
21871 PyErr_NoMemory();
21872 D(p->level--);
21873 return NULL;
21874 }
21875 _children = _new_children;
21876 }
21877 _children[_n++] = _res;
21878 _mark = p->mark;
21879 }
21880 p->mark = _mark;
21881 D(fprintf(stderr, "%*c%s _loop0_26[%d-%d]: %s failed!\n", p->level, ' ',
21882 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' NAME"));
21883 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021884 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021885 if (!_seq) {
21886 PyMem_Free(_children);
21887 p->error_indicator = 1;
21888 PyErr_NoMemory();
21889 D(p->level--);
21890 return NULL;
21891 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021892 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021893 PyMem_Free(_children);
21894 _PyPegen_insert_memo(p, _start_mark, _loop0_26_type, _seq);
21895 D(p->level--);
21896 return _seq;
21897}
21898
21899// _gather_25: NAME _loop0_26
21900static asdl_seq *
21901_gather_25_rule(Parser *p)
21902{
21903 D(p->level++);
21904 if (p->error_indicator) {
21905 D(p->level--);
21906 return NULL;
21907 }
21908 asdl_seq * _res = NULL;
21909 int _mark = p->mark;
21910 { // NAME _loop0_26
21911 if (p->error_indicator) {
21912 D(p->level--);
21913 return NULL;
21914 }
21915 D(fprintf(stderr, "%*c> _gather_25[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME _loop0_26"));
21916 expr_ty elem;
21917 asdl_seq * seq;
21918 if (
21919 (elem = _PyPegen_name_token(p)) // NAME
21920 &&
21921 (seq = _loop0_26_rule(p)) // _loop0_26
21922 )
21923 {
21924 D(fprintf(stderr, "%*c+ _gather_25[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME _loop0_26"));
21925 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
21926 goto done;
21927 }
21928 p->mark = _mark;
21929 D(fprintf(stderr, "%*c%s _gather_25[%d-%d]: %s failed!\n", p->level, ' ',
21930 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME _loop0_26"));
21931 }
21932 _res = NULL;
21933 done:
21934 D(p->level--);
21935 return _res;
21936}
21937
21938// _loop0_28: ',' NAME
21939static asdl_seq *
21940_loop0_28_rule(Parser *p)
21941{
21942 D(p->level++);
21943 if (p->error_indicator) {
21944 D(p->level--);
21945 return NULL;
21946 }
21947 void *_res = NULL;
21948 int _mark = p->mark;
21949 int _start_mark = p->mark;
21950 void **_children = PyMem_Malloc(sizeof(void *));
21951 if (!_children) {
21952 p->error_indicator = 1;
21953 PyErr_NoMemory();
21954 D(p->level--);
21955 return NULL;
21956 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010021957 Py_ssize_t _children_capacity = 1;
21958 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021959 { // ',' NAME
21960 if (p->error_indicator) {
21961 D(p->level--);
21962 return NULL;
21963 }
21964 D(fprintf(stderr, "%*c> _loop0_28[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' NAME"));
21965 Token * _literal;
21966 expr_ty elem;
21967 while (
21968 (_literal = _PyPegen_expect_token(p, 12)) // token=','
21969 &&
21970 (elem = _PyPegen_name_token(p)) // NAME
21971 )
21972 {
21973 _res = elem;
21974 if (_res == NULL && PyErr_Occurred()) {
21975 p->error_indicator = 1;
21976 PyMem_Free(_children);
21977 D(p->level--);
21978 return NULL;
21979 }
21980 if (_n == _children_capacity) {
21981 _children_capacity *= 2;
21982 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21983 if (!_new_children) {
21984 p->error_indicator = 1;
21985 PyErr_NoMemory();
21986 D(p->level--);
21987 return NULL;
21988 }
21989 _children = _new_children;
21990 }
21991 _children[_n++] = _res;
21992 _mark = p->mark;
21993 }
21994 p->mark = _mark;
21995 D(fprintf(stderr, "%*c%s _loop0_28[%d-%d]: %s failed!\n", p->level, ' ',
21996 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' NAME"));
21997 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021998 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021999 if (!_seq) {
22000 PyMem_Free(_children);
22001 p->error_indicator = 1;
22002 PyErr_NoMemory();
22003 D(p->level--);
22004 return NULL;
22005 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022006 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022007 PyMem_Free(_children);
22008 _PyPegen_insert_memo(p, _start_mark, _loop0_28_type, _seq);
22009 D(p->level--);
22010 return _seq;
22011}
22012
22013// _gather_27: NAME _loop0_28
22014static asdl_seq *
22015_gather_27_rule(Parser *p)
22016{
22017 D(p->level++);
22018 if (p->error_indicator) {
22019 D(p->level--);
22020 return NULL;
22021 }
22022 asdl_seq * _res = NULL;
22023 int _mark = p->mark;
22024 { // NAME _loop0_28
22025 if (p->error_indicator) {
22026 D(p->level--);
22027 return NULL;
22028 }
22029 D(fprintf(stderr, "%*c> _gather_27[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME _loop0_28"));
22030 expr_ty elem;
22031 asdl_seq * seq;
22032 if (
22033 (elem = _PyPegen_name_token(p)) // NAME
22034 &&
22035 (seq = _loop0_28_rule(p)) // _loop0_28
22036 )
22037 {
22038 D(fprintf(stderr, "%*c+ _gather_27[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME _loop0_28"));
22039 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
22040 goto done;
22041 }
22042 p->mark = _mark;
22043 D(fprintf(stderr, "%*c%s _gather_27[%d-%d]: %s failed!\n", p->level, ' ',
22044 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME _loop0_28"));
22045 }
22046 _res = NULL;
22047 done:
22048 D(p->level--);
22049 return _res;
22050}
22051
22052// _tmp_29: ',' expression
22053static void *
22054_tmp_29_rule(Parser *p)
22055{
22056 D(p->level++);
22057 if (p->error_indicator) {
22058 D(p->level--);
22059 return NULL;
22060 }
22061 void * _res = NULL;
22062 int _mark = p->mark;
22063 { // ',' expression
22064 if (p->error_indicator) {
22065 D(p->level--);
22066 return NULL;
22067 }
22068 D(fprintf(stderr, "%*c> _tmp_29[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
22069 Token * _literal;
22070 expr_ty z;
22071 if (
22072 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22073 &&
22074 (z = expression_rule(p)) // expression
22075 )
22076 {
22077 D(fprintf(stderr, "%*c+ _tmp_29[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' expression"));
22078 _res = z;
22079 if (_res == NULL && PyErr_Occurred()) {
22080 p->error_indicator = 1;
22081 D(p->level--);
22082 return NULL;
22083 }
22084 goto done;
22085 }
22086 p->mark = _mark;
22087 D(fprintf(stderr, "%*c%s _tmp_29[%d-%d]: %s failed!\n", p->level, ' ',
22088 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
22089 }
22090 _res = NULL;
22091 done:
22092 D(p->level--);
22093 return _res;
22094}
22095
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022096// _tmp_30: ';' | NEWLINE
22097static void *
22098_tmp_30_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022099{
22100 D(p->level++);
22101 if (p->error_indicator) {
22102 D(p->level--);
22103 return NULL;
22104 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022105 void * _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022106 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022107 { // ';'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022108 if (p->error_indicator) {
22109 D(p->level--);
22110 return NULL;
22111 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022112 D(fprintf(stderr, "%*c> _tmp_30[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "';'"));
22113 Token * _literal;
22114 if (
22115 (_literal = _PyPegen_expect_token(p, 13)) // token=';'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022116 )
22117 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022118 D(fprintf(stderr, "%*c+ _tmp_30[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "';'"));
22119 _res = _literal;
22120 goto done;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022121 }
22122 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022123 D(fprintf(stderr, "%*c%s _tmp_30[%d-%d]: %s failed!\n", p->level, ' ',
22124 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "';'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022125 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022126 { // NEWLINE
22127 if (p->error_indicator) {
22128 D(p->level--);
22129 return NULL;
22130 }
22131 D(fprintf(stderr, "%*c> _tmp_30[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
22132 Token * newline_var;
22133 if (
22134 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
22135 )
22136 {
22137 D(fprintf(stderr, "%*c+ _tmp_30[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
22138 _res = newline_var;
22139 goto done;
22140 }
22141 p->mark = _mark;
22142 D(fprintf(stderr, "%*c%s _tmp_30[%d-%d]: %s failed!\n", p->level, ' ',
22143 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022144 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022145 _res = NULL;
22146 done:
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022147 D(p->level--);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022148 return _res;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022149}
22150
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022151// _loop0_31: ('.' | '...')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022152static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022153_loop0_31_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022154{
22155 D(p->level++);
22156 if (p->error_indicator) {
22157 D(p->level--);
22158 return NULL;
22159 }
22160 void *_res = NULL;
22161 int _mark = p->mark;
22162 int _start_mark = p->mark;
22163 void **_children = PyMem_Malloc(sizeof(void *));
22164 if (!_children) {
22165 p->error_indicator = 1;
22166 PyErr_NoMemory();
22167 D(p->level--);
22168 return NULL;
22169 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010022170 Py_ssize_t _children_capacity = 1;
22171 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022172 { // ('.' | '...')
22173 if (p->error_indicator) {
22174 D(p->level--);
22175 return NULL;
22176 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022177 D(fprintf(stderr, "%*c> _loop0_31[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('.' | '...')"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010022178 void *_tmp_178_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022179 while (
Pablo Galindoa77aac42021-04-23 14:27:05 +010022180 (_tmp_178_var = _tmp_178_rule(p)) // '.' | '...'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022181 )
22182 {
Pablo Galindoa77aac42021-04-23 14:27:05 +010022183 _res = _tmp_178_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022184 if (_n == _children_capacity) {
22185 _children_capacity *= 2;
22186 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22187 if (!_new_children) {
22188 p->error_indicator = 1;
22189 PyErr_NoMemory();
22190 D(p->level--);
22191 return NULL;
22192 }
22193 _children = _new_children;
22194 }
22195 _children[_n++] = _res;
22196 _mark = p->mark;
22197 }
22198 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022199 D(fprintf(stderr, "%*c%s _loop0_31[%d-%d]: %s failed!\n", p->level, ' ',
22200 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('.' | '...')"));
22201 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022202 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022203 if (!_seq) {
22204 PyMem_Free(_children);
22205 p->error_indicator = 1;
22206 PyErr_NoMemory();
22207 D(p->level--);
22208 return NULL;
22209 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022210 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022211 PyMem_Free(_children);
22212 _PyPegen_insert_memo(p, _start_mark, _loop0_31_type, _seq);
22213 D(p->level--);
22214 return _seq;
22215}
22216
22217// _loop1_32: ('.' | '...')
22218static asdl_seq *
22219_loop1_32_rule(Parser *p)
22220{
22221 D(p->level++);
22222 if (p->error_indicator) {
22223 D(p->level--);
22224 return NULL;
22225 }
22226 void *_res = NULL;
22227 int _mark = p->mark;
22228 int _start_mark = p->mark;
22229 void **_children = PyMem_Malloc(sizeof(void *));
22230 if (!_children) {
22231 p->error_indicator = 1;
22232 PyErr_NoMemory();
22233 D(p->level--);
22234 return NULL;
22235 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010022236 Py_ssize_t _children_capacity = 1;
22237 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022238 { // ('.' | '...')
22239 if (p->error_indicator) {
22240 D(p->level--);
22241 return NULL;
22242 }
22243 D(fprintf(stderr, "%*c> _loop1_32[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('.' | '...')"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010022244 void *_tmp_179_var;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022245 while (
Pablo Galindoa77aac42021-04-23 14:27:05 +010022246 (_tmp_179_var = _tmp_179_rule(p)) // '.' | '...'
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022247 )
22248 {
Pablo Galindoa77aac42021-04-23 14:27:05 +010022249 _res = _tmp_179_var;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022250 if (_n == _children_capacity) {
22251 _children_capacity *= 2;
22252 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22253 if (!_new_children) {
22254 p->error_indicator = 1;
22255 PyErr_NoMemory();
22256 D(p->level--);
22257 return NULL;
22258 }
22259 _children = _new_children;
22260 }
22261 _children[_n++] = _res;
22262 _mark = p->mark;
22263 }
22264 p->mark = _mark;
22265 D(fprintf(stderr, "%*c%s _loop1_32[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022266 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('.' | '...')"));
22267 }
22268 if (_n == 0 || p->error_indicator) {
22269 PyMem_Free(_children);
22270 D(p->level--);
22271 return NULL;
22272 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022273 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022274 if (!_seq) {
22275 PyMem_Free(_children);
22276 p->error_indicator = 1;
22277 PyErr_NoMemory();
22278 D(p->level--);
22279 return NULL;
22280 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022281 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022282 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022283 _PyPegen_insert_memo(p, _start_mark, _loop1_32_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022284 D(p->level--);
22285 return _seq;
22286}
22287
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022288// _loop0_34: ',' import_from_as_name
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022289static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022290_loop0_34_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022291{
22292 D(p->level++);
22293 if (p->error_indicator) {
22294 D(p->level--);
22295 return NULL;
22296 }
22297 void *_res = NULL;
22298 int _mark = p->mark;
22299 int _start_mark = p->mark;
22300 void **_children = PyMem_Malloc(sizeof(void *));
22301 if (!_children) {
22302 p->error_indicator = 1;
22303 PyErr_NoMemory();
22304 D(p->level--);
22305 return NULL;
22306 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010022307 Py_ssize_t _children_capacity = 1;
22308 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022309 { // ',' import_from_as_name
22310 if (p->error_indicator) {
22311 D(p->level--);
22312 return NULL;
22313 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022314 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 +010022315 Token * _literal;
22316 alias_ty elem;
22317 while (
22318 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22319 &&
22320 (elem = import_from_as_name_rule(p)) // import_from_as_name
22321 )
22322 {
22323 _res = elem;
22324 if (_res == NULL && PyErr_Occurred()) {
22325 p->error_indicator = 1;
22326 PyMem_Free(_children);
22327 D(p->level--);
22328 return NULL;
22329 }
22330 if (_n == _children_capacity) {
22331 _children_capacity *= 2;
22332 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22333 if (!_new_children) {
22334 p->error_indicator = 1;
22335 PyErr_NoMemory();
22336 D(p->level--);
22337 return NULL;
22338 }
22339 _children = _new_children;
22340 }
22341 _children[_n++] = _res;
22342 _mark = p->mark;
22343 }
22344 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022345 D(fprintf(stderr, "%*c%s _loop0_34[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022346 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' import_from_as_name"));
22347 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022348 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022349 if (!_seq) {
22350 PyMem_Free(_children);
22351 p->error_indicator = 1;
22352 PyErr_NoMemory();
22353 D(p->level--);
22354 return NULL;
22355 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022356 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022357 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022358 _PyPegen_insert_memo(p, _start_mark, _loop0_34_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022359 D(p->level--);
22360 return _seq;
22361}
22362
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022363// _gather_33: import_from_as_name _loop0_34
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022364static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022365_gather_33_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022366{
22367 D(p->level++);
22368 if (p->error_indicator) {
22369 D(p->level--);
22370 return NULL;
22371 }
22372 asdl_seq * _res = NULL;
22373 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022374 { // import_from_as_name _loop0_34
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022375 if (p->error_indicator) {
22376 D(p->level--);
22377 return NULL;
22378 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022379 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 +010022380 alias_ty elem;
22381 asdl_seq * seq;
22382 if (
22383 (elem = import_from_as_name_rule(p)) // import_from_as_name
22384 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022385 (seq = _loop0_34_rule(p)) // _loop0_34
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022386 )
22387 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022388 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 +010022389 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
22390 goto done;
22391 }
22392 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022393 D(fprintf(stderr, "%*c%s _gather_33[%d-%d]: %s failed!\n", p->level, ' ',
22394 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from_as_name _loop0_34"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022395 }
22396 _res = NULL;
22397 done:
22398 D(p->level--);
22399 return _res;
22400}
22401
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022402// _tmp_35: 'as' NAME
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022403static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022404_tmp_35_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022405{
22406 D(p->level++);
22407 if (p->error_indicator) {
22408 D(p->level--);
22409 return NULL;
22410 }
22411 void * _res = NULL;
22412 int _mark = p->mark;
22413 { // 'as' NAME
22414 if (p->error_indicator) {
22415 D(p->level--);
22416 return NULL;
22417 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022418 D(fprintf(stderr, "%*c> _tmp_35[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022419 Token * _keyword;
22420 expr_ty z;
22421 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022422 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022423 &&
22424 (z = _PyPegen_name_token(p)) // NAME
22425 )
22426 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022427 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 +010022428 _res = z;
22429 if (_res == NULL && PyErr_Occurred()) {
22430 p->error_indicator = 1;
22431 D(p->level--);
22432 return NULL;
22433 }
22434 goto done;
22435 }
22436 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022437 D(fprintf(stderr, "%*c%s _tmp_35[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022438 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
22439 }
22440 _res = NULL;
22441 done:
22442 D(p->level--);
22443 return _res;
22444}
22445
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022446// _loop0_37: ',' dotted_as_name
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022447static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022448_loop0_37_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022449{
22450 D(p->level++);
22451 if (p->error_indicator) {
22452 D(p->level--);
22453 return NULL;
22454 }
22455 void *_res = NULL;
22456 int _mark = p->mark;
22457 int _start_mark = p->mark;
22458 void **_children = PyMem_Malloc(sizeof(void *));
22459 if (!_children) {
22460 p->error_indicator = 1;
22461 PyErr_NoMemory();
22462 D(p->level--);
22463 return NULL;
22464 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010022465 Py_ssize_t _children_capacity = 1;
22466 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022467 { // ',' dotted_as_name
22468 if (p->error_indicator) {
22469 D(p->level--);
22470 return NULL;
22471 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022472 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 +010022473 Token * _literal;
22474 alias_ty elem;
22475 while (
22476 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22477 &&
22478 (elem = dotted_as_name_rule(p)) // dotted_as_name
22479 )
22480 {
22481 _res = elem;
22482 if (_res == NULL && PyErr_Occurred()) {
22483 p->error_indicator = 1;
22484 PyMem_Free(_children);
22485 D(p->level--);
22486 return NULL;
22487 }
22488 if (_n == _children_capacity) {
22489 _children_capacity *= 2;
22490 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22491 if (!_new_children) {
22492 p->error_indicator = 1;
22493 PyErr_NoMemory();
22494 D(p->level--);
22495 return NULL;
22496 }
22497 _children = _new_children;
22498 }
22499 _children[_n++] = _res;
22500 _mark = p->mark;
22501 }
22502 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022503 D(fprintf(stderr, "%*c%s _loop0_37[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022504 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' dotted_as_name"));
22505 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022506 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022507 if (!_seq) {
22508 PyMem_Free(_children);
22509 p->error_indicator = 1;
22510 PyErr_NoMemory();
22511 D(p->level--);
22512 return NULL;
22513 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022514 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022515 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022516 _PyPegen_insert_memo(p, _start_mark, _loop0_37_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022517 D(p->level--);
22518 return _seq;
22519}
22520
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022521// _gather_36: dotted_as_name _loop0_37
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022522static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022523_gather_36_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022524{
22525 D(p->level++);
22526 if (p->error_indicator) {
22527 D(p->level--);
22528 return NULL;
22529 }
22530 asdl_seq * _res = NULL;
22531 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022532 { // dotted_as_name _loop0_37
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022533 if (p->error_indicator) {
22534 D(p->level--);
22535 return NULL;
22536 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022537 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 +010022538 alias_ty elem;
22539 asdl_seq * seq;
22540 if (
22541 (elem = dotted_as_name_rule(p)) // dotted_as_name
22542 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022543 (seq = _loop0_37_rule(p)) // _loop0_37
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022544 )
22545 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022546 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 +010022547 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
22548 goto done;
22549 }
22550 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022551 D(fprintf(stderr, "%*c%s _gather_36[%d-%d]: %s failed!\n", p->level, ' ',
22552 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dotted_as_name _loop0_37"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022553 }
22554 _res = NULL;
22555 done:
22556 D(p->level--);
22557 return _res;
22558}
22559
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022560// _tmp_38: 'as' NAME
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022561static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022562_tmp_38_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022563{
22564 D(p->level++);
22565 if (p->error_indicator) {
22566 D(p->level--);
22567 return NULL;
22568 }
22569 void * _res = NULL;
22570 int _mark = p->mark;
22571 { // 'as' NAME
22572 if (p->error_indicator) {
22573 D(p->level--);
22574 return NULL;
22575 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022576 D(fprintf(stderr, "%*c> _tmp_38[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022577 Token * _keyword;
22578 expr_ty z;
22579 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022580 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022581 &&
22582 (z = _PyPegen_name_token(p)) // NAME
22583 )
22584 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022585 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 +010022586 _res = z;
22587 if (_res == NULL && PyErr_Occurred()) {
22588 p->error_indicator = 1;
22589 D(p->level--);
22590 return NULL;
22591 }
22592 goto done;
22593 }
22594 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022595 D(fprintf(stderr, "%*c%s _tmp_38[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022596 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
22597 }
22598 _res = NULL;
22599 done:
22600 D(p->level--);
22601 return _res;
22602}
22603
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022604// _loop0_40: ',' with_item
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022605static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022606_loop0_40_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022607{
22608 D(p->level++);
22609 if (p->error_indicator) {
22610 D(p->level--);
22611 return NULL;
22612 }
22613 void *_res = NULL;
22614 int _mark = p->mark;
22615 int _start_mark = p->mark;
22616 void **_children = PyMem_Malloc(sizeof(void *));
22617 if (!_children) {
22618 p->error_indicator = 1;
22619 PyErr_NoMemory();
22620 D(p->level--);
22621 return NULL;
22622 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010022623 Py_ssize_t _children_capacity = 1;
22624 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022625 { // ',' with_item
22626 if (p->error_indicator) {
22627 D(p->level--);
22628 return NULL;
22629 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022630 D(fprintf(stderr, "%*c> _loop0_40[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022631 Token * _literal;
22632 withitem_ty elem;
22633 while (
22634 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22635 &&
22636 (elem = with_item_rule(p)) // with_item
22637 )
22638 {
22639 _res = elem;
22640 if (_res == NULL && PyErr_Occurred()) {
22641 p->error_indicator = 1;
22642 PyMem_Free(_children);
22643 D(p->level--);
22644 return NULL;
22645 }
22646 if (_n == _children_capacity) {
22647 _children_capacity *= 2;
22648 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22649 if (!_new_children) {
22650 p->error_indicator = 1;
22651 PyErr_NoMemory();
22652 D(p->level--);
22653 return NULL;
22654 }
22655 _children = _new_children;
22656 }
22657 _children[_n++] = _res;
22658 _mark = p->mark;
22659 }
22660 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022661 D(fprintf(stderr, "%*c%s _loop0_40[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022662 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
22663 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022664 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022665 if (!_seq) {
22666 PyMem_Free(_children);
22667 p->error_indicator = 1;
22668 PyErr_NoMemory();
22669 D(p->level--);
22670 return NULL;
22671 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022672 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022673 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022674 _PyPegen_insert_memo(p, _start_mark, _loop0_40_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022675 D(p->level--);
22676 return _seq;
22677}
22678
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022679// _gather_39: with_item _loop0_40
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022680static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022681_gather_39_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022682{
22683 D(p->level++);
22684 if (p->error_indicator) {
22685 D(p->level--);
22686 return NULL;
22687 }
22688 asdl_seq * _res = NULL;
22689 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022690 { // with_item _loop0_40
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022691 if (p->error_indicator) {
22692 D(p->level--);
22693 return NULL;
22694 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022695 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 +010022696 withitem_ty elem;
22697 asdl_seq * seq;
22698 if (
22699 (elem = with_item_rule(p)) // with_item
22700 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022701 (seq = _loop0_40_rule(p)) // _loop0_40
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022702 )
22703 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022704 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 +010022705 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
22706 goto done;
22707 }
22708 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022709 D(fprintf(stderr, "%*c%s _gather_39[%d-%d]: %s failed!\n", p->level, ' ',
22710 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_40"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022711 }
22712 _res = NULL;
22713 done:
22714 D(p->level--);
22715 return _res;
22716}
22717
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022718// _loop0_42: ',' with_item
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022719static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022720_loop0_42_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022721{
22722 D(p->level++);
22723 if (p->error_indicator) {
22724 D(p->level--);
22725 return NULL;
22726 }
22727 void *_res = NULL;
22728 int _mark = p->mark;
22729 int _start_mark = p->mark;
22730 void **_children = PyMem_Malloc(sizeof(void *));
22731 if (!_children) {
22732 p->error_indicator = 1;
22733 PyErr_NoMemory();
22734 D(p->level--);
22735 return NULL;
22736 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010022737 Py_ssize_t _children_capacity = 1;
22738 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022739 { // ',' with_item
22740 if (p->error_indicator) {
22741 D(p->level--);
22742 return NULL;
22743 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022744 D(fprintf(stderr, "%*c> _loop0_42[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022745 Token * _literal;
22746 withitem_ty elem;
22747 while (
22748 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22749 &&
22750 (elem = with_item_rule(p)) // with_item
22751 )
22752 {
22753 _res = elem;
22754 if (_res == NULL && PyErr_Occurred()) {
22755 p->error_indicator = 1;
22756 PyMem_Free(_children);
22757 D(p->level--);
22758 return NULL;
22759 }
22760 if (_n == _children_capacity) {
22761 _children_capacity *= 2;
22762 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22763 if (!_new_children) {
22764 p->error_indicator = 1;
22765 PyErr_NoMemory();
22766 D(p->level--);
22767 return NULL;
22768 }
22769 _children = _new_children;
22770 }
22771 _children[_n++] = _res;
22772 _mark = p->mark;
22773 }
22774 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022775 D(fprintf(stderr, "%*c%s _loop0_42[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022776 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
22777 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022778 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022779 if (!_seq) {
22780 PyMem_Free(_children);
22781 p->error_indicator = 1;
22782 PyErr_NoMemory();
22783 D(p->level--);
22784 return NULL;
22785 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022786 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022787 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022788 _PyPegen_insert_memo(p, _start_mark, _loop0_42_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022789 D(p->level--);
22790 return _seq;
22791}
22792
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022793// _gather_41: with_item _loop0_42
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022794static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022795_gather_41_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022796{
22797 D(p->level++);
22798 if (p->error_indicator) {
22799 D(p->level--);
22800 return NULL;
22801 }
22802 asdl_seq * _res = NULL;
22803 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022804 { // with_item _loop0_42
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022805 if (p->error_indicator) {
22806 D(p->level--);
22807 return NULL;
22808 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022809 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 +010022810 withitem_ty elem;
22811 asdl_seq * seq;
22812 if (
22813 (elem = with_item_rule(p)) // with_item
22814 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022815 (seq = _loop0_42_rule(p)) // _loop0_42
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022816 )
22817 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022818 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 +010022819 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
22820 goto done;
22821 }
22822 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022823 D(fprintf(stderr, "%*c%s _gather_41[%d-%d]: %s failed!\n", p->level, ' ',
22824 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_42"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022825 }
22826 _res = NULL;
22827 done:
22828 D(p->level--);
22829 return _res;
22830}
22831
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022832// _loop0_44: ',' with_item
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022833static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022834_loop0_44_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022835{
22836 D(p->level++);
22837 if (p->error_indicator) {
22838 D(p->level--);
22839 return NULL;
22840 }
22841 void *_res = NULL;
22842 int _mark = p->mark;
22843 int _start_mark = p->mark;
22844 void **_children = PyMem_Malloc(sizeof(void *));
22845 if (!_children) {
22846 p->error_indicator = 1;
22847 PyErr_NoMemory();
22848 D(p->level--);
22849 return NULL;
22850 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010022851 Py_ssize_t _children_capacity = 1;
22852 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022853 { // ',' with_item
22854 if (p->error_indicator) {
22855 D(p->level--);
22856 return NULL;
22857 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022858 D(fprintf(stderr, "%*c> _loop0_44[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022859 Token * _literal;
22860 withitem_ty elem;
22861 while (
22862 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22863 &&
22864 (elem = with_item_rule(p)) // with_item
22865 )
22866 {
22867 _res = elem;
22868 if (_res == NULL && PyErr_Occurred()) {
22869 p->error_indicator = 1;
22870 PyMem_Free(_children);
22871 D(p->level--);
22872 return NULL;
22873 }
22874 if (_n == _children_capacity) {
22875 _children_capacity *= 2;
22876 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22877 if (!_new_children) {
22878 p->error_indicator = 1;
22879 PyErr_NoMemory();
22880 D(p->level--);
22881 return NULL;
22882 }
22883 _children = _new_children;
22884 }
22885 _children[_n++] = _res;
22886 _mark = p->mark;
22887 }
22888 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022889 D(fprintf(stderr, "%*c%s _loop0_44[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022890 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
22891 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022892 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022893 if (!_seq) {
22894 PyMem_Free(_children);
22895 p->error_indicator = 1;
22896 PyErr_NoMemory();
22897 D(p->level--);
22898 return NULL;
22899 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022900 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022901 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022902 _PyPegen_insert_memo(p, _start_mark, _loop0_44_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022903 D(p->level--);
22904 return _seq;
22905}
22906
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022907// _gather_43: with_item _loop0_44
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022908static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022909_gather_43_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022910{
22911 D(p->level++);
22912 if (p->error_indicator) {
22913 D(p->level--);
22914 return NULL;
22915 }
22916 asdl_seq * _res = NULL;
22917 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022918 { // with_item _loop0_44
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022919 if (p->error_indicator) {
22920 D(p->level--);
22921 return NULL;
22922 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022923 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 +010022924 withitem_ty elem;
22925 asdl_seq * seq;
22926 if (
22927 (elem = with_item_rule(p)) // with_item
22928 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022929 (seq = _loop0_44_rule(p)) // _loop0_44
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022930 )
22931 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022932 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 +010022933 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
22934 goto done;
22935 }
22936 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022937 D(fprintf(stderr, "%*c%s _gather_43[%d-%d]: %s failed!\n", p->level, ' ',
22938 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_44"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022939 }
22940 _res = NULL;
22941 done:
22942 D(p->level--);
22943 return _res;
22944}
22945
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022946// _loop0_46: ',' with_item
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022947static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022948_loop0_46_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022949{
22950 D(p->level++);
22951 if (p->error_indicator) {
22952 D(p->level--);
22953 return NULL;
22954 }
22955 void *_res = NULL;
22956 int _mark = p->mark;
22957 int _start_mark = p->mark;
22958 void **_children = PyMem_Malloc(sizeof(void *));
22959 if (!_children) {
22960 p->error_indicator = 1;
22961 PyErr_NoMemory();
22962 D(p->level--);
22963 return NULL;
22964 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010022965 Py_ssize_t _children_capacity = 1;
22966 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022967 { // ',' with_item
22968 if (p->error_indicator) {
22969 D(p->level--);
22970 return NULL;
22971 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022972 D(fprintf(stderr, "%*c> _loop0_46[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022973 Token * _literal;
22974 withitem_ty elem;
22975 while (
22976 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22977 &&
22978 (elem = with_item_rule(p)) // with_item
22979 )
22980 {
22981 _res = elem;
22982 if (_res == NULL && PyErr_Occurred()) {
22983 p->error_indicator = 1;
22984 PyMem_Free(_children);
22985 D(p->level--);
22986 return NULL;
22987 }
22988 if (_n == _children_capacity) {
22989 _children_capacity *= 2;
22990 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22991 if (!_new_children) {
22992 p->error_indicator = 1;
22993 PyErr_NoMemory();
22994 D(p->level--);
22995 return NULL;
22996 }
22997 _children = _new_children;
22998 }
22999 _children[_n++] = _res;
23000 _mark = p->mark;
23001 }
23002 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023003 D(fprintf(stderr, "%*c%s _loop0_46[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023004 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
23005 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023006 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023007 if (!_seq) {
23008 PyMem_Free(_children);
23009 p->error_indicator = 1;
23010 PyErr_NoMemory();
23011 D(p->level--);
23012 return NULL;
23013 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023014 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023015 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023016 _PyPegen_insert_memo(p, _start_mark, _loop0_46_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023017 D(p->level--);
23018 return _seq;
23019}
23020
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023021// _gather_45: with_item _loop0_46
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023022static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023023_gather_45_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023024{
23025 D(p->level++);
23026 if (p->error_indicator) {
23027 D(p->level--);
23028 return NULL;
23029 }
23030 asdl_seq * _res = NULL;
23031 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023032 { // with_item _loop0_46
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023033 if (p->error_indicator) {
23034 D(p->level--);
23035 return NULL;
23036 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023037 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 +010023038 withitem_ty elem;
23039 asdl_seq * seq;
23040 if (
23041 (elem = with_item_rule(p)) // with_item
23042 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023043 (seq = _loop0_46_rule(p)) // _loop0_46
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023044 )
23045 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023046 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 +010023047 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
23048 goto done;
23049 }
23050 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023051 D(fprintf(stderr, "%*c%s _gather_45[%d-%d]: %s failed!\n", p->level, ' ',
23052 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_46"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023053 }
23054 _res = NULL;
23055 done:
23056 D(p->level--);
23057 return _res;
23058}
23059
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023060// _tmp_47: ',' | ')' | ':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023061static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023062_tmp_47_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023063{
23064 D(p->level++);
23065 if (p->error_indicator) {
23066 D(p->level--);
23067 return NULL;
23068 }
23069 void * _res = NULL;
23070 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023071 { // ','
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023072 if (p->error_indicator) {
23073 D(p->level--);
23074 return NULL;
23075 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023076 D(fprintf(stderr, "%*c> _tmp_47[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','"));
23077 Token * _literal;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023078 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023079 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023080 )
23081 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023082 D(fprintf(stderr, "%*c+ _tmp_47[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','"));
23083 _res = _literal;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023084 goto done;
23085 }
23086 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023087 D(fprintf(stderr, "%*c%s _tmp_47[%d-%d]: %s failed!\n", p->level, ' ',
23088 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','"));
23089 }
23090 { // ')'
23091 if (p->error_indicator) {
23092 D(p->level--);
23093 return NULL;
23094 }
23095 D(fprintf(stderr, "%*c> _tmp_47[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
23096 Token * _literal;
23097 if (
23098 (_literal = _PyPegen_expect_token(p, 8)) // token=')'
23099 )
23100 {
23101 D(fprintf(stderr, "%*c+ _tmp_47[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
23102 _res = _literal;
23103 goto done;
23104 }
23105 p->mark = _mark;
23106 D(fprintf(stderr, "%*c%s _tmp_47[%d-%d]: %s failed!\n", p->level, ' ',
23107 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
23108 }
23109 { // ':'
23110 if (p->error_indicator) {
23111 D(p->level--);
23112 return NULL;
23113 }
23114 D(fprintf(stderr, "%*c> _tmp_47[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
23115 Token * _literal;
23116 if (
23117 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
23118 )
23119 {
23120 D(fprintf(stderr, "%*c+ _tmp_47[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
23121 _res = _literal;
23122 goto done;
23123 }
23124 p->mark = _mark;
23125 D(fprintf(stderr, "%*c%s _tmp_47[%d-%d]: %s failed!\n", p->level, ' ',
23126 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023127 }
23128 _res = NULL;
23129 done:
23130 D(p->level--);
23131 return _res;
23132}
23133
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023134// _loop1_48: except_block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023135static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023136_loop1_48_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023137{
23138 D(p->level++);
23139 if (p->error_indicator) {
23140 D(p->level--);
23141 return NULL;
23142 }
23143 void *_res = NULL;
23144 int _mark = p->mark;
23145 int _start_mark = p->mark;
23146 void **_children = PyMem_Malloc(sizeof(void *));
23147 if (!_children) {
23148 p->error_indicator = 1;
23149 PyErr_NoMemory();
23150 D(p->level--);
23151 return NULL;
23152 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023153 Py_ssize_t _children_capacity = 1;
23154 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023155 { // except_block
23156 if (p->error_indicator) {
23157 D(p->level--);
23158 return NULL;
23159 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023160 D(fprintf(stderr, "%*c> _loop1_48[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "except_block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023161 excepthandler_ty except_block_var;
23162 while (
23163 (except_block_var = except_block_rule(p)) // except_block
23164 )
23165 {
23166 _res = except_block_var;
23167 if (_n == _children_capacity) {
23168 _children_capacity *= 2;
23169 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23170 if (!_new_children) {
23171 p->error_indicator = 1;
23172 PyErr_NoMemory();
23173 D(p->level--);
23174 return NULL;
23175 }
23176 _children = _new_children;
23177 }
23178 _children[_n++] = _res;
23179 _mark = p->mark;
23180 }
23181 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023182 D(fprintf(stderr, "%*c%s _loop1_48[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023183 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "except_block"));
23184 }
23185 if (_n == 0 || p->error_indicator) {
23186 PyMem_Free(_children);
23187 D(p->level--);
23188 return NULL;
23189 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023190 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023191 if (!_seq) {
23192 PyMem_Free(_children);
23193 p->error_indicator = 1;
23194 PyErr_NoMemory();
23195 D(p->level--);
23196 return NULL;
23197 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023198 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023199 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023200 _PyPegen_insert_memo(p, _start_mark, _loop1_48_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023201 D(p->level--);
23202 return _seq;
23203}
23204
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023205// _tmp_49: 'as' NAME
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023206static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023207_tmp_49_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023208{
23209 D(p->level++);
23210 if (p->error_indicator) {
23211 D(p->level--);
23212 return NULL;
23213 }
23214 void * _res = NULL;
23215 int _mark = p->mark;
23216 { // 'as' NAME
23217 if (p->error_indicator) {
23218 D(p->level--);
23219 return NULL;
23220 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023221 D(fprintf(stderr, "%*c> _tmp_49[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023222 Token * _keyword;
23223 expr_ty z;
23224 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023225 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023226 &&
23227 (z = _PyPegen_name_token(p)) // NAME
23228 )
23229 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023230 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 +010023231 _res = z;
23232 if (_res == NULL && PyErr_Occurred()) {
23233 p->error_indicator = 1;
23234 D(p->level--);
23235 return NULL;
23236 }
23237 goto done;
23238 }
23239 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023240 D(fprintf(stderr, "%*c%s _tmp_49[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023241 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
23242 }
23243 _res = NULL;
23244 done:
23245 D(p->level--);
23246 return _res;
23247}
23248
Brandt Bucher145bf262021-02-26 14:51:55 -080023249// _loop1_50: case_block
23250static asdl_seq *
23251_loop1_50_rule(Parser *p)
23252{
23253 D(p->level++);
23254 if (p->error_indicator) {
23255 D(p->level--);
23256 return NULL;
23257 }
23258 void *_res = NULL;
23259 int _mark = p->mark;
23260 int _start_mark = p->mark;
23261 void **_children = PyMem_Malloc(sizeof(void *));
23262 if (!_children) {
23263 p->error_indicator = 1;
23264 PyErr_NoMemory();
23265 D(p->level--);
23266 return NULL;
23267 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023268 Py_ssize_t _children_capacity = 1;
23269 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080023270 { // case_block
23271 if (p->error_indicator) {
23272 D(p->level--);
23273 return NULL;
23274 }
23275 D(fprintf(stderr, "%*c> _loop1_50[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "case_block"));
23276 match_case_ty case_block_var;
23277 while (
23278 (case_block_var = case_block_rule(p)) // case_block
23279 )
23280 {
23281 _res = case_block_var;
23282 if (_n == _children_capacity) {
23283 _children_capacity *= 2;
23284 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23285 if (!_new_children) {
23286 p->error_indicator = 1;
23287 PyErr_NoMemory();
23288 D(p->level--);
23289 return NULL;
23290 }
23291 _children = _new_children;
23292 }
23293 _children[_n++] = _res;
23294 _mark = p->mark;
23295 }
23296 p->mark = _mark;
23297 D(fprintf(stderr, "%*c%s _loop1_50[%d-%d]: %s failed!\n", p->level, ' ',
23298 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "case_block"));
23299 }
23300 if (_n == 0 || p->error_indicator) {
23301 PyMem_Free(_children);
23302 D(p->level--);
23303 return NULL;
23304 }
23305 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
23306 if (!_seq) {
23307 PyMem_Free(_children);
23308 p->error_indicator = 1;
23309 PyErr_NoMemory();
23310 D(p->level--);
23311 return NULL;
23312 }
23313 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
23314 PyMem_Free(_children);
23315 _PyPegen_insert_memo(p, _start_mark, _loop1_50_type, _seq);
23316 D(p->level--);
23317 return _seq;
23318}
23319
23320// _loop0_52: '|' closed_pattern
23321static asdl_seq *
23322_loop0_52_rule(Parser *p)
23323{
23324 D(p->level++);
23325 if (p->error_indicator) {
23326 D(p->level--);
23327 return NULL;
23328 }
23329 void *_res = NULL;
23330 int _mark = p->mark;
23331 int _start_mark = p->mark;
23332 void **_children = PyMem_Malloc(sizeof(void *));
23333 if (!_children) {
23334 p->error_indicator = 1;
23335 PyErr_NoMemory();
23336 D(p->level--);
23337 return NULL;
23338 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023339 Py_ssize_t _children_capacity = 1;
23340 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080023341 { // '|' closed_pattern
23342 if (p->error_indicator) {
23343 D(p->level--);
23344 return NULL;
23345 }
23346 D(fprintf(stderr, "%*c> _loop0_52[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'|' closed_pattern"));
23347 Token * _literal;
23348 expr_ty elem;
23349 while (
23350 (_literal = _PyPegen_expect_token(p, 18)) // token='|'
23351 &&
23352 (elem = closed_pattern_rule(p)) // closed_pattern
23353 )
23354 {
23355 _res = elem;
23356 if (_res == NULL && PyErr_Occurred()) {
23357 p->error_indicator = 1;
23358 PyMem_Free(_children);
23359 D(p->level--);
23360 return NULL;
23361 }
23362 if (_n == _children_capacity) {
23363 _children_capacity *= 2;
23364 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23365 if (!_new_children) {
23366 p->error_indicator = 1;
23367 PyErr_NoMemory();
23368 D(p->level--);
23369 return NULL;
23370 }
23371 _children = _new_children;
23372 }
23373 _children[_n++] = _res;
23374 _mark = p->mark;
23375 }
23376 p->mark = _mark;
23377 D(fprintf(stderr, "%*c%s _loop0_52[%d-%d]: %s failed!\n", p->level, ' ',
23378 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'|' closed_pattern"));
23379 }
23380 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
23381 if (!_seq) {
23382 PyMem_Free(_children);
23383 p->error_indicator = 1;
23384 PyErr_NoMemory();
23385 D(p->level--);
23386 return NULL;
23387 }
23388 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
23389 PyMem_Free(_children);
23390 _PyPegen_insert_memo(p, _start_mark, _loop0_52_type, _seq);
23391 D(p->level--);
23392 return _seq;
23393}
23394
23395// _gather_51: closed_pattern _loop0_52
23396static asdl_seq *
23397_gather_51_rule(Parser *p)
23398{
23399 D(p->level++);
23400 if (p->error_indicator) {
23401 D(p->level--);
23402 return NULL;
23403 }
23404 asdl_seq * _res = NULL;
23405 int _mark = p->mark;
23406 { // closed_pattern _loop0_52
23407 if (p->error_indicator) {
23408 D(p->level--);
23409 return NULL;
23410 }
23411 D(fprintf(stderr, "%*c> _gather_51[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "closed_pattern _loop0_52"));
23412 expr_ty elem;
23413 asdl_seq * seq;
23414 if (
23415 (elem = closed_pattern_rule(p)) // closed_pattern
23416 &&
23417 (seq = _loop0_52_rule(p)) // _loop0_52
23418 )
23419 {
23420 D(fprintf(stderr, "%*c+ _gather_51[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "closed_pattern _loop0_52"));
23421 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
23422 goto done;
23423 }
23424 p->mark = _mark;
23425 D(fprintf(stderr, "%*c%s _gather_51[%d-%d]: %s failed!\n", p->level, ' ',
23426 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "closed_pattern _loop0_52"));
23427 }
23428 _res = NULL;
23429 done:
23430 D(p->level--);
23431 return _res;
23432}
23433
23434// _tmp_53: '+' | '-'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023435static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080023436_tmp_53_rule(Parser *p)
23437{
23438 D(p->level++);
23439 if (p->error_indicator) {
23440 D(p->level--);
23441 return NULL;
23442 }
23443 void * _res = NULL;
23444 int _mark = p->mark;
23445 { // '+'
23446 if (p->error_indicator) {
23447 D(p->level--);
23448 return NULL;
23449 }
23450 D(fprintf(stderr, "%*c> _tmp_53[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'+'"));
23451 Token * _literal;
23452 if (
23453 (_literal = _PyPegen_expect_token(p, 14)) // token='+'
23454 )
23455 {
23456 D(fprintf(stderr, "%*c+ _tmp_53[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'+'"));
23457 _res = _literal;
23458 goto done;
23459 }
23460 p->mark = _mark;
23461 D(fprintf(stderr, "%*c%s _tmp_53[%d-%d]: %s failed!\n", p->level, ' ',
23462 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+'"));
23463 }
23464 { // '-'
23465 if (p->error_indicator) {
23466 D(p->level--);
23467 return NULL;
23468 }
23469 D(fprintf(stderr, "%*c> _tmp_53[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-'"));
23470 Token * _literal;
23471 if (
23472 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
23473 )
23474 {
23475 D(fprintf(stderr, "%*c+ _tmp_53[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-'"));
23476 _res = _literal;
23477 goto done;
23478 }
23479 p->mark = _mark;
23480 D(fprintf(stderr, "%*c%s _tmp_53[%d-%d]: %s failed!\n", p->level, ' ',
23481 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-'"));
23482 }
23483 _res = NULL;
23484 done:
23485 D(p->level--);
23486 return _res;
23487}
23488
23489// _tmp_54: '.' | '(' | '='
23490static void *
23491_tmp_54_rule(Parser *p)
23492{
23493 D(p->level++);
23494 if (p->error_indicator) {
23495 D(p->level--);
23496 return NULL;
23497 }
23498 void * _res = NULL;
23499 int _mark = p->mark;
23500 { // '.'
23501 if (p->error_indicator) {
23502 D(p->level--);
23503 return NULL;
23504 }
23505 D(fprintf(stderr, "%*c> _tmp_54[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
23506 Token * _literal;
23507 if (
23508 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
23509 )
23510 {
23511 D(fprintf(stderr, "%*c+ _tmp_54[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
23512 _res = _literal;
23513 goto done;
23514 }
23515 p->mark = _mark;
23516 D(fprintf(stderr, "%*c%s _tmp_54[%d-%d]: %s failed!\n", p->level, ' ',
23517 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
23518 }
23519 { // '('
23520 if (p->error_indicator) {
23521 D(p->level--);
23522 return NULL;
23523 }
23524 D(fprintf(stderr, "%*c> _tmp_54[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('"));
23525 Token * _literal;
23526 if (
23527 (_literal = _PyPegen_expect_token(p, 7)) // token='('
23528 )
23529 {
23530 D(fprintf(stderr, "%*c+ _tmp_54[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('"));
23531 _res = _literal;
23532 goto done;
23533 }
23534 p->mark = _mark;
23535 D(fprintf(stderr, "%*c%s _tmp_54[%d-%d]: %s failed!\n", p->level, ' ',
23536 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('"));
23537 }
23538 { // '='
23539 if (p->error_indicator) {
23540 D(p->level--);
23541 return NULL;
23542 }
23543 D(fprintf(stderr, "%*c> _tmp_54[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'='"));
23544 Token * _literal;
23545 if (
23546 (_literal = _PyPegen_expect_token(p, 22)) // token='='
23547 )
23548 {
23549 D(fprintf(stderr, "%*c+ _tmp_54[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'='"));
23550 _res = _literal;
23551 goto done;
23552 }
23553 p->mark = _mark;
23554 D(fprintf(stderr, "%*c%s _tmp_54[%d-%d]: %s failed!\n", p->level, ' ',
23555 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'='"));
23556 }
23557 _res = NULL;
23558 done:
23559 D(p->level--);
23560 return _res;
23561}
23562
23563// _tmp_55: '.' | '(' | '='
23564static void *
23565_tmp_55_rule(Parser *p)
23566{
23567 D(p->level++);
23568 if (p->error_indicator) {
23569 D(p->level--);
23570 return NULL;
23571 }
23572 void * _res = NULL;
23573 int _mark = p->mark;
23574 { // '.'
23575 if (p->error_indicator) {
23576 D(p->level--);
23577 return NULL;
23578 }
23579 D(fprintf(stderr, "%*c> _tmp_55[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
23580 Token * _literal;
23581 if (
23582 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
23583 )
23584 {
23585 D(fprintf(stderr, "%*c+ _tmp_55[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
23586 _res = _literal;
23587 goto done;
23588 }
23589 p->mark = _mark;
23590 D(fprintf(stderr, "%*c%s _tmp_55[%d-%d]: %s failed!\n", p->level, ' ',
23591 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
23592 }
23593 { // '('
23594 if (p->error_indicator) {
23595 D(p->level--);
23596 return NULL;
23597 }
23598 D(fprintf(stderr, "%*c> _tmp_55[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('"));
23599 Token * _literal;
23600 if (
23601 (_literal = _PyPegen_expect_token(p, 7)) // token='('
23602 )
23603 {
23604 D(fprintf(stderr, "%*c+ _tmp_55[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('"));
23605 _res = _literal;
23606 goto done;
23607 }
23608 p->mark = _mark;
23609 D(fprintf(stderr, "%*c%s _tmp_55[%d-%d]: %s failed!\n", p->level, ' ',
23610 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('"));
23611 }
23612 { // '='
23613 if (p->error_indicator) {
23614 D(p->level--);
23615 return NULL;
23616 }
23617 D(fprintf(stderr, "%*c> _tmp_55[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'='"));
23618 Token * _literal;
23619 if (
23620 (_literal = _PyPegen_expect_token(p, 22)) // token='='
23621 )
23622 {
23623 D(fprintf(stderr, "%*c+ _tmp_55[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'='"));
23624 _res = _literal;
23625 goto done;
23626 }
23627 p->mark = _mark;
23628 D(fprintf(stderr, "%*c%s _tmp_55[%d-%d]: %s failed!\n", p->level, ' ',
23629 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'='"));
23630 }
23631 _res = NULL;
23632 done:
23633 D(p->level--);
23634 return _res;
23635}
23636
23637// _loop0_57: ',' maybe_star_pattern
23638static asdl_seq *
23639_loop0_57_rule(Parser *p)
23640{
23641 D(p->level++);
23642 if (p->error_indicator) {
23643 D(p->level--);
23644 return NULL;
23645 }
23646 void *_res = NULL;
23647 int _mark = p->mark;
23648 int _start_mark = p->mark;
23649 void **_children = PyMem_Malloc(sizeof(void *));
23650 if (!_children) {
23651 p->error_indicator = 1;
23652 PyErr_NoMemory();
23653 D(p->level--);
23654 return NULL;
23655 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023656 Py_ssize_t _children_capacity = 1;
23657 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080023658 { // ',' maybe_star_pattern
23659 if (p->error_indicator) {
23660 D(p->level--);
23661 return NULL;
23662 }
23663 D(fprintf(stderr, "%*c> _loop0_57[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' maybe_star_pattern"));
23664 Token * _literal;
23665 expr_ty elem;
23666 while (
23667 (_literal = _PyPegen_expect_token(p, 12)) // token=','
23668 &&
23669 (elem = maybe_star_pattern_rule(p)) // maybe_star_pattern
23670 )
23671 {
23672 _res = elem;
23673 if (_res == NULL && PyErr_Occurred()) {
23674 p->error_indicator = 1;
23675 PyMem_Free(_children);
23676 D(p->level--);
23677 return NULL;
23678 }
23679 if (_n == _children_capacity) {
23680 _children_capacity *= 2;
23681 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23682 if (!_new_children) {
23683 p->error_indicator = 1;
23684 PyErr_NoMemory();
23685 D(p->level--);
23686 return NULL;
23687 }
23688 _children = _new_children;
23689 }
23690 _children[_n++] = _res;
23691 _mark = p->mark;
23692 }
23693 p->mark = _mark;
23694 D(fprintf(stderr, "%*c%s _loop0_57[%d-%d]: %s failed!\n", p->level, ' ',
23695 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' maybe_star_pattern"));
23696 }
23697 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
23698 if (!_seq) {
23699 PyMem_Free(_children);
23700 p->error_indicator = 1;
23701 PyErr_NoMemory();
23702 D(p->level--);
23703 return NULL;
23704 }
23705 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
23706 PyMem_Free(_children);
23707 _PyPegen_insert_memo(p, _start_mark, _loop0_57_type, _seq);
23708 D(p->level--);
23709 return _seq;
23710}
23711
23712// _gather_56: maybe_star_pattern _loop0_57
23713static asdl_seq *
23714_gather_56_rule(Parser *p)
23715{
23716 D(p->level++);
23717 if (p->error_indicator) {
23718 D(p->level--);
23719 return NULL;
23720 }
23721 asdl_seq * _res = NULL;
23722 int _mark = p->mark;
23723 { // maybe_star_pattern _loop0_57
23724 if (p->error_indicator) {
23725 D(p->level--);
23726 return NULL;
23727 }
23728 D(fprintf(stderr, "%*c> _gather_56[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "maybe_star_pattern _loop0_57"));
23729 expr_ty elem;
23730 asdl_seq * seq;
23731 if (
23732 (elem = maybe_star_pattern_rule(p)) // maybe_star_pattern
23733 &&
23734 (seq = _loop0_57_rule(p)) // _loop0_57
23735 )
23736 {
23737 D(fprintf(stderr, "%*c+ _gather_56[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "maybe_star_pattern _loop0_57"));
23738 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
23739 goto done;
23740 }
23741 p->mark = _mark;
23742 D(fprintf(stderr, "%*c%s _gather_56[%d-%d]: %s failed!\n", p->level, ' ',
23743 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "maybe_star_pattern _loop0_57"));
23744 }
23745 _res = NULL;
23746 done:
23747 D(p->level--);
23748 return _res;
23749}
23750
23751// _tmp_58: capture_pattern | wildcard_pattern
23752static void *
23753_tmp_58_rule(Parser *p)
23754{
23755 D(p->level++);
23756 if (p->error_indicator) {
23757 D(p->level--);
23758 return NULL;
23759 }
23760 void * _res = NULL;
23761 int _mark = p->mark;
23762 { // capture_pattern
23763 if (p->error_indicator) {
23764 D(p->level--);
23765 return NULL;
23766 }
23767 D(fprintf(stderr, "%*c> _tmp_58[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "capture_pattern"));
23768 expr_ty capture_pattern_var;
23769 if (
23770 (capture_pattern_var = capture_pattern_rule(p)) // capture_pattern
23771 )
23772 {
23773 D(fprintf(stderr, "%*c+ _tmp_58[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "capture_pattern"));
23774 _res = capture_pattern_var;
23775 goto done;
23776 }
23777 p->mark = _mark;
23778 D(fprintf(stderr, "%*c%s _tmp_58[%d-%d]: %s failed!\n", p->level, ' ',
23779 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "capture_pattern"));
23780 }
23781 { // wildcard_pattern
23782 if (p->error_indicator) {
23783 D(p->level--);
23784 return NULL;
23785 }
23786 D(fprintf(stderr, "%*c> _tmp_58[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "wildcard_pattern"));
23787 expr_ty wildcard_pattern_var;
23788 if (
23789 (wildcard_pattern_var = wildcard_pattern_rule(p)) // wildcard_pattern
23790 )
23791 {
23792 D(fprintf(stderr, "%*c+ _tmp_58[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "wildcard_pattern"));
23793 _res = wildcard_pattern_var;
23794 goto done;
23795 }
23796 p->mark = _mark;
23797 D(fprintf(stderr, "%*c%s _tmp_58[%d-%d]: %s failed!\n", p->level, ' ',
23798 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "wildcard_pattern"));
23799 }
23800 _res = NULL;
23801 done:
23802 D(p->level--);
23803 return _res;
23804}
23805
23806// _loop0_60: ',' key_value_pattern
23807static asdl_seq *
23808_loop0_60_rule(Parser *p)
23809{
23810 D(p->level++);
23811 if (p->error_indicator) {
23812 D(p->level--);
23813 return NULL;
23814 }
23815 void *_res = NULL;
23816 int _mark = p->mark;
23817 int _start_mark = p->mark;
23818 void **_children = PyMem_Malloc(sizeof(void *));
23819 if (!_children) {
23820 p->error_indicator = 1;
23821 PyErr_NoMemory();
23822 D(p->level--);
23823 return NULL;
23824 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023825 Py_ssize_t _children_capacity = 1;
23826 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080023827 { // ',' key_value_pattern
23828 if (p->error_indicator) {
23829 D(p->level--);
23830 return NULL;
23831 }
23832 D(fprintf(stderr, "%*c> _loop0_60[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' key_value_pattern"));
23833 Token * _literal;
23834 KeyValuePair* elem;
23835 while (
23836 (_literal = _PyPegen_expect_token(p, 12)) // token=','
23837 &&
23838 (elem = key_value_pattern_rule(p)) // key_value_pattern
23839 )
23840 {
23841 _res = elem;
23842 if (_res == NULL && PyErr_Occurred()) {
23843 p->error_indicator = 1;
23844 PyMem_Free(_children);
23845 D(p->level--);
23846 return NULL;
23847 }
23848 if (_n == _children_capacity) {
23849 _children_capacity *= 2;
23850 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23851 if (!_new_children) {
23852 p->error_indicator = 1;
23853 PyErr_NoMemory();
23854 D(p->level--);
23855 return NULL;
23856 }
23857 _children = _new_children;
23858 }
23859 _children[_n++] = _res;
23860 _mark = p->mark;
23861 }
23862 p->mark = _mark;
23863 D(fprintf(stderr, "%*c%s _loop0_60[%d-%d]: %s failed!\n", p->level, ' ',
23864 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' key_value_pattern"));
23865 }
23866 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
23867 if (!_seq) {
23868 PyMem_Free(_children);
23869 p->error_indicator = 1;
23870 PyErr_NoMemory();
23871 D(p->level--);
23872 return NULL;
23873 }
23874 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
23875 PyMem_Free(_children);
23876 _PyPegen_insert_memo(p, _start_mark, _loop0_60_type, _seq);
23877 D(p->level--);
23878 return _seq;
23879}
23880
23881// _gather_59: key_value_pattern _loop0_60
23882static asdl_seq *
23883_gather_59_rule(Parser *p)
23884{
23885 D(p->level++);
23886 if (p->error_indicator) {
23887 D(p->level--);
23888 return NULL;
23889 }
23890 asdl_seq * _res = NULL;
23891 int _mark = p->mark;
23892 { // key_value_pattern _loop0_60
23893 if (p->error_indicator) {
23894 D(p->level--);
23895 return NULL;
23896 }
23897 D(fprintf(stderr, "%*c> _gather_59[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "key_value_pattern _loop0_60"));
23898 KeyValuePair* elem;
23899 asdl_seq * seq;
23900 if (
23901 (elem = key_value_pattern_rule(p)) // key_value_pattern
23902 &&
23903 (seq = _loop0_60_rule(p)) // _loop0_60
23904 )
23905 {
23906 D(fprintf(stderr, "%*c+ _gather_59[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "key_value_pattern _loop0_60"));
23907 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
23908 goto done;
23909 }
23910 p->mark = _mark;
23911 D(fprintf(stderr, "%*c%s _gather_59[%d-%d]: %s failed!\n", p->level, ' ',
23912 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "key_value_pattern _loop0_60"));
23913 }
23914 _res = NULL;
23915 done:
23916 D(p->level--);
23917 return _res;
23918}
23919
23920// _tmp_61: literal_pattern | value_pattern
23921static void *
23922_tmp_61_rule(Parser *p)
23923{
23924 D(p->level++);
23925 if (p->error_indicator) {
23926 D(p->level--);
23927 return NULL;
23928 }
23929 void * _res = NULL;
23930 int _mark = p->mark;
23931 { // literal_pattern
23932 if (p->error_indicator) {
23933 D(p->level--);
23934 return NULL;
23935 }
23936 D(fprintf(stderr, "%*c> _tmp_61[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "literal_pattern"));
23937 expr_ty literal_pattern_var;
23938 if (
23939 (literal_pattern_var = literal_pattern_rule(p)) // literal_pattern
23940 )
23941 {
23942 D(fprintf(stderr, "%*c+ _tmp_61[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "literal_pattern"));
23943 _res = literal_pattern_var;
23944 goto done;
23945 }
23946 p->mark = _mark;
23947 D(fprintf(stderr, "%*c%s _tmp_61[%d-%d]: %s failed!\n", p->level, ' ',
23948 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "literal_pattern"));
23949 }
23950 { // value_pattern
23951 if (p->error_indicator) {
23952 D(p->level--);
23953 return NULL;
23954 }
23955 D(fprintf(stderr, "%*c> _tmp_61[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "value_pattern"));
23956 expr_ty value_pattern_var;
23957 if (
23958 (value_pattern_var = value_pattern_rule(p)) // value_pattern
23959 )
23960 {
23961 D(fprintf(stderr, "%*c+ _tmp_61[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "value_pattern"));
23962 _res = value_pattern_var;
23963 goto done;
23964 }
23965 p->mark = _mark;
23966 D(fprintf(stderr, "%*c%s _tmp_61[%d-%d]: %s failed!\n", p->level, ' ',
23967 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "value_pattern"));
23968 }
23969 _res = NULL;
23970 done:
23971 D(p->level--);
23972 return _res;
23973}
23974
23975// _loop0_63: ',' pattern
23976static asdl_seq *
23977_loop0_63_rule(Parser *p)
23978{
23979 D(p->level++);
23980 if (p->error_indicator) {
23981 D(p->level--);
23982 return NULL;
23983 }
23984 void *_res = NULL;
23985 int _mark = p->mark;
23986 int _start_mark = p->mark;
23987 void **_children = PyMem_Malloc(sizeof(void *));
23988 if (!_children) {
23989 p->error_indicator = 1;
23990 PyErr_NoMemory();
23991 D(p->level--);
23992 return NULL;
23993 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023994 Py_ssize_t _children_capacity = 1;
23995 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080023996 { // ',' pattern
23997 if (p->error_indicator) {
23998 D(p->level--);
23999 return NULL;
24000 }
24001 D(fprintf(stderr, "%*c> _loop0_63[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' pattern"));
24002 Token * _literal;
24003 expr_ty elem;
24004 while (
24005 (_literal = _PyPegen_expect_token(p, 12)) // token=','
24006 &&
24007 (elem = pattern_rule(p)) // pattern
24008 )
24009 {
24010 _res = elem;
24011 if (_res == NULL && PyErr_Occurred()) {
24012 p->error_indicator = 1;
24013 PyMem_Free(_children);
24014 D(p->level--);
24015 return NULL;
24016 }
24017 if (_n == _children_capacity) {
24018 _children_capacity *= 2;
24019 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24020 if (!_new_children) {
24021 p->error_indicator = 1;
24022 PyErr_NoMemory();
24023 D(p->level--);
24024 return NULL;
24025 }
24026 _children = _new_children;
24027 }
24028 _children[_n++] = _res;
24029 _mark = p->mark;
24030 }
24031 p->mark = _mark;
24032 D(fprintf(stderr, "%*c%s _loop0_63[%d-%d]: %s failed!\n", p->level, ' ',
24033 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' pattern"));
24034 }
24035 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
24036 if (!_seq) {
24037 PyMem_Free(_children);
24038 p->error_indicator = 1;
24039 PyErr_NoMemory();
24040 D(p->level--);
24041 return NULL;
24042 }
24043 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
24044 PyMem_Free(_children);
24045 _PyPegen_insert_memo(p, _start_mark, _loop0_63_type, _seq);
24046 D(p->level--);
24047 return _seq;
24048}
24049
24050// _gather_62: pattern _loop0_63
24051static asdl_seq *
24052_gather_62_rule(Parser *p)
24053{
24054 D(p->level++);
24055 if (p->error_indicator) {
24056 D(p->level--);
24057 return NULL;
24058 }
24059 asdl_seq * _res = NULL;
24060 int _mark = p->mark;
24061 { // pattern _loop0_63
24062 if (p->error_indicator) {
24063 D(p->level--);
24064 return NULL;
24065 }
24066 D(fprintf(stderr, "%*c> _gather_62[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "pattern _loop0_63"));
24067 expr_ty elem;
24068 asdl_seq * seq;
24069 if (
24070 (elem = pattern_rule(p)) // pattern
24071 &&
24072 (seq = _loop0_63_rule(p)) // _loop0_63
24073 )
24074 {
24075 D(fprintf(stderr, "%*c+ _gather_62[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "pattern _loop0_63"));
24076 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
24077 goto done;
24078 }
24079 p->mark = _mark;
24080 D(fprintf(stderr, "%*c%s _gather_62[%d-%d]: %s failed!\n", p->level, ' ',
24081 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "pattern _loop0_63"));
24082 }
24083 _res = NULL;
24084 done:
24085 D(p->level--);
24086 return _res;
24087}
24088
24089// _loop0_65: ',' keyword_pattern
24090static asdl_seq *
24091_loop0_65_rule(Parser *p)
24092{
24093 D(p->level++);
24094 if (p->error_indicator) {
24095 D(p->level--);
24096 return NULL;
24097 }
24098 void *_res = NULL;
24099 int _mark = p->mark;
24100 int _start_mark = p->mark;
24101 void **_children = PyMem_Malloc(sizeof(void *));
24102 if (!_children) {
24103 p->error_indicator = 1;
24104 PyErr_NoMemory();
24105 D(p->level--);
24106 return NULL;
24107 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024108 Py_ssize_t _children_capacity = 1;
24109 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080024110 { // ',' keyword_pattern
24111 if (p->error_indicator) {
24112 D(p->level--);
24113 return NULL;
24114 }
24115 D(fprintf(stderr, "%*c> _loop0_65[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' keyword_pattern"));
24116 Token * _literal;
24117 keyword_ty elem;
24118 while (
24119 (_literal = _PyPegen_expect_token(p, 12)) // token=','
24120 &&
24121 (elem = keyword_pattern_rule(p)) // keyword_pattern
24122 )
24123 {
24124 _res = elem;
24125 if (_res == NULL && PyErr_Occurred()) {
24126 p->error_indicator = 1;
24127 PyMem_Free(_children);
24128 D(p->level--);
24129 return NULL;
24130 }
24131 if (_n == _children_capacity) {
24132 _children_capacity *= 2;
24133 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24134 if (!_new_children) {
24135 p->error_indicator = 1;
24136 PyErr_NoMemory();
24137 D(p->level--);
24138 return NULL;
24139 }
24140 _children = _new_children;
24141 }
24142 _children[_n++] = _res;
24143 _mark = p->mark;
24144 }
24145 p->mark = _mark;
24146 D(fprintf(stderr, "%*c%s _loop0_65[%d-%d]: %s failed!\n", p->level, ' ',
24147 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' keyword_pattern"));
24148 }
24149 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
24150 if (!_seq) {
24151 PyMem_Free(_children);
24152 p->error_indicator = 1;
24153 PyErr_NoMemory();
24154 D(p->level--);
24155 return NULL;
24156 }
24157 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
24158 PyMem_Free(_children);
24159 _PyPegen_insert_memo(p, _start_mark, _loop0_65_type, _seq);
24160 D(p->level--);
24161 return _seq;
24162}
24163
24164// _gather_64: keyword_pattern _loop0_65
24165static asdl_seq *
24166_gather_64_rule(Parser *p)
24167{
24168 D(p->level++);
24169 if (p->error_indicator) {
24170 D(p->level--);
24171 return NULL;
24172 }
24173 asdl_seq * _res = NULL;
24174 int _mark = p->mark;
24175 { // keyword_pattern _loop0_65
24176 if (p->error_indicator) {
24177 D(p->level--);
24178 return NULL;
24179 }
24180 D(fprintf(stderr, "%*c> _gather_64[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "keyword_pattern _loop0_65"));
24181 keyword_ty elem;
24182 asdl_seq * seq;
24183 if (
24184 (elem = keyword_pattern_rule(p)) // keyword_pattern
24185 &&
24186 (seq = _loop0_65_rule(p)) // _loop0_65
24187 )
24188 {
24189 D(fprintf(stderr, "%*c+ _gather_64[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "keyword_pattern _loop0_65"));
24190 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
24191 goto done;
24192 }
24193 p->mark = _mark;
24194 D(fprintf(stderr, "%*c%s _gather_64[%d-%d]: %s failed!\n", p->level, ' ',
24195 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "keyword_pattern _loop0_65"));
24196 }
24197 _res = NULL;
24198 done:
24199 D(p->level--);
24200 return _res;
24201}
24202
24203// _tmp_66: 'from' expression
24204static void *
24205_tmp_66_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024206{
24207 D(p->level++);
24208 if (p->error_indicator) {
24209 D(p->level--);
24210 return NULL;
24211 }
24212 void * _res = NULL;
24213 int _mark = p->mark;
24214 { // 'from' expression
24215 if (p->error_indicator) {
24216 D(p->level--);
24217 return NULL;
24218 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024219 D(fprintf(stderr, "%*c> _tmp_66[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024220 Token * _keyword;
24221 expr_ty z;
24222 if (
24223 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
24224 &&
24225 (z = expression_rule(p)) // expression
24226 )
24227 {
Brandt Bucher145bf262021-02-26 14:51:55 -080024228 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 +010024229 _res = z;
24230 if (_res == NULL && PyErr_Occurred()) {
24231 p->error_indicator = 1;
24232 D(p->level--);
24233 return NULL;
24234 }
24235 goto done;
24236 }
24237 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024238 D(fprintf(stderr, "%*c%s _tmp_66[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024239 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024240 }
24241 _res = NULL;
24242 done:
24243 D(p->level--);
24244 return _res;
24245}
24246
Brandt Bucher145bf262021-02-26 14:51:55 -080024247// _tmp_67: '->' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024248static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080024249_tmp_67_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024250{
24251 D(p->level++);
24252 if (p->error_indicator) {
24253 D(p->level--);
24254 return NULL;
24255 }
24256 void * _res = NULL;
24257 int _mark = p->mark;
24258 { // '->' expression
24259 if (p->error_indicator) {
24260 D(p->level--);
24261 return NULL;
24262 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024263 D(fprintf(stderr, "%*c> _tmp_67[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'->' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024264 Token * _literal;
24265 expr_ty z;
24266 if (
24267 (_literal = _PyPegen_expect_token(p, 51)) // token='->'
24268 &&
24269 (z = expression_rule(p)) // expression
24270 )
24271 {
Brandt Bucher145bf262021-02-26 14:51:55 -080024272 D(fprintf(stderr, "%*c+ _tmp_67[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'->' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024273 _res = z;
24274 if (_res == NULL && PyErr_Occurred()) {
24275 p->error_indicator = 1;
24276 D(p->level--);
24277 return NULL;
24278 }
24279 goto done;
24280 }
24281 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024282 D(fprintf(stderr, "%*c%s _tmp_67[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024283 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'->' expression"));
24284 }
24285 _res = NULL;
24286 done:
24287 D(p->level--);
24288 return _res;
24289}
24290
Brandt Bucher145bf262021-02-26 14:51:55 -080024291// _tmp_68: '->' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024292static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080024293_tmp_68_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024294{
24295 D(p->level++);
24296 if (p->error_indicator) {
24297 D(p->level--);
24298 return NULL;
24299 }
24300 void * _res = NULL;
24301 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024302 { // '->' expression
24303 if (p->error_indicator) {
24304 D(p->level--);
24305 return NULL;
24306 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024307 D(fprintf(stderr, "%*c> _tmp_68[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'->' expression"));
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024308 Token * _literal;
24309 expr_ty z;
24310 if (
24311 (_literal = _PyPegen_expect_token(p, 51)) // token='->'
24312 &&
24313 (z = expression_rule(p)) // expression
24314 )
24315 {
Brandt Bucher145bf262021-02-26 14:51:55 -080024316 D(fprintf(stderr, "%*c+ _tmp_68[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'->' expression"));
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024317 _res = z;
24318 if (_res == NULL && PyErr_Occurred()) {
24319 p->error_indicator = 1;
24320 D(p->level--);
24321 return NULL;
24322 }
24323 goto done;
24324 }
24325 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024326 D(fprintf(stderr, "%*c%s _tmp_68[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024327 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'->' expression"));
24328 }
24329 _res = NULL;
24330 done:
24331 D(p->level--);
24332 return _res;
24333}
24334
Brandt Bucher145bf262021-02-26 14:51:55 -080024335// _tmp_69: NEWLINE INDENT
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024336static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080024337_tmp_69_rule(Parser *p)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024338{
24339 D(p->level++);
24340 if (p->error_indicator) {
24341 D(p->level--);
24342 return NULL;
24343 }
24344 void * _res = NULL;
24345 int _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024346 { // NEWLINE INDENT
24347 if (p->error_indicator) {
24348 D(p->level--);
24349 return NULL;
24350 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024351 D(fprintf(stderr, "%*c> _tmp_69[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE INDENT"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024352 Token * indent_var;
24353 Token * newline_var;
24354 if (
24355 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
24356 &&
24357 (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
24358 )
24359 {
Brandt Bucher145bf262021-02-26 14:51:55 -080024360 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 +010024361 _res = _PyPegen_dummy_name(p, newline_var, indent_var);
24362 goto done;
24363 }
24364 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024365 D(fprintf(stderr, "%*c%s _tmp_69[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024366 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE INDENT"));
24367 }
24368 _res = NULL;
24369 done:
24370 D(p->level--);
24371 return _res;
24372}
24373
Brandt Bucher145bf262021-02-26 14:51:55 -080024374// _loop0_70: param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024375static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080024376_loop0_70_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024377{
24378 D(p->level++);
24379 if (p->error_indicator) {
24380 D(p->level--);
24381 return NULL;
24382 }
24383 void *_res = NULL;
24384 int _mark = p->mark;
24385 int _start_mark = p->mark;
24386 void **_children = PyMem_Malloc(sizeof(void *));
24387 if (!_children) {
24388 p->error_indicator = 1;
24389 PyErr_NoMemory();
24390 D(p->level--);
24391 return NULL;
24392 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024393 Py_ssize_t _children_capacity = 1;
24394 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024395 { // param_no_default
24396 if (p->error_indicator) {
24397 D(p->level--);
24398 return NULL;
24399 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024400 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 +010024401 arg_ty param_no_default_var;
24402 while (
24403 (param_no_default_var = param_no_default_rule(p)) // param_no_default
24404 )
24405 {
24406 _res = param_no_default_var;
24407 if (_n == _children_capacity) {
24408 _children_capacity *= 2;
24409 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24410 if (!_new_children) {
24411 p->error_indicator = 1;
24412 PyErr_NoMemory();
24413 D(p->level--);
24414 return NULL;
24415 }
24416 _children = _new_children;
24417 }
24418 _children[_n++] = _res;
24419 _mark = p->mark;
24420 }
24421 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024422 D(fprintf(stderr, "%*c%s _loop0_70[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024423 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024424 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024425 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024426 if (!_seq) {
24427 PyMem_Free(_children);
24428 p->error_indicator = 1;
24429 PyErr_NoMemory();
24430 D(p->level--);
24431 return NULL;
24432 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024433 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024434 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080024435 _PyPegen_insert_memo(p, _start_mark, _loop0_70_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024436 D(p->level--);
24437 return _seq;
24438}
24439
Brandt Bucher145bf262021-02-26 14:51:55 -080024440// _loop0_71: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024441static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080024442_loop0_71_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024443{
24444 D(p->level++);
24445 if (p->error_indicator) {
24446 D(p->level--);
24447 return NULL;
24448 }
24449 void *_res = NULL;
24450 int _mark = p->mark;
24451 int _start_mark = p->mark;
24452 void **_children = PyMem_Malloc(sizeof(void *));
24453 if (!_children) {
24454 p->error_indicator = 1;
24455 PyErr_NoMemory();
24456 D(p->level--);
24457 return NULL;
24458 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024459 Py_ssize_t _children_capacity = 1;
24460 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024461 { // param_with_default
24462 if (p->error_indicator) {
24463 D(p->level--);
24464 return NULL;
24465 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024466 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 +010024467 NameDefaultPair* param_with_default_var;
24468 while (
24469 (param_with_default_var = param_with_default_rule(p)) // param_with_default
24470 )
24471 {
24472 _res = param_with_default_var;
24473 if (_n == _children_capacity) {
24474 _children_capacity *= 2;
24475 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24476 if (!_new_children) {
24477 p->error_indicator = 1;
24478 PyErr_NoMemory();
24479 D(p->level--);
24480 return NULL;
24481 }
24482 _children = _new_children;
24483 }
24484 _children[_n++] = _res;
24485 _mark = p->mark;
24486 }
24487 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024488 D(fprintf(stderr, "%*c%s _loop0_71[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024489 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
24490 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024491 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024492 if (!_seq) {
24493 PyMem_Free(_children);
24494 p->error_indicator = 1;
24495 PyErr_NoMemory();
24496 D(p->level--);
24497 return NULL;
24498 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024499 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024500 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080024501 _PyPegen_insert_memo(p, _start_mark, _loop0_71_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024502 D(p->level--);
24503 return _seq;
24504}
24505
Brandt Bucher145bf262021-02-26 14:51:55 -080024506// _loop0_72: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024507static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080024508_loop0_72_rule(Parser *p)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024509{
24510 D(p->level++);
24511 if (p->error_indicator) {
24512 D(p->level--);
24513 return NULL;
24514 }
24515 void *_res = NULL;
24516 int _mark = p->mark;
24517 int _start_mark = p->mark;
24518 void **_children = PyMem_Malloc(sizeof(void *));
24519 if (!_children) {
24520 p->error_indicator = 1;
24521 PyErr_NoMemory();
24522 D(p->level--);
24523 return NULL;
24524 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024525 Py_ssize_t _children_capacity = 1;
24526 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024527 { // param_with_default
24528 if (p->error_indicator) {
24529 D(p->level--);
24530 return NULL;
24531 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024532 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 +030024533 NameDefaultPair* param_with_default_var;
24534 while (
24535 (param_with_default_var = param_with_default_rule(p)) // param_with_default
24536 )
24537 {
24538 _res = param_with_default_var;
24539 if (_n == _children_capacity) {
24540 _children_capacity *= 2;
24541 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24542 if (!_new_children) {
24543 p->error_indicator = 1;
24544 PyErr_NoMemory();
24545 D(p->level--);
24546 return NULL;
24547 }
24548 _children = _new_children;
24549 }
24550 _children[_n++] = _res;
24551 _mark = p->mark;
24552 }
24553 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024554 D(fprintf(stderr, "%*c%s _loop0_72[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024555 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
24556 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024557 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024558 if (!_seq) {
24559 PyMem_Free(_children);
24560 p->error_indicator = 1;
24561 PyErr_NoMemory();
24562 D(p->level--);
24563 return NULL;
24564 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024565 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024566 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080024567 _PyPegen_insert_memo(p, _start_mark, _loop0_72_type, _seq);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024568 D(p->level--);
24569 return _seq;
24570}
24571
Brandt Bucher145bf262021-02-26 14:51:55 -080024572// _loop1_73: param_no_default
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024573static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080024574_loop1_73_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024575{
24576 D(p->level++);
24577 if (p->error_indicator) {
24578 D(p->level--);
24579 return NULL;
24580 }
24581 void *_res = NULL;
24582 int _mark = p->mark;
24583 int _start_mark = p->mark;
24584 void **_children = PyMem_Malloc(sizeof(void *));
24585 if (!_children) {
24586 p->error_indicator = 1;
24587 PyErr_NoMemory();
24588 D(p->level--);
24589 return NULL;
24590 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024591 Py_ssize_t _children_capacity = 1;
24592 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024593 { // param_no_default
24594 if (p->error_indicator) {
24595 D(p->level--);
24596 return NULL;
24597 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024598 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 +010024599 arg_ty param_no_default_var;
24600 while (
24601 (param_no_default_var = param_no_default_rule(p)) // param_no_default
24602 )
24603 {
24604 _res = param_no_default_var;
24605 if (_n == _children_capacity) {
24606 _children_capacity *= 2;
24607 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24608 if (!_new_children) {
24609 p->error_indicator = 1;
24610 PyErr_NoMemory();
24611 D(p->level--);
24612 return NULL;
24613 }
24614 _children = _new_children;
24615 }
24616 _children[_n++] = _res;
24617 _mark = p->mark;
24618 }
24619 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024620 D(fprintf(stderr, "%*c%s _loop1_73[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024621 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
24622 }
24623 if (_n == 0 || p->error_indicator) {
24624 PyMem_Free(_children);
24625 D(p->level--);
24626 return NULL;
24627 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024628 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024629 if (!_seq) {
24630 PyMem_Free(_children);
24631 p->error_indicator = 1;
24632 PyErr_NoMemory();
24633 D(p->level--);
24634 return NULL;
24635 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024636 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024637 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080024638 _PyPegen_insert_memo(p, _start_mark, _loop1_73_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024639 D(p->level--);
24640 return _seq;
24641}
24642
Brandt Bucher145bf262021-02-26 14:51:55 -080024643// _loop0_74: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024644static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080024645_loop0_74_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024646{
24647 D(p->level++);
24648 if (p->error_indicator) {
24649 D(p->level--);
24650 return NULL;
24651 }
24652 void *_res = NULL;
24653 int _mark = p->mark;
24654 int _start_mark = p->mark;
24655 void **_children = PyMem_Malloc(sizeof(void *));
24656 if (!_children) {
24657 p->error_indicator = 1;
24658 PyErr_NoMemory();
24659 D(p->level--);
24660 return NULL;
24661 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024662 Py_ssize_t _children_capacity = 1;
24663 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024664 { // param_with_default
24665 if (p->error_indicator) {
24666 D(p->level--);
24667 return NULL;
24668 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024669 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 +010024670 NameDefaultPair* param_with_default_var;
24671 while (
24672 (param_with_default_var = param_with_default_rule(p)) // param_with_default
24673 )
24674 {
24675 _res = param_with_default_var;
24676 if (_n == _children_capacity) {
24677 _children_capacity *= 2;
24678 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24679 if (!_new_children) {
24680 p->error_indicator = 1;
24681 PyErr_NoMemory();
24682 D(p->level--);
24683 return NULL;
24684 }
24685 _children = _new_children;
24686 }
24687 _children[_n++] = _res;
24688 _mark = p->mark;
24689 }
24690 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024691 D(fprintf(stderr, "%*c%s _loop0_74[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024692 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
24693 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024694 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024695 if (!_seq) {
24696 PyMem_Free(_children);
24697 p->error_indicator = 1;
24698 PyErr_NoMemory();
24699 D(p->level--);
24700 return NULL;
24701 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024702 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024703 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080024704 _PyPegen_insert_memo(p, _start_mark, _loop0_74_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024705 D(p->level--);
24706 return _seq;
24707}
24708
Brandt Bucher145bf262021-02-26 14:51:55 -080024709// _loop1_75: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024710static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080024711_loop1_75_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024712{
24713 D(p->level++);
24714 if (p->error_indicator) {
24715 D(p->level--);
24716 return NULL;
24717 }
24718 void *_res = NULL;
24719 int _mark = p->mark;
24720 int _start_mark = p->mark;
24721 void **_children = PyMem_Malloc(sizeof(void *));
24722 if (!_children) {
24723 p->error_indicator = 1;
24724 PyErr_NoMemory();
24725 D(p->level--);
24726 return NULL;
24727 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024728 Py_ssize_t _children_capacity = 1;
24729 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024730 { // param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024731 if (p->error_indicator) {
24732 D(p->level--);
24733 return NULL;
24734 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024735 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 +030024736 NameDefaultPair* param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024737 while (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024738 (param_with_default_var = param_with_default_rule(p)) // param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024739 )
24740 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024741 _res = param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024742 if (_n == _children_capacity) {
24743 _children_capacity *= 2;
24744 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24745 if (!_new_children) {
24746 p->error_indicator = 1;
24747 PyErr_NoMemory();
24748 D(p->level--);
24749 return NULL;
24750 }
24751 _children = _new_children;
24752 }
24753 _children[_n++] = _res;
24754 _mark = p->mark;
24755 }
24756 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024757 D(fprintf(stderr, "%*c%s _loop1_75[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024758 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024759 }
24760 if (_n == 0 || p->error_indicator) {
24761 PyMem_Free(_children);
24762 D(p->level--);
24763 return NULL;
24764 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024765 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024766 if (!_seq) {
24767 PyMem_Free(_children);
24768 p->error_indicator = 1;
24769 PyErr_NoMemory();
24770 D(p->level--);
24771 return NULL;
24772 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024773 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024774 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080024775 _PyPegen_insert_memo(p, _start_mark, _loop1_75_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024776 D(p->level--);
24777 return _seq;
24778}
24779
Brandt Bucher145bf262021-02-26 14:51:55 -080024780// _loop1_76: param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024781static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080024782_loop1_76_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024783{
24784 D(p->level++);
24785 if (p->error_indicator) {
24786 D(p->level--);
24787 return NULL;
24788 }
24789 void *_res = NULL;
24790 int _mark = p->mark;
24791 int _start_mark = p->mark;
24792 void **_children = PyMem_Malloc(sizeof(void *));
24793 if (!_children) {
24794 p->error_indicator = 1;
24795 PyErr_NoMemory();
24796 D(p->level--);
24797 return NULL;
24798 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024799 Py_ssize_t _children_capacity = 1;
24800 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024801 { // param_no_default
24802 if (p->error_indicator) {
24803 D(p->level--);
24804 return NULL;
24805 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024806 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 +010024807 arg_ty param_no_default_var;
24808 while (
24809 (param_no_default_var = param_no_default_rule(p)) // param_no_default
24810 )
24811 {
24812 _res = param_no_default_var;
24813 if (_n == _children_capacity) {
24814 _children_capacity *= 2;
24815 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24816 if (!_new_children) {
24817 p->error_indicator = 1;
24818 PyErr_NoMemory();
24819 D(p->level--);
24820 return NULL;
24821 }
24822 _children = _new_children;
24823 }
24824 _children[_n++] = _res;
24825 _mark = p->mark;
24826 }
24827 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024828 D(fprintf(stderr, "%*c%s _loop1_76[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024829 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
24830 }
24831 if (_n == 0 || p->error_indicator) {
24832 PyMem_Free(_children);
24833 D(p->level--);
24834 return NULL;
24835 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024836 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024837 if (!_seq) {
24838 PyMem_Free(_children);
24839 p->error_indicator = 1;
24840 PyErr_NoMemory();
24841 D(p->level--);
24842 return NULL;
24843 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024844 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024845 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080024846 _PyPegen_insert_memo(p, _start_mark, _loop1_76_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024847 D(p->level--);
24848 return _seq;
24849}
24850
Brandt Bucher145bf262021-02-26 14:51:55 -080024851// _loop1_77: param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024852static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080024853_loop1_77_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024854{
24855 D(p->level++);
24856 if (p->error_indicator) {
24857 D(p->level--);
24858 return NULL;
24859 }
24860 void *_res = NULL;
24861 int _mark = p->mark;
24862 int _start_mark = p->mark;
24863 void **_children = PyMem_Malloc(sizeof(void *));
24864 if (!_children) {
24865 p->error_indicator = 1;
24866 PyErr_NoMemory();
24867 D(p->level--);
24868 return NULL;
24869 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024870 Py_ssize_t _children_capacity = 1;
24871 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024872 { // param_no_default
24873 if (p->error_indicator) {
24874 D(p->level--);
24875 return NULL;
24876 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024877 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 +010024878 arg_ty param_no_default_var;
24879 while (
24880 (param_no_default_var = param_no_default_rule(p)) // param_no_default
24881 )
24882 {
24883 _res = param_no_default_var;
24884 if (_n == _children_capacity) {
24885 _children_capacity *= 2;
24886 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24887 if (!_new_children) {
24888 p->error_indicator = 1;
24889 PyErr_NoMemory();
24890 D(p->level--);
24891 return NULL;
24892 }
24893 _children = _new_children;
24894 }
24895 _children[_n++] = _res;
24896 _mark = p->mark;
24897 }
24898 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024899 D(fprintf(stderr, "%*c%s _loop1_77[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024900 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
24901 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024902 if (_n == 0 || p->error_indicator) {
24903 PyMem_Free(_children);
24904 D(p->level--);
24905 return NULL;
24906 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024907 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024908 if (!_seq) {
24909 PyMem_Free(_children);
24910 p->error_indicator = 1;
24911 PyErr_NoMemory();
24912 D(p->level--);
24913 return NULL;
24914 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024915 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024916 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080024917 _PyPegen_insert_memo(p, _start_mark, _loop1_77_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024918 D(p->level--);
24919 return _seq;
24920}
24921
Brandt Bucher145bf262021-02-26 14:51:55 -080024922// _loop0_78: param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024923static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080024924_loop0_78_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024925{
24926 D(p->level++);
24927 if (p->error_indicator) {
24928 D(p->level--);
24929 return NULL;
24930 }
24931 void *_res = NULL;
24932 int _mark = p->mark;
24933 int _start_mark = p->mark;
24934 void **_children = PyMem_Malloc(sizeof(void *));
24935 if (!_children) {
24936 p->error_indicator = 1;
24937 PyErr_NoMemory();
24938 D(p->level--);
24939 return NULL;
24940 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024941 Py_ssize_t _children_capacity = 1;
24942 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024943 { // param_no_default
24944 if (p->error_indicator) {
24945 D(p->level--);
24946 return NULL;
24947 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024948 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 +010024949 arg_ty param_no_default_var;
24950 while (
24951 (param_no_default_var = param_no_default_rule(p)) // param_no_default
24952 )
24953 {
24954 _res = param_no_default_var;
24955 if (_n == _children_capacity) {
24956 _children_capacity *= 2;
24957 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24958 if (!_new_children) {
24959 p->error_indicator = 1;
24960 PyErr_NoMemory();
24961 D(p->level--);
24962 return NULL;
24963 }
24964 _children = _new_children;
24965 }
24966 _children[_n++] = _res;
24967 _mark = p->mark;
24968 }
24969 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024970 D(fprintf(stderr, "%*c%s _loop0_78[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024971 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
24972 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024973 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024974 if (!_seq) {
24975 PyMem_Free(_children);
24976 p->error_indicator = 1;
24977 PyErr_NoMemory();
24978 D(p->level--);
24979 return NULL;
24980 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024981 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024982 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080024983 _PyPegen_insert_memo(p, _start_mark, _loop0_78_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024984 D(p->level--);
24985 return _seq;
24986}
24987
Brandt Bucher145bf262021-02-26 14:51:55 -080024988// _loop1_79: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024989static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080024990_loop1_79_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024991{
24992 D(p->level++);
24993 if (p->error_indicator) {
24994 D(p->level--);
24995 return NULL;
24996 }
24997 void *_res = NULL;
24998 int _mark = p->mark;
24999 int _start_mark = p->mark;
25000 void **_children = PyMem_Malloc(sizeof(void *));
25001 if (!_children) {
25002 p->error_indicator = 1;
25003 PyErr_NoMemory();
25004 D(p->level--);
25005 return NULL;
25006 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025007 Py_ssize_t _children_capacity = 1;
25008 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025009 { // param_with_default
25010 if (p->error_indicator) {
25011 D(p->level--);
25012 return NULL;
25013 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025014 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 +010025015 NameDefaultPair* param_with_default_var;
25016 while (
25017 (param_with_default_var = param_with_default_rule(p)) // param_with_default
25018 )
25019 {
25020 _res = param_with_default_var;
25021 if (_n == _children_capacity) {
25022 _children_capacity *= 2;
25023 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25024 if (!_new_children) {
25025 p->error_indicator = 1;
25026 PyErr_NoMemory();
25027 D(p->level--);
25028 return NULL;
25029 }
25030 _children = _new_children;
25031 }
25032 _children[_n++] = _res;
25033 _mark = p->mark;
25034 }
25035 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025036 D(fprintf(stderr, "%*c%s _loop1_79[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025037 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
25038 }
25039 if (_n == 0 || p->error_indicator) {
25040 PyMem_Free(_children);
25041 D(p->level--);
25042 return NULL;
25043 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025044 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025045 if (!_seq) {
25046 PyMem_Free(_children);
25047 p->error_indicator = 1;
25048 PyErr_NoMemory();
25049 D(p->level--);
25050 return NULL;
25051 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025052 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025053 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025054 _PyPegen_insert_memo(p, _start_mark, _loop1_79_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025055 D(p->level--);
25056 return _seq;
25057}
25058
Brandt Bucher145bf262021-02-26 14:51:55 -080025059// _loop0_80: param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025060static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025061_loop0_80_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025062{
25063 D(p->level++);
25064 if (p->error_indicator) {
25065 D(p->level--);
25066 return NULL;
25067 }
25068 void *_res = NULL;
25069 int _mark = p->mark;
25070 int _start_mark = p->mark;
25071 void **_children = PyMem_Malloc(sizeof(void *));
25072 if (!_children) {
25073 p->error_indicator = 1;
25074 PyErr_NoMemory();
25075 D(p->level--);
25076 return NULL;
25077 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025078 Py_ssize_t _children_capacity = 1;
25079 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025080 { // param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025081 if (p->error_indicator) {
25082 D(p->level--);
25083 return NULL;
25084 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025085 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 +030025086 arg_ty param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025087 while (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025088 (param_no_default_var = param_no_default_rule(p)) // param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025089 )
25090 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025091 _res = param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025092 if (_n == _children_capacity) {
25093 _children_capacity *= 2;
25094 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25095 if (!_new_children) {
25096 p->error_indicator = 1;
25097 PyErr_NoMemory();
25098 D(p->level--);
25099 return NULL;
25100 }
25101 _children = _new_children;
25102 }
25103 _children[_n++] = _res;
25104 _mark = p->mark;
25105 }
25106 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025107 D(fprintf(stderr, "%*c%s _loop0_80[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025108 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025109 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025110 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025111 if (!_seq) {
25112 PyMem_Free(_children);
25113 p->error_indicator = 1;
25114 PyErr_NoMemory();
25115 D(p->level--);
25116 return NULL;
25117 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025118 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025119 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025120 _PyPegen_insert_memo(p, _start_mark, _loop0_80_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025121 D(p->level--);
25122 return _seq;
25123}
25124
Brandt Bucher145bf262021-02-26 14:51:55 -080025125// _loop1_81: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025126static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025127_loop1_81_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025128{
25129 D(p->level++);
25130 if (p->error_indicator) {
25131 D(p->level--);
25132 return NULL;
25133 }
25134 void *_res = NULL;
25135 int _mark = p->mark;
25136 int _start_mark = p->mark;
25137 void **_children = PyMem_Malloc(sizeof(void *));
25138 if (!_children) {
25139 p->error_indicator = 1;
25140 PyErr_NoMemory();
25141 D(p->level--);
25142 return NULL;
25143 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025144 Py_ssize_t _children_capacity = 1;
25145 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025146 { // param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025147 if (p->error_indicator) {
25148 D(p->level--);
25149 return NULL;
25150 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025151 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 +030025152 NameDefaultPair* param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025153 while (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025154 (param_with_default_var = param_with_default_rule(p)) // param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025155 )
25156 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025157 _res = param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025158 if (_n == _children_capacity) {
25159 _children_capacity *= 2;
25160 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25161 if (!_new_children) {
25162 p->error_indicator = 1;
25163 PyErr_NoMemory();
25164 D(p->level--);
25165 return NULL;
25166 }
25167 _children = _new_children;
25168 }
25169 _children[_n++] = _res;
25170 _mark = p->mark;
25171 }
25172 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025173 D(fprintf(stderr, "%*c%s _loop1_81[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025174 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025175 }
25176 if (_n == 0 || p->error_indicator) {
25177 PyMem_Free(_children);
25178 D(p->level--);
25179 return NULL;
25180 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025181 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025182 if (!_seq) {
25183 PyMem_Free(_children);
25184 p->error_indicator = 1;
25185 PyErr_NoMemory();
25186 D(p->level--);
25187 return NULL;
25188 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025189 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025190 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025191 _PyPegen_insert_memo(p, _start_mark, _loop1_81_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025192 D(p->level--);
25193 return _seq;
25194}
25195
Brandt Bucher145bf262021-02-26 14:51:55 -080025196// _loop0_82: param_maybe_default
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025197static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025198_loop0_82_rule(Parser *p)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025199{
25200 D(p->level++);
25201 if (p->error_indicator) {
25202 D(p->level--);
25203 return NULL;
25204 }
25205 void *_res = NULL;
25206 int _mark = p->mark;
25207 int _start_mark = p->mark;
25208 void **_children = PyMem_Malloc(sizeof(void *));
25209 if (!_children) {
25210 p->error_indicator = 1;
25211 PyErr_NoMemory();
25212 D(p->level--);
25213 return NULL;
25214 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025215 Py_ssize_t _children_capacity = 1;
25216 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025217 { // param_maybe_default
25218 if (p->error_indicator) {
25219 D(p->level--);
25220 return NULL;
25221 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025222 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 +030025223 NameDefaultPair* param_maybe_default_var;
25224 while (
25225 (param_maybe_default_var = param_maybe_default_rule(p)) // param_maybe_default
25226 )
25227 {
25228 _res = param_maybe_default_var;
25229 if (_n == _children_capacity) {
25230 _children_capacity *= 2;
25231 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25232 if (!_new_children) {
25233 p->error_indicator = 1;
25234 PyErr_NoMemory();
25235 D(p->level--);
25236 return NULL;
25237 }
25238 _children = _new_children;
25239 }
25240 _children[_n++] = _res;
25241 _mark = p->mark;
25242 }
25243 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025244 D(fprintf(stderr, "%*c%s _loop0_82[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025245 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_maybe_default"));
25246 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025247 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025248 if (!_seq) {
25249 PyMem_Free(_children);
25250 p->error_indicator = 1;
25251 PyErr_NoMemory();
25252 D(p->level--);
25253 return NULL;
25254 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025255 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025256 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025257 _PyPegen_insert_memo(p, _start_mark, _loop0_82_type, _seq);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025258 D(p->level--);
25259 return _seq;
25260}
25261
Brandt Bucher145bf262021-02-26 14:51:55 -080025262// _loop1_83: param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025263static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025264_loop1_83_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025265{
25266 D(p->level++);
25267 if (p->error_indicator) {
25268 D(p->level--);
25269 return NULL;
25270 }
25271 void *_res = NULL;
25272 int _mark = p->mark;
25273 int _start_mark = p->mark;
25274 void **_children = PyMem_Malloc(sizeof(void *));
25275 if (!_children) {
25276 p->error_indicator = 1;
25277 PyErr_NoMemory();
25278 D(p->level--);
25279 return NULL;
25280 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025281 Py_ssize_t _children_capacity = 1;
25282 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025283 { // param_maybe_default
25284 if (p->error_indicator) {
25285 D(p->level--);
25286 return NULL;
25287 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025288 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 +030025289 NameDefaultPair* param_maybe_default_var;
25290 while (
25291 (param_maybe_default_var = param_maybe_default_rule(p)) // param_maybe_default
25292 )
25293 {
25294 _res = param_maybe_default_var;
25295 if (_n == _children_capacity) {
25296 _children_capacity *= 2;
25297 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25298 if (!_new_children) {
25299 p->error_indicator = 1;
25300 PyErr_NoMemory();
25301 D(p->level--);
25302 return NULL;
25303 }
25304 _children = _new_children;
25305 }
25306 _children[_n++] = _res;
25307 _mark = p->mark;
25308 }
25309 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025310 D(fprintf(stderr, "%*c%s _loop1_83[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025311 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_maybe_default"));
25312 }
25313 if (_n == 0 || p->error_indicator) {
25314 PyMem_Free(_children);
25315 D(p->level--);
25316 return NULL;
25317 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025318 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025319 if (!_seq) {
25320 PyMem_Free(_children);
25321 p->error_indicator = 1;
25322 PyErr_NoMemory();
25323 D(p->level--);
25324 return NULL;
25325 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025326 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025327 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025328 _PyPegen_insert_memo(p, _start_mark, _loop1_83_type, _seq);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025329 D(p->level--);
25330 return _seq;
25331}
25332
Brandt Bucher145bf262021-02-26 14:51:55 -080025333// _loop1_84: ('@' named_expression NEWLINE)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025334static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025335_loop1_84_rule(Parser *p)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025336{
25337 D(p->level++);
25338 if (p->error_indicator) {
25339 D(p->level--);
25340 return NULL;
25341 }
25342 void *_res = NULL;
25343 int _mark = p->mark;
25344 int _start_mark = p->mark;
25345 void **_children = PyMem_Malloc(sizeof(void *));
25346 if (!_children) {
25347 p->error_indicator = 1;
25348 PyErr_NoMemory();
25349 D(p->level--);
25350 return NULL;
25351 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025352 Py_ssize_t _children_capacity = 1;
25353 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025354 { // ('@' named_expression NEWLINE)
25355 if (p->error_indicator) {
25356 D(p->level--);
25357 return NULL;
25358 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025359 D(fprintf(stderr, "%*c> _loop1_84[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('@' named_expression NEWLINE)"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010025360 void *_tmp_180_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025361 while (
Pablo Galindoa77aac42021-04-23 14:27:05 +010025362 (_tmp_180_var = _tmp_180_rule(p)) // '@' named_expression NEWLINE
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025363 )
25364 {
Pablo Galindoa77aac42021-04-23 14:27:05 +010025365 _res = _tmp_180_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025366 if (_n == _children_capacity) {
25367 _children_capacity *= 2;
25368 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25369 if (!_new_children) {
25370 p->error_indicator = 1;
25371 PyErr_NoMemory();
25372 D(p->level--);
25373 return NULL;
25374 }
25375 _children = _new_children;
25376 }
25377 _children[_n++] = _res;
25378 _mark = p->mark;
25379 }
25380 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025381 D(fprintf(stderr, "%*c%s _loop1_84[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025382 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('@' named_expression NEWLINE)"));
25383 }
25384 if (_n == 0 || p->error_indicator) {
25385 PyMem_Free(_children);
25386 D(p->level--);
25387 return NULL;
25388 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025389 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025390 if (!_seq) {
25391 PyMem_Free(_children);
25392 p->error_indicator = 1;
25393 PyErr_NoMemory();
25394 D(p->level--);
25395 return NULL;
25396 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025397 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025398 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025399 _PyPegen_insert_memo(p, _start_mark, _loop1_84_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025400 D(p->level--);
25401 return _seq;
25402}
25403
Brandt Bucher145bf262021-02-26 14:51:55 -080025404// _tmp_85: '(' arguments? ')'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025405static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080025406_tmp_85_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025407{
25408 D(p->level++);
25409 if (p->error_indicator) {
25410 D(p->level--);
25411 return NULL;
25412 }
25413 void * _res = NULL;
25414 int _mark = p->mark;
25415 { // '(' arguments? ')'
25416 if (p->error_indicator) {
25417 D(p->level--);
25418 return NULL;
25419 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025420 D(fprintf(stderr, "%*c> _tmp_85[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025421 Token * _literal;
25422 Token * _literal_1;
25423 void *z;
25424 if (
25425 (_literal = _PyPegen_expect_token(p, 7)) // token='('
25426 &&
25427 (z = arguments_rule(p), 1) // arguments?
25428 &&
25429 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
25430 )
25431 {
Brandt Bucher145bf262021-02-26 14:51:55 -080025432 D(fprintf(stderr, "%*c+ _tmp_85[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025433 _res = z;
25434 if (_res == NULL && PyErr_Occurred()) {
25435 p->error_indicator = 1;
25436 D(p->level--);
25437 return NULL;
25438 }
25439 goto done;
25440 }
25441 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025442 D(fprintf(stderr, "%*c%s _tmp_85[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025443 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' arguments? ')'"));
25444 }
25445 _res = NULL;
25446 done:
25447 D(p->level--);
25448 return _res;
25449}
25450
Brandt Bucher145bf262021-02-26 14:51:55 -080025451// _loop1_86: (',' star_expression)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025452static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025453_loop1_86_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025454{
25455 D(p->level++);
25456 if (p->error_indicator) {
25457 D(p->level--);
25458 return NULL;
25459 }
25460 void *_res = NULL;
25461 int _mark = p->mark;
25462 int _start_mark = p->mark;
25463 void **_children = PyMem_Malloc(sizeof(void *));
25464 if (!_children) {
25465 p->error_indicator = 1;
25466 PyErr_NoMemory();
25467 D(p->level--);
25468 return NULL;
25469 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025470 Py_ssize_t _children_capacity = 1;
25471 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025472 { // (',' star_expression)
25473 if (p->error_indicator) {
25474 D(p->level--);
25475 return NULL;
25476 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025477 D(fprintf(stderr, "%*c> _loop1_86[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_expression)"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010025478 void *_tmp_181_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025479 while (
Pablo Galindoa77aac42021-04-23 14:27:05 +010025480 (_tmp_181_var = _tmp_181_rule(p)) // ',' star_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025481 )
25482 {
Pablo Galindoa77aac42021-04-23 14:27:05 +010025483 _res = _tmp_181_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025484 if (_n == _children_capacity) {
25485 _children_capacity *= 2;
25486 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25487 if (!_new_children) {
25488 p->error_indicator = 1;
25489 PyErr_NoMemory();
25490 D(p->level--);
25491 return NULL;
25492 }
25493 _children = _new_children;
25494 }
25495 _children[_n++] = _res;
25496 _mark = p->mark;
25497 }
25498 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025499 D(fprintf(stderr, "%*c%s _loop1_86[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025500 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' star_expression)"));
25501 }
25502 if (_n == 0 || p->error_indicator) {
25503 PyMem_Free(_children);
25504 D(p->level--);
25505 return NULL;
25506 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025507 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025508 if (!_seq) {
25509 PyMem_Free(_children);
25510 p->error_indicator = 1;
25511 PyErr_NoMemory();
25512 D(p->level--);
25513 return NULL;
25514 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025515 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025516 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025517 _PyPegen_insert_memo(p, _start_mark, _loop1_86_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025518 D(p->level--);
25519 return _seq;
25520}
25521
Brandt Bucher145bf262021-02-26 14:51:55 -080025522// _loop0_88: ',' star_named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025523static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025524_loop0_88_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025525{
25526 D(p->level++);
25527 if (p->error_indicator) {
25528 D(p->level--);
25529 return NULL;
25530 }
25531 void *_res = NULL;
25532 int _mark = p->mark;
25533 int _start_mark = p->mark;
25534 void **_children = PyMem_Malloc(sizeof(void *));
25535 if (!_children) {
25536 p->error_indicator = 1;
25537 PyErr_NoMemory();
25538 D(p->level--);
25539 return NULL;
25540 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025541 Py_ssize_t _children_capacity = 1;
25542 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025543 { // ',' star_named_expression
25544 if (p->error_indicator) {
25545 D(p->level--);
25546 return NULL;
25547 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025548 D(fprintf(stderr, "%*c> _loop0_88[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_named_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025549 Token * _literal;
25550 expr_ty elem;
25551 while (
25552 (_literal = _PyPegen_expect_token(p, 12)) // token=','
25553 &&
25554 (elem = star_named_expression_rule(p)) // star_named_expression
25555 )
25556 {
25557 _res = elem;
25558 if (_res == NULL && PyErr_Occurred()) {
25559 p->error_indicator = 1;
25560 PyMem_Free(_children);
25561 D(p->level--);
25562 return NULL;
25563 }
25564 if (_n == _children_capacity) {
25565 _children_capacity *= 2;
25566 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25567 if (!_new_children) {
25568 p->error_indicator = 1;
25569 PyErr_NoMemory();
25570 D(p->level--);
25571 return NULL;
25572 }
25573 _children = _new_children;
25574 }
25575 _children[_n++] = _res;
25576 _mark = p->mark;
25577 }
25578 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025579 D(fprintf(stderr, "%*c%s _loop0_88[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025580 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_named_expression"));
25581 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025582 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025583 if (!_seq) {
25584 PyMem_Free(_children);
25585 p->error_indicator = 1;
25586 PyErr_NoMemory();
25587 D(p->level--);
25588 return NULL;
25589 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025590 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025591 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025592 _PyPegen_insert_memo(p, _start_mark, _loop0_88_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025593 D(p->level--);
25594 return _seq;
25595}
25596
Brandt Bucher145bf262021-02-26 14:51:55 -080025597// _gather_87: star_named_expression _loop0_88
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025598static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025599_gather_87_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025600{
25601 D(p->level++);
25602 if (p->error_indicator) {
25603 D(p->level--);
25604 return NULL;
25605 }
25606 asdl_seq * _res = NULL;
25607 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025608 { // star_named_expression _loop0_88
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025609 if (p->error_indicator) {
25610 D(p->level--);
25611 return NULL;
25612 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025613 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 +010025614 expr_ty elem;
25615 asdl_seq * seq;
25616 if (
25617 (elem = star_named_expression_rule(p)) // star_named_expression
25618 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080025619 (seq = _loop0_88_rule(p)) // _loop0_88
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025620 )
25621 {
Brandt Bucher145bf262021-02-26 14:51:55 -080025622 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 +010025623 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
25624 goto done;
25625 }
25626 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025627 D(fprintf(stderr, "%*c%s _gather_87[%d-%d]: %s failed!\n", p->level, ' ',
25628 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression _loop0_88"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025629 }
25630 _res = NULL;
25631 done:
25632 D(p->level--);
25633 return _res;
25634}
25635
Brandt Bucher145bf262021-02-26 14:51:55 -080025636// _loop1_89: (',' expression)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025637static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025638_loop1_89_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025639{
25640 D(p->level++);
25641 if (p->error_indicator) {
25642 D(p->level--);
25643 return NULL;
25644 }
25645 void *_res = NULL;
25646 int _mark = p->mark;
25647 int _start_mark = p->mark;
25648 void **_children = PyMem_Malloc(sizeof(void *));
25649 if (!_children) {
25650 p->error_indicator = 1;
25651 PyErr_NoMemory();
25652 D(p->level--);
25653 return NULL;
25654 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025655 Py_ssize_t _children_capacity = 1;
25656 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025657 { // (',' expression)
25658 if (p->error_indicator) {
25659 D(p->level--);
25660 return NULL;
25661 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025662 D(fprintf(stderr, "%*c> _loop1_89[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' expression)"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010025663 void *_tmp_182_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025664 while (
Pablo Galindoa77aac42021-04-23 14:27:05 +010025665 (_tmp_182_var = _tmp_182_rule(p)) // ',' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025666 )
25667 {
Pablo Galindoa77aac42021-04-23 14:27:05 +010025668 _res = _tmp_182_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025669 if (_n == _children_capacity) {
25670 _children_capacity *= 2;
25671 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25672 if (!_new_children) {
25673 p->error_indicator = 1;
25674 PyErr_NoMemory();
25675 D(p->level--);
25676 return NULL;
25677 }
25678 _children = _new_children;
25679 }
25680 _children[_n++] = _res;
25681 _mark = p->mark;
25682 }
25683 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025684 D(fprintf(stderr, "%*c%s _loop1_89[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025685 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' expression)"));
25686 }
25687 if (_n == 0 || p->error_indicator) {
25688 PyMem_Free(_children);
25689 D(p->level--);
25690 return NULL;
25691 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025692 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025693 if (!_seq) {
25694 PyMem_Free(_children);
25695 p->error_indicator = 1;
25696 PyErr_NoMemory();
25697 D(p->level--);
25698 return NULL;
25699 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025700 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025701 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025702 _PyPegen_insert_memo(p, _start_mark, _loop1_89_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025703 D(p->level--);
25704 return _seq;
25705}
25706
Brandt Bucher145bf262021-02-26 14:51:55 -080025707// _loop0_90: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025708static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025709_loop0_90_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025710{
25711 D(p->level++);
25712 if (p->error_indicator) {
25713 D(p->level--);
25714 return NULL;
25715 }
25716 void *_res = NULL;
25717 int _mark = p->mark;
25718 int _start_mark = p->mark;
25719 void **_children = PyMem_Malloc(sizeof(void *));
25720 if (!_children) {
25721 p->error_indicator = 1;
25722 PyErr_NoMemory();
25723 D(p->level--);
25724 return NULL;
25725 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025726 Py_ssize_t _children_capacity = 1;
25727 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025728 { // lambda_param_no_default
25729 if (p->error_indicator) {
25730 D(p->level--);
25731 return NULL;
25732 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025733 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 +010025734 arg_ty lambda_param_no_default_var;
25735 while (
25736 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
25737 )
25738 {
25739 _res = lambda_param_no_default_var;
25740 if (_n == _children_capacity) {
25741 _children_capacity *= 2;
25742 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25743 if (!_new_children) {
25744 p->error_indicator = 1;
25745 PyErr_NoMemory();
25746 D(p->level--);
25747 return NULL;
25748 }
25749 _children = _new_children;
25750 }
25751 _children[_n++] = _res;
25752 _mark = p->mark;
25753 }
25754 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025755 D(fprintf(stderr, "%*c%s _loop0_90[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025756 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025757 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025758 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025759 if (!_seq) {
25760 PyMem_Free(_children);
25761 p->error_indicator = 1;
25762 PyErr_NoMemory();
25763 D(p->level--);
25764 return NULL;
25765 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025766 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025767 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025768 _PyPegen_insert_memo(p, _start_mark, _loop0_90_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025769 D(p->level--);
25770 return _seq;
25771}
25772
Brandt Bucher145bf262021-02-26 14:51:55 -080025773// _loop0_91: lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025774static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025775_loop0_91_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025776{
25777 D(p->level++);
25778 if (p->error_indicator) {
25779 D(p->level--);
25780 return NULL;
25781 }
25782 void *_res = NULL;
25783 int _mark = p->mark;
25784 int _start_mark = p->mark;
25785 void **_children = PyMem_Malloc(sizeof(void *));
25786 if (!_children) {
25787 p->error_indicator = 1;
25788 PyErr_NoMemory();
25789 D(p->level--);
25790 return NULL;
25791 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025792 Py_ssize_t _children_capacity = 1;
25793 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025794 { // lambda_param_with_default
25795 if (p->error_indicator) {
25796 D(p->level--);
25797 return NULL;
25798 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025799 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 +010025800 NameDefaultPair* lambda_param_with_default_var;
25801 while (
25802 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
25803 )
25804 {
25805 _res = lambda_param_with_default_var;
25806 if (_n == _children_capacity) {
25807 _children_capacity *= 2;
25808 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25809 if (!_new_children) {
25810 p->error_indicator = 1;
25811 PyErr_NoMemory();
25812 D(p->level--);
25813 return NULL;
25814 }
25815 _children = _new_children;
25816 }
25817 _children[_n++] = _res;
25818 _mark = p->mark;
25819 }
25820 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025821 D(fprintf(stderr, "%*c%s _loop0_91[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025822 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
25823 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025824 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025825 if (!_seq) {
25826 PyMem_Free(_children);
25827 p->error_indicator = 1;
25828 PyErr_NoMemory();
25829 D(p->level--);
25830 return NULL;
25831 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025832 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025833 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025834 _PyPegen_insert_memo(p, _start_mark, _loop0_91_type, _seq);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000025835 D(p->level--);
25836 return _seq;
25837}
25838
Brandt Bucher145bf262021-02-26 14:51:55 -080025839// _loop0_92: lambda_param_with_default
Pablo Galindob0aba1f2020-11-17 01:17:12 +000025840static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025841_loop0_92_rule(Parser *p)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000025842{
25843 D(p->level++);
25844 if (p->error_indicator) {
25845 D(p->level--);
25846 return NULL;
25847 }
25848 void *_res = NULL;
25849 int _mark = p->mark;
25850 int _start_mark = p->mark;
25851 void **_children = PyMem_Malloc(sizeof(void *));
25852 if (!_children) {
25853 p->error_indicator = 1;
25854 PyErr_NoMemory();
25855 D(p->level--);
25856 return NULL;
25857 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025858 Py_ssize_t _children_capacity = 1;
25859 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000025860 { // lambda_param_with_default
25861 if (p->error_indicator) {
25862 D(p->level--);
25863 return NULL;
25864 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025865 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 +000025866 NameDefaultPair* lambda_param_with_default_var;
25867 while (
25868 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
25869 )
25870 {
25871 _res = lambda_param_with_default_var;
25872 if (_n == _children_capacity) {
25873 _children_capacity *= 2;
25874 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25875 if (!_new_children) {
25876 p->error_indicator = 1;
25877 PyErr_NoMemory();
25878 D(p->level--);
25879 return NULL;
25880 }
25881 _children = _new_children;
25882 }
25883 _children[_n++] = _res;
25884 _mark = p->mark;
25885 }
25886 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025887 D(fprintf(stderr, "%*c%s _loop0_92[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000025888 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
25889 }
25890 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
25891 if (!_seq) {
25892 PyMem_Free(_children);
25893 p->error_indicator = 1;
25894 PyErr_NoMemory();
25895 D(p->level--);
25896 return NULL;
25897 }
25898 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
25899 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025900 _PyPegen_insert_memo(p, _start_mark, _loop0_92_type, _seq);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000025901 D(p->level--);
25902 return _seq;
25903}
25904
Brandt Bucher145bf262021-02-26 14:51:55 -080025905// _loop1_93: lambda_param_no_default
Pablo Galindob0aba1f2020-11-17 01:17:12 +000025906static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025907_loop1_93_rule(Parser *p)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000025908{
25909 D(p->level++);
25910 if (p->error_indicator) {
25911 D(p->level--);
25912 return NULL;
25913 }
25914 void *_res = NULL;
25915 int _mark = p->mark;
25916 int _start_mark = p->mark;
25917 void **_children = PyMem_Malloc(sizeof(void *));
25918 if (!_children) {
25919 p->error_indicator = 1;
25920 PyErr_NoMemory();
25921 D(p->level--);
25922 return NULL;
25923 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025924 Py_ssize_t _children_capacity = 1;
25925 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000025926 { // lambda_param_no_default
25927 if (p->error_indicator) {
25928 D(p->level--);
25929 return NULL;
25930 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025931 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 +000025932 arg_ty lambda_param_no_default_var;
25933 while (
25934 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
25935 )
25936 {
25937 _res = lambda_param_no_default_var;
25938 if (_n == _children_capacity) {
25939 _children_capacity *= 2;
25940 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25941 if (!_new_children) {
25942 p->error_indicator = 1;
25943 PyErr_NoMemory();
25944 D(p->level--);
25945 return NULL;
25946 }
25947 _children = _new_children;
25948 }
25949 _children[_n++] = _res;
25950 _mark = p->mark;
25951 }
25952 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025953 D(fprintf(stderr, "%*c%s _loop1_93[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000025954 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
25955 }
25956 if (_n == 0 || p->error_indicator) {
25957 PyMem_Free(_children);
25958 D(p->level--);
25959 return NULL;
25960 }
25961 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
25962 if (!_seq) {
25963 PyMem_Free(_children);
25964 p->error_indicator = 1;
25965 PyErr_NoMemory();
25966 D(p->level--);
25967 return NULL;
25968 }
25969 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
25970 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025971 _PyPegen_insert_memo(p, _start_mark, _loop1_93_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025972 D(p->level--);
25973 return _seq;
25974}
25975
Brandt Bucher145bf262021-02-26 14:51:55 -080025976// _loop0_94: lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025977static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025978_loop0_94_rule(Parser *p)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025979{
25980 D(p->level++);
25981 if (p->error_indicator) {
25982 D(p->level--);
25983 return NULL;
25984 }
25985 void *_res = NULL;
25986 int _mark = p->mark;
25987 int _start_mark = p->mark;
25988 void **_children = PyMem_Malloc(sizeof(void *));
25989 if (!_children) {
25990 p->error_indicator = 1;
25991 PyErr_NoMemory();
25992 D(p->level--);
25993 return NULL;
25994 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025995 Py_ssize_t _children_capacity = 1;
25996 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025997 { // lambda_param_with_default
25998 if (p->error_indicator) {
25999 D(p->level--);
26000 return NULL;
26001 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026002 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 +030026003 NameDefaultPair* lambda_param_with_default_var;
26004 while (
26005 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
26006 )
26007 {
26008 _res = lambda_param_with_default_var;
26009 if (_n == _children_capacity) {
26010 _children_capacity *= 2;
26011 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26012 if (!_new_children) {
26013 p->error_indicator = 1;
26014 PyErr_NoMemory();
26015 D(p->level--);
26016 return NULL;
26017 }
26018 _children = _new_children;
26019 }
26020 _children[_n++] = _res;
26021 _mark = p->mark;
26022 }
26023 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026024 D(fprintf(stderr, "%*c%s _loop0_94[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026025 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
26026 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026027 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026028 if (!_seq) {
26029 PyMem_Free(_children);
26030 p->error_indicator = 1;
26031 PyErr_NoMemory();
26032 D(p->level--);
26033 return NULL;
26034 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026035 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026036 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026037 _PyPegen_insert_memo(p, _start_mark, _loop0_94_type, _seq);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026038 D(p->level--);
26039 return _seq;
26040}
26041
Brandt Bucher145bf262021-02-26 14:51:55 -080026042// _loop1_95: lambda_param_with_default
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026043static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026044_loop1_95_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026045{
26046 D(p->level++);
26047 if (p->error_indicator) {
26048 D(p->level--);
26049 return NULL;
26050 }
26051 void *_res = NULL;
26052 int _mark = p->mark;
26053 int _start_mark = p->mark;
26054 void **_children = PyMem_Malloc(sizeof(void *));
26055 if (!_children) {
26056 p->error_indicator = 1;
26057 PyErr_NoMemory();
26058 D(p->level--);
26059 return NULL;
26060 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026061 Py_ssize_t _children_capacity = 1;
26062 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026063 { // lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026064 if (p->error_indicator) {
26065 D(p->level--);
26066 return NULL;
26067 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026068 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 +000026069 NameDefaultPair* lambda_param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026070 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026071 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026072 )
26073 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026074 _res = lambda_param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026075 if (_n == _children_capacity) {
26076 _children_capacity *= 2;
26077 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26078 if (!_new_children) {
26079 p->error_indicator = 1;
26080 PyErr_NoMemory();
26081 D(p->level--);
26082 return NULL;
26083 }
26084 _children = _new_children;
26085 }
26086 _children[_n++] = _res;
26087 _mark = p->mark;
26088 }
26089 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026090 D(fprintf(stderr, "%*c%s _loop1_95[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026091 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026092 }
26093 if (_n == 0 || p->error_indicator) {
26094 PyMem_Free(_children);
26095 D(p->level--);
26096 return NULL;
26097 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026098 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026099 if (!_seq) {
26100 PyMem_Free(_children);
26101 p->error_indicator = 1;
26102 PyErr_NoMemory();
26103 D(p->level--);
26104 return NULL;
26105 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026106 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026107 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026108 _PyPegen_insert_memo(p, _start_mark, _loop1_95_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026109 D(p->level--);
26110 return _seq;
26111}
26112
Brandt Bucher145bf262021-02-26 14:51:55 -080026113// _loop1_96: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026114static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026115_loop1_96_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026116{
26117 D(p->level++);
26118 if (p->error_indicator) {
26119 D(p->level--);
26120 return NULL;
26121 }
26122 void *_res = NULL;
26123 int _mark = p->mark;
26124 int _start_mark = p->mark;
26125 void **_children = PyMem_Malloc(sizeof(void *));
26126 if (!_children) {
26127 p->error_indicator = 1;
26128 PyErr_NoMemory();
26129 D(p->level--);
26130 return NULL;
26131 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026132 Py_ssize_t _children_capacity = 1;
26133 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026134 { // lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026135 if (p->error_indicator) {
26136 D(p->level--);
26137 return NULL;
26138 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026139 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 +000026140 arg_ty lambda_param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026141 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026142 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026143 )
26144 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026145 _res = lambda_param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026146 if (_n == _children_capacity) {
26147 _children_capacity *= 2;
26148 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26149 if (!_new_children) {
26150 p->error_indicator = 1;
26151 PyErr_NoMemory();
26152 D(p->level--);
26153 return NULL;
26154 }
26155 _children = _new_children;
26156 }
26157 _children[_n++] = _res;
26158 _mark = p->mark;
26159 }
26160 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026161 D(fprintf(stderr, "%*c%s _loop1_96[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026162 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
26163 }
26164 if (_n == 0 || p->error_indicator) {
26165 PyMem_Free(_children);
26166 D(p->level--);
26167 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026168 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026169 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026170 if (!_seq) {
26171 PyMem_Free(_children);
26172 p->error_indicator = 1;
26173 PyErr_NoMemory();
26174 D(p->level--);
26175 return NULL;
26176 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026177 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026178 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026179 _PyPegen_insert_memo(p, _start_mark, _loop1_96_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026180 D(p->level--);
26181 return _seq;
26182}
26183
Brandt Bucher145bf262021-02-26 14:51:55 -080026184// _loop1_97: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026185static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026186_loop1_97_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026187{
26188 D(p->level++);
26189 if (p->error_indicator) {
26190 D(p->level--);
26191 return NULL;
26192 }
26193 void *_res = NULL;
26194 int _mark = p->mark;
26195 int _start_mark = p->mark;
26196 void **_children = PyMem_Malloc(sizeof(void *));
26197 if (!_children) {
26198 p->error_indicator = 1;
26199 PyErr_NoMemory();
26200 D(p->level--);
26201 return NULL;
26202 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026203 Py_ssize_t _children_capacity = 1;
26204 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026205 { // lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026206 if (p->error_indicator) {
26207 D(p->level--);
26208 return NULL;
26209 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026210 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 +000026211 arg_ty lambda_param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026212 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026213 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026214 )
26215 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026216 _res = lambda_param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026217 if (_n == _children_capacity) {
26218 _children_capacity *= 2;
26219 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26220 if (!_new_children) {
26221 p->error_indicator = 1;
26222 PyErr_NoMemory();
26223 D(p->level--);
26224 return NULL;
26225 }
26226 _children = _new_children;
26227 }
26228 _children[_n++] = _res;
26229 _mark = p->mark;
26230 }
26231 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026232 D(fprintf(stderr, "%*c%s _loop1_97[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026233 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026234 }
26235 if (_n == 0 || p->error_indicator) {
26236 PyMem_Free(_children);
26237 D(p->level--);
26238 return NULL;
26239 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026240 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026241 if (!_seq) {
26242 PyMem_Free(_children);
26243 p->error_indicator = 1;
26244 PyErr_NoMemory();
26245 D(p->level--);
26246 return NULL;
26247 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026248 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026249 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026250 _PyPegen_insert_memo(p, _start_mark, _loop1_97_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026251 D(p->level--);
26252 return _seq;
26253}
26254
Brandt Bucher145bf262021-02-26 14:51:55 -080026255// _loop0_98: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026256static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026257_loop0_98_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026258{
26259 D(p->level++);
26260 if (p->error_indicator) {
26261 D(p->level--);
26262 return NULL;
26263 }
26264 void *_res = NULL;
26265 int _mark = p->mark;
26266 int _start_mark = p->mark;
26267 void **_children = PyMem_Malloc(sizeof(void *));
26268 if (!_children) {
26269 p->error_indicator = 1;
26270 PyErr_NoMemory();
26271 D(p->level--);
26272 return NULL;
26273 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026274 Py_ssize_t _children_capacity = 1;
26275 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026276 { // lambda_param_no_default
26277 if (p->error_indicator) {
26278 D(p->level--);
26279 return NULL;
26280 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026281 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 +010026282 arg_ty lambda_param_no_default_var;
26283 while (
26284 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
26285 )
26286 {
26287 _res = lambda_param_no_default_var;
26288 if (_n == _children_capacity) {
26289 _children_capacity *= 2;
26290 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26291 if (!_new_children) {
26292 p->error_indicator = 1;
26293 PyErr_NoMemory();
26294 D(p->level--);
26295 return NULL;
26296 }
26297 _children = _new_children;
26298 }
26299 _children[_n++] = _res;
26300 _mark = p->mark;
26301 }
26302 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026303 D(fprintf(stderr, "%*c%s _loop0_98[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026304 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
26305 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026306 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026307 if (!_seq) {
26308 PyMem_Free(_children);
26309 p->error_indicator = 1;
26310 PyErr_NoMemory();
26311 D(p->level--);
26312 return NULL;
26313 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026314 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026315 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026316 _PyPegen_insert_memo(p, _start_mark, _loop0_98_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026317 D(p->level--);
26318 return _seq;
26319}
26320
Brandt Bucher145bf262021-02-26 14:51:55 -080026321// _loop1_99: lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026322static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026323_loop1_99_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026324{
26325 D(p->level++);
26326 if (p->error_indicator) {
26327 D(p->level--);
26328 return NULL;
26329 }
26330 void *_res = NULL;
26331 int _mark = p->mark;
26332 int _start_mark = p->mark;
26333 void **_children = PyMem_Malloc(sizeof(void *));
26334 if (!_children) {
26335 p->error_indicator = 1;
26336 PyErr_NoMemory();
26337 D(p->level--);
26338 return NULL;
26339 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026340 Py_ssize_t _children_capacity = 1;
26341 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026342 { // lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026343 if (p->error_indicator) {
26344 D(p->level--);
26345 return NULL;
26346 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026347 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 +000026348 NameDefaultPair* lambda_param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026349 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026350 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026351 )
26352 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026353 _res = lambda_param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026354 if (_n == _children_capacity) {
26355 _children_capacity *= 2;
26356 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26357 if (!_new_children) {
26358 p->error_indicator = 1;
26359 PyErr_NoMemory();
26360 D(p->level--);
26361 return NULL;
26362 }
26363 _children = _new_children;
26364 }
26365 _children[_n++] = _res;
26366 _mark = p->mark;
26367 }
26368 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026369 D(fprintf(stderr, "%*c%s _loop1_99[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026370 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026371 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026372 if (_n == 0 || p->error_indicator) {
26373 PyMem_Free(_children);
26374 D(p->level--);
26375 return NULL;
26376 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026377 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026378 if (!_seq) {
26379 PyMem_Free(_children);
26380 p->error_indicator = 1;
26381 PyErr_NoMemory();
26382 D(p->level--);
26383 return NULL;
26384 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026385 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026386 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026387 _PyPegen_insert_memo(p, _start_mark, _loop1_99_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026388 D(p->level--);
26389 return _seq;
26390}
26391
Brandt Bucher145bf262021-02-26 14:51:55 -080026392// _loop0_100: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026393static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026394_loop0_100_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026395{
26396 D(p->level++);
26397 if (p->error_indicator) {
26398 D(p->level--);
26399 return NULL;
26400 }
26401 void *_res = NULL;
26402 int _mark = p->mark;
26403 int _start_mark = p->mark;
26404 void **_children = PyMem_Malloc(sizeof(void *));
26405 if (!_children) {
26406 p->error_indicator = 1;
26407 PyErr_NoMemory();
26408 D(p->level--);
26409 return NULL;
26410 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026411 Py_ssize_t _children_capacity = 1;
26412 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026413 { // lambda_param_no_default
26414 if (p->error_indicator) {
26415 D(p->level--);
26416 return NULL;
26417 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026418 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 +010026419 arg_ty lambda_param_no_default_var;
26420 while (
26421 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
26422 )
26423 {
26424 _res = lambda_param_no_default_var;
26425 if (_n == _children_capacity) {
26426 _children_capacity *= 2;
26427 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26428 if (!_new_children) {
26429 p->error_indicator = 1;
26430 PyErr_NoMemory();
26431 D(p->level--);
26432 return NULL;
26433 }
26434 _children = _new_children;
26435 }
26436 _children[_n++] = _res;
26437 _mark = p->mark;
26438 }
26439 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026440 D(fprintf(stderr, "%*c%s _loop0_100[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026441 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
26442 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026443 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026444 if (!_seq) {
26445 PyMem_Free(_children);
26446 p->error_indicator = 1;
26447 PyErr_NoMemory();
26448 D(p->level--);
26449 return NULL;
26450 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026451 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026452 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026453 _PyPegen_insert_memo(p, _start_mark, _loop0_100_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026454 D(p->level--);
26455 return _seq;
26456}
26457
Brandt Bucher145bf262021-02-26 14:51:55 -080026458// _loop1_101: lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026459static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026460_loop1_101_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026461{
26462 D(p->level++);
26463 if (p->error_indicator) {
26464 D(p->level--);
26465 return NULL;
26466 }
26467 void *_res = NULL;
26468 int _mark = p->mark;
26469 int _start_mark = p->mark;
26470 void **_children = PyMem_Malloc(sizeof(void *));
26471 if (!_children) {
26472 p->error_indicator = 1;
26473 PyErr_NoMemory();
26474 D(p->level--);
26475 return NULL;
26476 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026477 Py_ssize_t _children_capacity = 1;
26478 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026479 { // lambda_param_with_default
26480 if (p->error_indicator) {
26481 D(p->level--);
26482 return NULL;
26483 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026484 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 +010026485 NameDefaultPair* lambda_param_with_default_var;
26486 while (
26487 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
26488 )
26489 {
26490 _res = lambda_param_with_default_var;
26491 if (_n == _children_capacity) {
26492 _children_capacity *= 2;
26493 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26494 if (!_new_children) {
26495 p->error_indicator = 1;
26496 PyErr_NoMemory();
26497 D(p->level--);
26498 return NULL;
26499 }
26500 _children = _new_children;
26501 }
26502 _children[_n++] = _res;
26503 _mark = p->mark;
26504 }
26505 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026506 D(fprintf(stderr, "%*c%s _loop1_101[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026507 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
26508 }
26509 if (_n == 0 || p->error_indicator) {
26510 PyMem_Free(_children);
26511 D(p->level--);
26512 return NULL;
26513 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026514 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026515 if (!_seq) {
26516 PyMem_Free(_children);
26517 p->error_indicator = 1;
26518 PyErr_NoMemory();
26519 D(p->level--);
26520 return NULL;
26521 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026522 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026523 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026524 _PyPegen_insert_memo(p, _start_mark, _loop1_101_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026525 D(p->level--);
26526 return _seq;
26527}
26528
Brandt Bucher145bf262021-02-26 14:51:55 -080026529// _loop0_102: lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026530static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026531_loop0_102_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026532{
26533 D(p->level++);
26534 if (p->error_indicator) {
26535 D(p->level--);
26536 return NULL;
26537 }
26538 void *_res = NULL;
26539 int _mark = p->mark;
26540 int _start_mark = p->mark;
26541 void **_children = PyMem_Malloc(sizeof(void *));
26542 if (!_children) {
26543 p->error_indicator = 1;
26544 PyErr_NoMemory();
26545 D(p->level--);
26546 return NULL;
26547 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026548 Py_ssize_t _children_capacity = 1;
26549 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026550 { // lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026551 if (p->error_indicator) {
26552 D(p->level--);
26553 return NULL;
26554 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026555 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 +000026556 NameDefaultPair* lambda_param_maybe_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026557 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026558 (lambda_param_maybe_default_var = lambda_param_maybe_default_rule(p)) // lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026559 )
26560 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026561 _res = lambda_param_maybe_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026562 if (_n == _children_capacity) {
26563 _children_capacity *= 2;
26564 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26565 if (!_new_children) {
26566 p->error_indicator = 1;
26567 PyErr_NoMemory();
26568 D(p->level--);
26569 return NULL;
26570 }
26571 _children = _new_children;
26572 }
26573 _children[_n++] = _res;
26574 _mark = p->mark;
26575 }
26576 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026577 D(fprintf(stderr, "%*c%s _loop0_102[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026578 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_maybe_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026579 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026580 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026581 if (!_seq) {
26582 PyMem_Free(_children);
26583 p->error_indicator = 1;
26584 PyErr_NoMemory();
26585 D(p->level--);
26586 return NULL;
26587 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026588 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026589 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026590 _PyPegen_insert_memo(p, _start_mark, _loop0_102_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026591 D(p->level--);
26592 return _seq;
26593}
26594
Brandt Bucher145bf262021-02-26 14:51:55 -080026595// _loop1_103: lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026596static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026597_loop1_103_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026598{
26599 D(p->level++);
26600 if (p->error_indicator) {
26601 D(p->level--);
26602 return NULL;
26603 }
26604 void *_res = NULL;
26605 int _mark = p->mark;
26606 int _start_mark = p->mark;
26607 void **_children = PyMem_Malloc(sizeof(void *));
26608 if (!_children) {
26609 p->error_indicator = 1;
26610 PyErr_NoMemory();
26611 D(p->level--);
26612 return NULL;
26613 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026614 Py_ssize_t _children_capacity = 1;
26615 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026616 { // lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026617 if (p->error_indicator) {
26618 D(p->level--);
26619 return NULL;
26620 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026621 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 +000026622 NameDefaultPair* lambda_param_maybe_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026623 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026624 (lambda_param_maybe_default_var = lambda_param_maybe_default_rule(p)) // lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026625 )
26626 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026627 _res = lambda_param_maybe_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026628 if (_n == _children_capacity) {
26629 _children_capacity *= 2;
26630 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26631 if (!_new_children) {
26632 p->error_indicator = 1;
26633 PyErr_NoMemory();
26634 D(p->level--);
26635 return NULL;
26636 }
26637 _children = _new_children;
26638 }
26639 _children[_n++] = _res;
26640 _mark = p->mark;
26641 }
26642 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026643 D(fprintf(stderr, "%*c%s _loop1_103[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026644 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_maybe_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026645 }
26646 if (_n == 0 || p->error_indicator) {
26647 PyMem_Free(_children);
26648 D(p->level--);
26649 return NULL;
26650 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026651 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026652 if (!_seq) {
26653 PyMem_Free(_children);
26654 p->error_indicator = 1;
26655 PyErr_NoMemory();
26656 D(p->level--);
26657 return NULL;
26658 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026659 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026660 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026661 _PyPegen_insert_memo(p, _start_mark, _loop1_103_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026662 D(p->level--);
26663 return _seq;
26664}
26665
Brandt Bucher145bf262021-02-26 14:51:55 -080026666// _loop1_104: ('or' conjunction)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026667static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026668_loop1_104_rule(Parser *p)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026669{
26670 D(p->level++);
26671 if (p->error_indicator) {
26672 D(p->level--);
26673 return NULL;
26674 }
26675 void *_res = NULL;
26676 int _mark = p->mark;
26677 int _start_mark = p->mark;
26678 void **_children = PyMem_Malloc(sizeof(void *));
26679 if (!_children) {
26680 p->error_indicator = 1;
26681 PyErr_NoMemory();
26682 D(p->level--);
26683 return NULL;
26684 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026685 Py_ssize_t _children_capacity = 1;
26686 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026687 { // ('or' conjunction)
26688 if (p->error_indicator) {
26689 D(p->level--);
26690 return NULL;
26691 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026692 D(fprintf(stderr, "%*c> _loop1_104[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('or' conjunction)"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010026693 void *_tmp_183_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026694 while (
Pablo Galindoa77aac42021-04-23 14:27:05 +010026695 (_tmp_183_var = _tmp_183_rule(p)) // 'or' conjunction
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026696 )
26697 {
Pablo Galindoa77aac42021-04-23 14:27:05 +010026698 _res = _tmp_183_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026699 if (_n == _children_capacity) {
26700 _children_capacity *= 2;
26701 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26702 if (!_new_children) {
26703 p->error_indicator = 1;
26704 PyErr_NoMemory();
26705 D(p->level--);
26706 return NULL;
26707 }
26708 _children = _new_children;
26709 }
26710 _children[_n++] = _res;
26711 _mark = p->mark;
26712 }
26713 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026714 D(fprintf(stderr, "%*c%s _loop1_104[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026715 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('or' conjunction)"));
26716 }
26717 if (_n == 0 || p->error_indicator) {
26718 PyMem_Free(_children);
26719 D(p->level--);
26720 return NULL;
26721 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026722 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026723 if (!_seq) {
26724 PyMem_Free(_children);
26725 p->error_indicator = 1;
26726 PyErr_NoMemory();
26727 D(p->level--);
26728 return NULL;
26729 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026730 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026731 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026732 _PyPegen_insert_memo(p, _start_mark, _loop1_104_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026733 D(p->level--);
26734 return _seq;
26735}
26736
Brandt Bucher145bf262021-02-26 14:51:55 -080026737// _loop1_105: ('and' inversion)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026738static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026739_loop1_105_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026740{
26741 D(p->level++);
26742 if (p->error_indicator) {
26743 D(p->level--);
26744 return NULL;
26745 }
26746 void *_res = NULL;
26747 int _mark = p->mark;
26748 int _start_mark = p->mark;
26749 void **_children = PyMem_Malloc(sizeof(void *));
26750 if (!_children) {
26751 p->error_indicator = 1;
26752 PyErr_NoMemory();
26753 D(p->level--);
26754 return NULL;
26755 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026756 Py_ssize_t _children_capacity = 1;
26757 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026758 { // ('and' inversion)
26759 if (p->error_indicator) {
26760 D(p->level--);
26761 return NULL;
26762 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026763 D(fprintf(stderr, "%*c> _loop1_105[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('and' inversion)"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010026764 void *_tmp_184_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026765 while (
Pablo Galindoa77aac42021-04-23 14:27:05 +010026766 (_tmp_184_var = _tmp_184_rule(p)) // 'and' inversion
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026767 )
26768 {
Pablo Galindoa77aac42021-04-23 14:27:05 +010026769 _res = _tmp_184_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026770 if (_n == _children_capacity) {
26771 _children_capacity *= 2;
26772 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26773 if (!_new_children) {
26774 p->error_indicator = 1;
26775 PyErr_NoMemory();
26776 D(p->level--);
26777 return NULL;
26778 }
26779 _children = _new_children;
26780 }
26781 _children[_n++] = _res;
26782 _mark = p->mark;
26783 }
26784 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026785 D(fprintf(stderr, "%*c%s _loop1_105[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026786 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('and' inversion)"));
26787 }
26788 if (_n == 0 || p->error_indicator) {
26789 PyMem_Free(_children);
26790 D(p->level--);
26791 return NULL;
26792 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026793 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026794 if (!_seq) {
26795 PyMem_Free(_children);
26796 p->error_indicator = 1;
26797 PyErr_NoMemory();
26798 D(p->level--);
26799 return NULL;
26800 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026801 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026802 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026803 _PyPegen_insert_memo(p, _start_mark, _loop1_105_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026804 D(p->level--);
26805 return _seq;
26806}
26807
Brandt Bucher145bf262021-02-26 14:51:55 -080026808// _loop1_106: compare_op_bitwise_or_pair
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026809static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026810_loop1_106_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026811{
26812 D(p->level++);
26813 if (p->error_indicator) {
26814 D(p->level--);
26815 return NULL;
26816 }
26817 void *_res = NULL;
26818 int _mark = p->mark;
26819 int _start_mark = p->mark;
26820 void **_children = PyMem_Malloc(sizeof(void *));
26821 if (!_children) {
26822 p->error_indicator = 1;
26823 PyErr_NoMemory();
26824 D(p->level--);
26825 return NULL;
26826 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026827 Py_ssize_t _children_capacity = 1;
26828 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026829 { // compare_op_bitwise_or_pair
26830 if (p->error_indicator) {
26831 D(p->level--);
26832 return NULL;
26833 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026834 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 +010026835 CmpopExprPair* compare_op_bitwise_or_pair_var;
26836 while (
26837 (compare_op_bitwise_or_pair_var = compare_op_bitwise_or_pair_rule(p)) // compare_op_bitwise_or_pair
26838 )
26839 {
26840 _res = compare_op_bitwise_or_pair_var;
26841 if (_n == _children_capacity) {
26842 _children_capacity *= 2;
26843 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26844 if (!_new_children) {
26845 p->error_indicator = 1;
26846 PyErr_NoMemory();
26847 D(p->level--);
26848 return NULL;
26849 }
26850 _children = _new_children;
26851 }
26852 _children[_n++] = _res;
26853 _mark = p->mark;
26854 }
26855 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026856 D(fprintf(stderr, "%*c%s _loop1_106[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026857 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "compare_op_bitwise_or_pair"));
26858 }
26859 if (_n == 0 || p->error_indicator) {
26860 PyMem_Free(_children);
26861 D(p->level--);
26862 return NULL;
26863 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026864 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026865 if (!_seq) {
26866 PyMem_Free(_children);
26867 p->error_indicator = 1;
26868 PyErr_NoMemory();
26869 D(p->level--);
26870 return NULL;
26871 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026872 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026873 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026874 _PyPegen_insert_memo(p, _start_mark, _loop1_106_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026875 D(p->level--);
26876 return _seq;
26877}
26878
Brandt Bucher145bf262021-02-26 14:51:55 -080026879// _tmp_107: '!='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026880static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080026881_tmp_107_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026882{
26883 D(p->level++);
26884 if (p->error_indicator) {
26885 D(p->level--);
26886 return NULL;
26887 }
26888 void * _res = NULL;
26889 int _mark = p->mark;
26890 { // '!='
26891 if (p->error_indicator) {
26892 D(p->level--);
26893 return NULL;
26894 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026895 D(fprintf(stderr, "%*c> _tmp_107[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'!='"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026896 Token * tok;
26897 if (
26898 (tok = _PyPegen_expect_token(p, 28)) // token='!='
26899 )
26900 {
Brandt Bucher145bf262021-02-26 14:51:55 -080026901 D(fprintf(stderr, "%*c+ _tmp_107[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'!='"));
Pablo Galindo06f8c332020-10-30 23:48:42 +000026902 _res = _PyPegen_check_barry_as_flufl ( p , tok ) ? NULL : tok;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026903 if (_res == NULL && PyErr_Occurred()) {
26904 p->error_indicator = 1;
26905 D(p->level--);
26906 return NULL;
26907 }
26908 goto done;
26909 }
26910 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026911 D(fprintf(stderr, "%*c%s _tmp_107[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026912 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'!='"));
26913 }
26914 _res = NULL;
26915 done:
26916 D(p->level--);
26917 return _res;
26918}
26919
Brandt Bucher145bf262021-02-26 14:51:55 -080026920// _loop0_109: ',' slice
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026921static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026922_loop0_109_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026923{
26924 D(p->level++);
26925 if (p->error_indicator) {
26926 D(p->level--);
26927 return NULL;
26928 }
26929 void *_res = NULL;
26930 int _mark = p->mark;
26931 int _start_mark = p->mark;
26932 void **_children = PyMem_Malloc(sizeof(void *));
26933 if (!_children) {
26934 p->error_indicator = 1;
26935 PyErr_NoMemory();
26936 D(p->level--);
26937 return NULL;
26938 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026939 Py_ssize_t _children_capacity = 1;
26940 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026941 { // ',' slice
26942 if (p->error_indicator) {
26943 D(p->level--);
26944 return NULL;
26945 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026946 D(fprintf(stderr, "%*c> _loop0_109[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' slice"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026947 Token * _literal;
26948 expr_ty elem;
26949 while (
26950 (_literal = _PyPegen_expect_token(p, 12)) // token=','
26951 &&
26952 (elem = slice_rule(p)) // slice
26953 )
26954 {
26955 _res = elem;
26956 if (_res == NULL && PyErr_Occurred()) {
26957 p->error_indicator = 1;
26958 PyMem_Free(_children);
26959 D(p->level--);
26960 return NULL;
26961 }
26962 if (_n == _children_capacity) {
26963 _children_capacity *= 2;
26964 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26965 if (!_new_children) {
26966 p->error_indicator = 1;
26967 PyErr_NoMemory();
26968 D(p->level--);
26969 return NULL;
26970 }
26971 _children = _new_children;
26972 }
26973 _children[_n++] = _res;
26974 _mark = p->mark;
26975 }
26976 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026977 D(fprintf(stderr, "%*c%s _loop0_109[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026978 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' slice"));
26979 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026980 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026981 if (!_seq) {
26982 PyMem_Free(_children);
26983 p->error_indicator = 1;
26984 PyErr_NoMemory();
26985 D(p->level--);
26986 return NULL;
26987 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026988 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026989 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026990 _PyPegen_insert_memo(p, _start_mark, _loop0_109_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026991 D(p->level--);
26992 return _seq;
26993}
26994
Brandt Bucher145bf262021-02-26 14:51:55 -080026995// _gather_108: slice _loop0_109
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026996static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026997_gather_108_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026998{
26999 D(p->level++);
27000 if (p->error_indicator) {
27001 D(p->level--);
27002 return NULL;
27003 }
27004 asdl_seq * _res = NULL;
27005 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027006 { // slice _loop0_109
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027007 if (p->error_indicator) {
27008 D(p->level--);
27009 return NULL;
27010 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027011 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 +010027012 expr_ty elem;
27013 asdl_seq * seq;
27014 if (
27015 (elem = slice_rule(p)) // slice
27016 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080027017 (seq = _loop0_109_rule(p)) // _loop0_109
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027018 )
27019 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027020 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 +010027021 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
27022 goto done;
27023 }
27024 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027025 D(fprintf(stderr, "%*c%s _gather_108[%d-%d]: %s failed!\n", p->level, ' ',
27026 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slice _loop0_109"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027027 }
27028 _res = NULL;
27029 done:
27030 D(p->level--);
27031 return _res;
27032}
27033
Brandt Bucher145bf262021-02-26 14:51:55 -080027034// _tmp_110: ':' expression?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027035static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080027036_tmp_110_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027037{
27038 D(p->level++);
27039 if (p->error_indicator) {
27040 D(p->level--);
27041 return NULL;
27042 }
27043 void * _res = NULL;
27044 int _mark = p->mark;
27045 { // ':' expression?
27046 if (p->error_indicator) {
27047 D(p->level--);
27048 return NULL;
27049 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027050 D(fprintf(stderr, "%*c> _tmp_110[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':' expression?"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027051 Token * _literal;
27052 void *d;
27053 if (
27054 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
27055 &&
27056 (d = expression_rule(p), 1) // expression?
27057 )
27058 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027059 D(fprintf(stderr, "%*c+ _tmp_110[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':' expression?"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027060 _res = d;
27061 if (_res == NULL && PyErr_Occurred()) {
27062 p->error_indicator = 1;
27063 D(p->level--);
27064 return NULL;
27065 }
27066 goto done;
27067 }
27068 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027069 D(fprintf(stderr, "%*c%s _tmp_110[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027070 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':' expression?"));
27071 }
27072 _res = NULL;
27073 done:
27074 D(p->level--);
27075 return _res;
27076}
27077
Brandt Bucher145bf262021-02-26 14:51:55 -080027078// _tmp_111: tuple | group | genexp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027079static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080027080_tmp_111_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027081{
27082 D(p->level++);
27083 if (p->error_indicator) {
27084 D(p->level--);
27085 return NULL;
27086 }
27087 void * _res = NULL;
27088 int _mark = p->mark;
27089 { // tuple
27090 if (p->error_indicator) {
27091 D(p->level--);
27092 return NULL;
27093 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027094 D(fprintf(stderr, "%*c> _tmp_111[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "tuple"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027095 expr_ty tuple_var;
27096 if (
27097 (tuple_var = tuple_rule(p)) // tuple
27098 )
27099 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027100 D(fprintf(stderr, "%*c+ _tmp_111[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "tuple"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027101 _res = tuple_var;
27102 goto done;
27103 }
27104 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027105 D(fprintf(stderr, "%*c%s _tmp_111[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027106 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "tuple"));
27107 }
27108 { // group
27109 if (p->error_indicator) {
27110 D(p->level--);
27111 return NULL;
27112 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027113 D(fprintf(stderr, "%*c> _tmp_111[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "group"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027114 expr_ty group_var;
27115 if (
27116 (group_var = group_rule(p)) // group
27117 )
27118 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027119 D(fprintf(stderr, "%*c+ _tmp_111[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "group"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027120 _res = group_var;
27121 goto done;
27122 }
27123 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027124 D(fprintf(stderr, "%*c%s _tmp_111[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027125 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "group"));
27126 }
27127 { // genexp
27128 if (p->error_indicator) {
27129 D(p->level--);
27130 return NULL;
27131 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027132 D(fprintf(stderr, "%*c> _tmp_111[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "genexp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027133 expr_ty genexp_var;
27134 if (
27135 (genexp_var = genexp_rule(p)) // genexp
27136 )
27137 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027138 D(fprintf(stderr, "%*c+ _tmp_111[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "genexp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027139 _res = genexp_var;
27140 goto done;
27141 }
27142 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027143 D(fprintf(stderr, "%*c%s _tmp_111[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027144 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "genexp"));
27145 }
27146 _res = NULL;
27147 done:
27148 D(p->level--);
27149 return _res;
27150}
27151
Brandt Bucher145bf262021-02-26 14:51:55 -080027152// _tmp_112: list | listcomp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027153static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080027154_tmp_112_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027155{
27156 D(p->level++);
27157 if (p->error_indicator) {
27158 D(p->level--);
27159 return NULL;
27160 }
27161 void * _res = NULL;
27162 int _mark = p->mark;
27163 { // list
27164 if (p->error_indicator) {
27165 D(p->level--);
27166 return NULL;
27167 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027168 D(fprintf(stderr, "%*c> _tmp_112[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "list"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027169 expr_ty list_var;
27170 if (
27171 (list_var = list_rule(p)) // list
27172 )
27173 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027174 D(fprintf(stderr, "%*c+ _tmp_112[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "list"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027175 _res = list_var;
27176 goto done;
27177 }
27178 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027179 D(fprintf(stderr, "%*c%s _tmp_112[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027180 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "list"));
27181 }
27182 { // listcomp
27183 if (p->error_indicator) {
27184 D(p->level--);
27185 return NULL;
27186 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027187 D(fprintf(stderr, "%*c> _tmp_112[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "listcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027188 expr_ty listcomp_var;
27189 if (
27190 (listcomp_var = listcomp_rule(p)) // listcomp
27191 )
27192 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027193 D(fprintf(stderr, "%*c+ _tmp_112[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "listcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027194 _res = listcomp_var;
27195 goto done;
27196 }
27197 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027198 D(fprintf(stderr, "%*c%s _tmp_112[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027199 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "listcomp"));
27200 }
27201 _res = NULL;
27202 done:
27203 D(p->level--);
27204 return _res;
27205}
27206
Brandt Bucher145bf262021-02-26 14:51:55 -080027207// _tmp_113: dict | set | dictcomp | setcomp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027208static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080027209_tmp_113_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027210{
27211 D(p->level++);
27212 if (p->error_indicator) {
27213 D(p->level--);
27214 return NULL;
27215 }
27216 void * _res = NULL;
27217 int _mark = p->mark;
27218 { // dict
27219 if (p->error_indicator) {
27220 D(p->level--);
27221 return NULL;
27222 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027223 D(fprintf(stderr, "%*c> _tmp_113[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dict"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027224 expr_ty dict_var;
27225 if (
27226 (dict_var = dict_rule(p)) // dict
27227 )
27228 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027229 D(fprintf(stderr, "%*c+ _tmp_113[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dict"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027230 _res = dict_var;
27231 goto done;
27232 }
27233 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027234 D(fprintf(stderr, "%*c%s _tmp_113[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027235 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dict"));
27236 }
27237 { // set
27238 if (p->error_indicator) {
27239 D(p->level--);
27240 return NULL;
27241 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027242 D(fprintf(stderr, "%*c> _tmp_113[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "set"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027243 expr_ty set_var;
27244 if (
27245 (set_var = set_rule(p)) // set
27246 )
27247 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027248 D(fprintf(stderr, "%*c+ _tmp_113[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "set"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027249 _res = set_var;
27250 goto done;
27251 }
27252 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027253 D(fprintf(stderr, "%*c%s _tmp_113[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027254 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "set"));
27255 }
27256 { // dictcomp
27257 if (p->error_indicator) {
27258 D(p->level--);
27259 return NULL;
27260 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027261 D(fprintf(stderr, "%*c> _tmp_113[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dictcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027262 expr_ty dictcomp_var;
27263 if (
27264 (dictcomp_var = dictcomp_rule(p)) // dictcomp
27265 )
27266 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027267 D(fprintf(stderr, "%*c+ _tmp_113[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dictcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027268 _res = dictcomp_var;
27269 goto done;
27270 }
27271 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027272 D(fprintf(stderr, "%*c%s _tmp_113[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027273 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dictcomp"));
27274 }
27275 { // setcomp
27276 if (p->error_indicator) {
27277 D(p->level--);
27278 return NULL;
27279 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027280 D(fprintf(stderr, "%*c> _tmp_113[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "setcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027281 expr_ty setcomp_var;
27282 if (
27283 (setcomp_var = setcomp_rule(p)) // setcomp
27284 )
27285 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027286 D(fprintf(stderr, "%*c+ _tmp_113[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "setcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027287 _res = setcomp_var;
27288 goto done;
27289 }
27290 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027291 D(fprintf(stderr, "%*c%s _tmp_113[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027292 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "setcomp"));
27293 }
27294 _res = NULL;
27295 done:
27296 D(p->level--);
27297 return _res;
27298}
27299
Brandt Bucher145bf262021-02-26 14:51:55 -080027300// _loop1_114: STRING
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027301static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027302_loop1_114_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027303{
27304 D(p->level++);
27305 if (p->error_indicator) {
27306 D(p->level--);
27307 return NULL;
27308 }
27309 void *_res = NULL;
27310 int _mark = p->mark;
27311 int _start_mark = p->mark;
27312 void **_children = PyMem_Malloc(sizeof(void *));
27313 if (!_children) {
27314 p->error_indicator = 1;
27315 PyErr_NoMemory();
27316 D(p->level--);
27317 return NULL;
27318 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027319 Py_ssize_t _children_capacity = 1;
27320 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027321 { // STRING
27322 if (p->error_indicator) {
27323 D(p->level--);
27324 return NULL;
27325 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027326 D(fprintf(stderr, "%*c> _loop1_114[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "STRING"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027327 expr_ty string_var;
27328 while (
27329 (string_var = _PyPegen_string_token(p)) // STRING
27330 )
27331 {
27332 _res = string_var;
27333 if (_n == _children_capacity) {
27334 _children_capacity *= 2;
27335 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27336 if (!_new_children) {
27337 p->error_indicator = 1;
27338 PyErr_NoMemory();
27339 D(p->level--);
27340 return NULL;
27341 }
27342 _children = _new_children;
27343 }
27344 _children[_n++] = _res;
27345 _mark = p->mark;
27346 }
27347 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027348 D(fprintf(stderr, "%*c%s _loop1_114[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027349 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "STRING"));
27350 }
27351 if (_n == 0 || p->error_indicator) {
27352 PyMem_Free(_children);
27353 D(p->level--);
27354 return NULL;
27355 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027356 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027357 if (!_seq) {
27358 PyMem_Free(_children);
27359 p->error_indicator = 1;
27360 PyErr_NoMemory();
27361 D(p->level--);
27362 return NULL;
27363 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027364 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027365 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027366 _PyPegen_insert_memo(p, _start_mark, _loop1_114_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027367 D(p->level--);
27368 return _seq;
27369}
27370
Brandt Bucher145bf262021-02-26 14:51:55 -080027371// _tmp_115: star_named_expression ',' star_named_expressions?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027372static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080027373_tmp_115_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027374{
27375 D(p->level++);
27376 if (p->error_indicator) {
27377 D(p->level--);
27378 return NULL;
27379 }
27380 void * _res = NULL;
27381 int _mark = p->mark;
27382 { // star_named_expression ',' star_named_expressions?
27383 if (p->error_indicator) {
27384 D(p->level--);
27385 return NULL;
27386 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027387 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 +010027388 Token * _literal;
27389 expr_ty y;
27390 void *z;
27391 if (
27392 (y = star_named_expression_rule(p)) // star_named_expression
27393 &&
27394 (_literal = _PyPegen_expect_token(p, 12)) // token=','
27395 &&
27396 (z = star_named_expressions_rule(p), 1) // star_named_expressions?
27397 )
27398 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027399 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 +010027400 _res = _PyPegen_seq_insert_in_front ( p , y , z );
27401 if (_res == NULL && PyErr_Occurred()) {
27402 p->error_indicator = 1;
27403 D(p->level--);
27404 return NULL;
27405 }
27406 goto done;
27407 }
27408 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027409 D(fprintf(stderr, "%*c%s _tmp_115[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027410 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression ',' star_named_expressions?"));
27411 }
27412 _res = NULL;
27413 done:
27414 D(p->level--);
27415 return _res;
27416}
27417
Brandt Bucher145bf262021-02-26 14:51:55 -080027418// _tmp_116: yield_expr | named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027419static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080027420_tmp_116_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027421{
27422 D(p->level++);
27423 if (p->error_indicator) {
27424 D(p->level--);
27425 return NULL;
27426 }
27427 void * _res = NULL;
27428 int _mark = p->mark;
27429 { // yield_expr
27430 if (p->error_indicator) {
27431 D(p->level--);
27432 return NULL;
27433 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027434 D(fprintf(stderr, "%*c> _tmp_116[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027435 expr_ty yield_expr_var;
27436 if (
27437 (yield_expr_var = yield_expr_rule(p)) // yield_expr
27438 )
27439 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027440 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 +010027441 _res = yield_expr_var;
27442 goto done;
27443 }
27444 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027445 D(fprintf(stderr, "%*c%s _tmp_116[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027446 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
27447 }
27448 { // named_expression
27449 if (p->error_indicator) {
27450 D(p->level--);
27451 return NULL;
27452 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027453 D(fprintf(stderr, "%*c> _tmp_116[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027454 expr_ty named_expression_var;
27455 if (
27456 (named_expression_var = named_expression_rule(p)) // named_expression
27457 )
27458 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027459 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 +010027460 _res = named_expression_var;
27461 goto done;
27462 }
27463 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027464 D(fprintf(stderr, "%*c%s _tmp_116[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027465 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression"));
27466 }
27467 _res = NULL;
27468 done:
27469 D(p->level--);
27470 return _res;
27471}
27472
Brandt Bucher145bf262021-02-26 14:51:55 -080027473// _loop0_118: ',' double_starred_kvpair
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027474static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027475_loop0_118_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027476{
27477 D(p->level++);
27478 if (p->error_indicator) {
27479 D(p->level--);
27480 return NULL;
27481 }
27482 void *_res = NULL;
27483 int _mark = p->mark;
27484 int _start_mark = p->mark;
27485 void **_children = PyMem_Malloc(sizeof(void *));
27486 if (!_children) {
27487 p->error_indicator = 1;
27488 PyErr_NoMemory();
27489 D(p->level--);
27490 return NULL;
27491 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027492 Py_ssize_t _children_capacity = 1;
27493 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027494 { // ',' double_starred_kvpair
27495 if (p->error_indicator) {
27496 D(p->level--);
27497 return NULL;
27498 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027499 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 +010027500 Token * _literal;
27501 KeyValuePair* elem;
27502 while (
27503 (_literal = _PyPegen_expect_token(p, 12)) // token=','
27504 &&
27505 (elem = double_starred_kvpair_rule(p)) // double_starred_kvpair
27506 )
27507 {
27508 _res = elem;
27509 if (_res == NULL && PyErr_Occurred()) {
27510 p->error_indicator = 1;
27511 PyMem_Free(_children);
27512 D(p->level--);
27513 return NULL;
27514 }
27515 if (_n == _children_capacity) {
27516 _children_capacity *= 2;
27517 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27518 if (!_new_children) {
27519 p->error_indicator = 1;
27520 PyErr_NoMemory();
27521 D(p->level--);
27522 return NULL;
27523 }
27524 _children = _new_children;
27525 }
27526 _children[_n++] = _res;
27527 _mark = p->mark;
27528 }
27529 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027530 D(fprintf(stderr, "%*c%s _loop0_118[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027531 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' double_starred_kvpair"));
27532 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027533 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027534 if (!_seq) {
27535 PyMem_Free(_children);
27536 p->error_indicator = 1;
27537 PyErr_NoMemory();
27538 D(p->level--);
27539 return NULL;
27540 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027541 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027542 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027543 _PyPegen_insert_memo(p, _start_mark, _loop0_118_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027544 D(p->level--);
27545 return _seq;
27546}
27547
Brandt Bucher145bf262021-02-26 14:51:55 -080027548// _gather_117: double_starred_kvpair _loop0_118
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027549static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027550_gather_117_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027551{
27552 D(p->level++);
27553 if (p->error_indicator) {
27554 D(p->level--);
27555 return NULL;
27556 }
27557 asdl_seq * _res = NULL;
27558 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027559 { // double_starred_kvpair _loop0_118
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027560 if (p->error_indicator) {
27561 D(p->level--);
27562 return NULL;
27563 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027564 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 +010027565 KeyValuePair* elem;
27566 asdl_seq * seq;
27567 if (
27568 (elem = double_starred_kvpair_rule(p)) // double_starred_kvpair
27569 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080027570 (seq = _loop0_118_rule(p)) // _loop0_118
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027571 )
27572 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027573 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 +010027574 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
27575 goto done;
27576 }
27577 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027578 D(fprintf(stderr, "%*c%s _gather_117[%d-%d]: %s failed!\n", p->level, ' ',
27579 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "double_starred_kvpair _loop0_118"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027580 }
27581 _res = NULL;
27582 done:
27583 D(p->level--);
27584 return _res;
27585}
27586
Brandt Bucher145bf262021-02-26 14:51:55 -080027587// _loop1_119: for_if_clause
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027588static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027589_loop1_119_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027590{
27591 D(p->level++);
27592 if (p->error_indicator) {
27593 D(p->level--);
27594 return NULL;
27595 }
27596 void *_res = NULL;
27597 int _mark = p->mark;
27598 int _start_mark = p->mark;
27599 void **_children = PyMem_Malloc(sizeof(void *));
27600 if (!_children) {
27601 p->error_indicator = 1;
27602 PyErr_NoMemory();
27603 D(p->level--);
27604 return NULL;
27605 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027606 Py_ssize_t _children_capacity = 1;
27607 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027608 { // for_if_clause
27609 if (p->error_indicator) {
27610 D(p->level--);
27611 return NULL;
27612 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027613 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 +010027614 comprehension_ty for_if_clause_var;
27615 while (
27616 (for_if_clause_var = for_if_clause_rule(p)) // for_if_clause
27617 )
27618 {
27619 _res = for_if_clause_var;
27620 if (_n == _children_capacity) {
27621 _children_capacity *= 2;
27622 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27623 if (!_new_children) {
27624 p->error_indicator = 1;
27625 PyErr_NoMemory();
27626 D(p->level--);
27627 return NULL;
27628 }
27629 _children = _new_children;
27630 }
27631 _children[_n++] = _res;
27632 _mark = p->mark;
27633 }
27634 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027635 D(fprintf(stderr, "%*c%s _loop1_119[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027636 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "for_if_clause"));
27637 }
27638 if (_n == 0 || p->error_indicator) {
27639 PyMem_Free(_children);
27640 D(p->level--);
27641 return NULL;
27642 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027643 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027644 if (!_seq) {
27645 PyMem_Free(_children);
27646 p->error_indicator = 1;
27647 PyErr_NoMemory();
27648 D(p->level--);
27649 return NULL;
27650 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027651 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027652 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027653 _PyPegen_insert_memo(p, _start_mark, _loop1_119_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027654 D(p->level--);
27655 return _seq;
27656}
27657
Brandt Bucher145bf262021-02-26 14:51:55 -080027658// _loop0_120: ('if' disjunction)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027659static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027660_loop0_120_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027661{
27662 D(p->level++);
27663 if (p->error_indicator) {
27664 D(p->level--);
27665 return NULL;
27666 }
27667 void *_res = NULL;
27668 int _mark = p->mark;
27669 int _start_mark = p->mark;
27670 void **_children = PyMem_Malloc(sizeof(void *));
27671 if (!_children) {
27672 p->error_indicator = 1;
27673 PyErr_NoMemory();
27674 D(p->level--);
27675 return NULL;
27676 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027677 Py_ssize_t _children_capacity = 1;
27678 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027679 { // ('if' disjunction)
27680 if (p->error_indicator) {
27681 D(p->level--);
27682 return NULL;
27683 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027684 D(fprintf(stderr, "%*c> _loop0_120[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('if' disjunction)"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010027685 void *_tmp_185_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027686 while (
Pablo Galindoa77aac42021-04-23 14:27:05 +010027687 (_tmp_185_var = _tmp_185_rule(p)) // 'if' disjunction
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027688 )
27689 {
Pablo Galindoa77aac42021-04-23 14:27:05 +010027690 _res = _tmp_185_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027691 if (_n == _children_capacity) {
27692 _children_capacity *= 2;
27693 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27694 if (!_new_children) {
27695 p->error_indicator = 1;
27696 PyErr_NoMemory();
27697 D(p->level--);
27698 return NULL;
27699 }
27700 _children = _new_children;
27701 }
27702 _children[_n++] = _res;
27703 _mark = p->mark;
27704 }
27705 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027706 D(fprintf(stderr, "%*c%s _loop0_120[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027707 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('if' disjunction)"));
27708 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027709 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027710 if (!_seq) {
27711 PyMem_Free(_children);
27712 p->error_indicator = 1;
27713 PyErr_NoMemory();
27714 D(p->level--);
27715 return NULL;
27716 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027717 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027718 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027719 _PyPegen_insert_memo(p, _start_mark, _loop0_120_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027720 D(p->level--);
27721 return _seq;
27722}
27723
Brandt Bucher145bf262021-02-26 14:51:55 -080027724// _loop0_121: ('if' disjunction)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027725static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027726_loop0_121_rule(Parser *p)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027727{
27728 D(p->level++);
27729 if (p->error_indicator) {
27730 D(p->level--);
27731 return NULL;
27732 }
27733 void *_res = NULL;
27734 int _mark = p->mark;
27735 int _start_mark = p->mark;
27736 void **_children = PyMem_Malloc(sizeof(void *));
27737 if (!_children) {
27738 p->error_indicator = 1;
27739 PyErr_NoMemory();
27740 D(p->level--);
27741 return NULL;
27742 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027743 Py_ssize_t _children_capacity = 1;
27744 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027745 { // ('if' disjunction)
27746 if (p->error_indicator) {
27747 D(p->level--);
27748 return NULL;
27749 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027750 D(fprintf(stderr, "%*c> _loop0_121[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('if' disjunction)"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010027751 void *_tmp_186_var;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027752 while (
Pablo Galindoa77aac42021-04-23 14:27:05 +010027753 (_tmp_186_var = _tmp_186_rule(p)) // 'if' disjunction
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027754 )
27755 {
Pablo Galindoa77aac42021-04-23 14:27:05 +010027756 _res = _tmp_186_var;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027757 if (_n == _children_capacity) {
27758 _children_capacity *= 2;
27759 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27760 if (!_new_children) {
27761 p->error_indicator = 1;
27762 PyErr_NoMemory();
27763 D(p->level--);
27764 return NULL;
27765 }
27766 _children = _new_children;
27767 }
27768 _children[_n++] = _res;
27769 _mark = p->mark;
27770 }
27771 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027772 D(fprintf(stderr, "%*c%s _loop0_121[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027773 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('if' disjunction)"));
27774 }
27775 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
27776 if (!_seq) {
27777 PyMem_Free(_children);
27778 p->error_indicator = 1;
27779 PyErr_NoMemory();
27780 D(p->level--);
27781 return NULL;
27782 }
27783 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
27784 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027785 _PyPegen_insert_memo(p, _start_mark, _loop0_121_type, _seq);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027786 D(p->level--);
27787 return _seq;
27788}
27789
Pablo Galindod9151cb2021-04-13 02:32:33 +010027790// _loop0_123: ',' (starred_expression | direct_named_expression !'=')
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030027791static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027792_loop0_123_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027793{
27794 D(p->level++);
27795 if (p->error_indicator) {
27796 D(p->level--);
27797 return NULL;
27798 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030027799 void *_res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027800 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030027801 int _start_mark = p->mark;
27802 void **_children = PyMem_Malloc(sizeof(void *));
27803 if (!_children) {
27804 p->error_indicator = 1;
27805 PyErr_NoMemory();
27806 D(p->level--);
27807 return NULL;
27808 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027809 Py_ssize_t _children_capacity = 1;
27810 Py_ssize_t _n = 0;
Pablo Galindod9151cb2021-04-13 02:32:33 +010027811 { // ',' (starred_expression | direct_named_expression !'=')
Pablo Galindo4a97b152020-09-02 17:44:19 +010027812 if (p->error_indicator) {
27813 D(p->level--);
27814 return NULL;
27815 }
Pablo Galindod9151cb2021-04-13 02:32:33 +010027816 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 +010027817 Token * _literal;
27818 void *elem;
27819 while (
27820 (_literal = _PyPegen_expect_token(p, 12)) // token=','
27821 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010027822 (elem = _tmp_187_rule(p)) // starred_expression | direct_named_expression !'='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027823 )
27824 {
27825 _res = elem;
27826 if (_res == NULL && PyErr_Occurred()) {
27827 p->error_indicator = 1;
27828 PyMem_Free(_children);
27829 D(p->level--);
27830 return NULL;
27831 }
27832 if (_n == _children_capacity) {
27833 _children_capacity *= 2;
27834 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27835 if (!_new_children) {
27836 p->error_indicator = 1;
27837 PyErr_NoMemory();
27838 D(p->level--);
27839 return NULL;
27840 }
27841 _children = _new_children;
27842 }
27843 _children[_n++] = _res;
27844 _mark = p->mark;
27845 }
27846 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020027847 D(fprintf(stderr, "%*c%s _loop0_123[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindod9151cb2021-04-13 02:32:33 +010027848 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (starred_expression | direct_named_expression !'=')"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027849 }
27850 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
27851 if (!_seq) {
27852 PyMem_Free(_children);
27853 p->error_indicator = 1;
27854 PyErr_NoMemory();
27855 D(p->level--);
27856 return NULL;
27857 }
27858 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
27859 PyMem_Free(_children);
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020027860 _PyPegen_insert_memo(p, _start_mark, _loop0_123_type, _seq);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027861 D(p->level--);
27862 return _seq;
27863}
27864
Pablo Galindod9151cb2021-04-13 02:32:33 +010027865// _gather_122: (starred_expression | direct_named_expression !'=') _loop0_123
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027866static asdl_seq *
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020027867_gather_122_rule(Parser *p)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027868{
27869 D(p->level++);
27870 if (p->error_indicator) {
27871 D(p->level--);
27872 return NULL;
27873 }
27874 asdl_seq * _res = NULL;
27875 int _mark = p->mark;
Pablo Galindod9151cb2021-04-13 02:32:33 +010027876 { // (starred_expression | direct_named_expression !'=') _loop0_123
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027877 if (p->error_indicator) {
27878 D(p->level--);
27879 return NULL;
27880 }
Pablo Galindod9151cb2021-04-13 02:32:33 +010027881 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 -080027882 void *elem;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027883 asdl_seq * seq;
27884 if (
Pablo Galindoa77aac42021-04-23 14:27:05 +010027885 (elem = _tmp_187_rule(p)) // starred_expression | direct_named_expression !'='
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027886 &&
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020027887 (seq = _loop0_123_rule(p)) // _loop0_123
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027888 )
27889 {
Pablo Galindod9151cb2021-04-13 02:32:33 +010027890 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 +000027891 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
27892 goto done;
27893 }
27894 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020027895 D(fprintf(stderr, "%*c%s _gather_122[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindod9151cb2021-04-13 02:32:33 +010027896 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(starred_expression | direct_named_expression !'=') _loop0_123"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027897 }
27898 _res = NULL;
27899 done:
27900 D(p->level--);
27901 return _res;
27902}
27903
Brandt Bucher145bf262021-02-26 14:51:55 -080027904// _tmp_124: ',' kwargs
27905static void *
27906_tmp_124_rule(Parser *p)
27907{
27908 D(p->level++);
27909 if (p->error_indicator) {
27910 D(p->level--);
27911 return NULL;
27912 }
27913 void * _res = NULL;
27914 int _mark = p->mark;
27915 { // ',' kwargs
27916 if (p->error_indicator) {
27917 D(p->level--);
27918 return NULL;
27919 }
27920 D(fprintf(stderr, "%*c> _tmp_124[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwargs"));
27921 Token * _literal;
27922 asdl_seq* k;
27923 if (
27924 (_literal = _PyPegen_expect_token(p, 12)) // token=','
27925 &&
27926 (k = kwargs_rule(p)) // kwargs
27927 )
27928 {
27929 D(fprintf(stderr, "%*c+ _tmp_124[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' kwargs"));
27930 _res = k;
27931 if (_res == NULL && PyErr_Occurred()) {
27932 p->error_indicator = 1;
27933 D(p->level--);
27934 return NULL;
27935 }
27936 goto done;
27937 }
27938 p->mark = _mark;
27939 D(fprintf(stderr, "%*c%s _tmp_124[%d-%d]: %s failed!\n", p->level, ' ',
27940 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwargs"));
27941 }
27942 _res = NULL;
27943 done:
27944 D(p->level--);
27945 return _res;
27946}
27947
27948// _loop0_126: ',' kwarg_or_starred
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027949static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027950_loop0_126_rule(Parser *p)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027951{
27952 D(p->level++);
27953 if (p->error_indicator) {
27954 D(p->level--);
27955 return NULL;
27956 }
27957 void *_res = NULL;
27958 int _mark = p->mark;
27959 int _start_mark = p->mark;
27960 void **_children = PyMem_Malloc(sizeof(void *));
27961 if (!_children) {
27962 p->error_indicator = 1;
27963 PyErr_NoMemory();
27964 D(p->level--);
27965 return NULL;
27966 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027967 Py_ssize_t _children_capacity = 1;
27968 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080027969 { // ',' kwarg_or_starred
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027970 if (p->error_indicator) {
27971 D(p->level--);
27972 return NULL;
27973 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027974 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 +000027975 Token * _literal;
Brandt Bucher145bf262021-02-26 14:51:55 -080027976 KeywordOrStarred* elem;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027977 while (
27978 (_literal = _PyPegen_expect_token(p, 12)) // token=','
27979 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080027980 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027981 )
27982 {
27983 _res = elem;
27984 if (_res == NULL && PyErr_Occurred()) {
27985 p->error_indicator = 1;
27986 PyMem_Free(_children);
27987 D(p->level--);
27988 return NULL;
27989 }
27990 if (_n == _children_capacity) {
27991 _children_capacity *= 2;
27992 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27993 if (!_new_children) {
27994 p->error_indicator = 1;
27995 PyErr_NoMemory();
27996 D(p->level--);
27997 return NULL;
27998 }
27999 _children = _new_children;
28000 }
28001 _children[_n++] = _res;
28002 _mark = p->mark;
28003 }
28004 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028005 D(fprintf(stderr, "%*c%s _loop0_126[%d-%d]: %s failed!\n", p->level, ' ',
28006 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_starred"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028007 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010028008 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028009 if (!_seq) {
28010 PyMem_Free(_children);
28011 p->error_indicator = 1;
28012 PyErr_NoMemory();
28013 D(p->level--);
28014 return NULL;
28015 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010028016 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028017 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080028018 _PyPegen_insert_memo(p, _start_mark, _loop0_126_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028019 D(p->level--);
28020 return _seq;
28021}
28022
Brandt Bucher145bf262021-02-26 14:51:55 -080028023// _gather_125: kwarg_or_starred _loop0_126
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028024static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080028025_gather_125_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028026{
28027 D(p->level++);
28028 if (p->error_indicator) {
28029 D(p->level--);
28030 return NULL;
28031 }
28032 asdl_seq * _res = NULL;
28033 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028034 { // kwarg_or_starred _loop0_126
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028035 if (p->error_indicator) {
28036 D(p->level--);
28037 return NULL;
28038 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028039 D(fprintf(stderr, "%*c> _gather_125[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwarg_or_starred _loop0_126"));
28040 KeywordOrStarred* elem;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028041 asdl_seq * seq;
28042 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080028043 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028044 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080028045 (seq = _loop0_126_rule(p)) // _loop0_126
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028046 )
28047 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028048 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 +010028049 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
28050 goto done;
28051 }
28052 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028053 D(fprintf(stderr, "%*c%s _gather_125[%d-%d]: %s failed!\n", p->level, ' ',
28054 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_starred _loop0_126"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028055 }
28056 _res = NULL;
28057 done:
28058 D(p->level--);
28059 return _res;
28060}
28061
Brandt Bucher145bf262021-02-26 14:51:55 -080028062// _loop0_128: ',' kwarg_or_double_starred
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028063static asdl_seq *
28064_loop0_128_rule(Parser *p)
28065{
28066 D(p->level++);
28067 if (p->error_indicator) {
28068 D(p->level--);
28069 return NULL;
28070 }
28071 void *_res = NULL;
28072 int _mark = p->mark;
28073 int _start_mark = p->mark;
28074 void **_children = PyMem_Malloc(sizeof(void *));
28075 if (!_children) {
28076 p->error_indicator = 1;
28077 PyErr_NoMemory();
28078 D(p->level--);
28079 return NULL;
28080 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028081 Py_ssize_t _children_capacity = 1;
28082 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080028083 { // ',' kwarg_or_double_starred
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028084 if (p->error_indicator) {
28085 D(p->level--);
28086 return NULL;
28087 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028088 D(fprintf(stderr, "%*c> _loop0_128[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwarg_or_double_starred"));
28089 Token * _literal;
28090 KeywordOrStarred* elem;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028091 while (
Brandt Bucher145bf262021-02-26 14:51:55 -080028092 (_literal = _PyPegen_expect_token(p, 12)) // token=','
28093 &&
28094 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028095 )
28096 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028097 _res = elem;
28098 if (_res == NULL && PyErr_Occurred()) {
28099 p->error_indicator = 1;
28100 PyMem_Free(_children);
28101 D(p->level--);
28102 return NULL;
28103 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028104 if (_n == _children_capacity) {
28105 _children_capacity *= 2;
28106 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28107 if (!_new_children) {
28108 p->error_indicator = 1;
28109 PyErr_NoMemory();
28110 D(p->level--);
28111 return NULL;
28112 }
28113 _children = _new_children;
28114 }
28115 _children[_n++] = _res;
28116 _mark = p->mark;
28117 }
28118 p->mark = _mark;
28119 D(fprintf(stderr, "%*c%s _loop0_128[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080028120 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_double_starred"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028121 }
28122 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
28123 if (!_seq) {
28124 PyMem_Free(_children);
28125 p->error_indicator = 1;
28126 PyErr_NoMemory();
28127 D(p->level--);
28128 return NULL;
28129 }
28130 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
28131 PyMem_Free(_children);
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030028132 _PyPegen_insert_memo(p, _start_mark, _loop0_128_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028133 D(p->level--);
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030028134 return _seq;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028135}
28136
Brandt Bucher145bf262021-02-26 14:51:55 -080028137// _gather_127: kwarg_or_double_starred _loop0_128
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020028138static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080028139_gather_127_rule(Parser *p)
28140{
28141 D(p->level++);
28142 if (p->error_indicator) {
28143 D(p->level--);
28144 return NULL;
28145 }
28146 asdl_seq * _res = NULL;
28147 int _mark = p->mark;
28148 { // kwarg_or_double_starred _loop0_128
28149 if (p->error_indicator) {
28150 D(p->level--);
28151 return NULL;
28152 }
28153 D(fprintf(stderr, "%*c> _gather_127[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwarg_or_double_starred _loop0_128"));
28154 KeywordOrStarred* elem;
28155 asdl_seq * seq;
28156 if (
28157 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
28158 &&
28159 (seq = _loop0_128_rule(p)) // _loop0_128
28160 )
28161 {
28162 D(fprintf(stderr, "%*c+ _gather_127[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwarg_or_double_starred _loop0_128"));
28163 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
28164 goto done;
28165 }
28166 p->mark = _mark;
28167 D(fprintf(stderr, "%*c%s _gather_127[%d-%d]: %s failed!\n", p->level, ' ',
28168 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_double_starred _loop0_128"));
28169 }
28170 _res = NULL;
28171 done:
28172 D(p->level--);
28173 return _res;
28174}
28175
28176// _loop0_130: ',' kwarg_or_starred
28177static asdl_seq *
28178_loop0_130_rule(Parser *p)
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020028179{
28180 D(p->level++);
28181 if (p->error_indicator) {
28182 D(p->level--);
28183 return NULL;
28184 }
28185 void *_res = NULL;
28186 int _mark = p->mark;
28187 int _start_mark = p->mark;
28188 void **_children = PyMem_Malloc(sizeof(void *));
28189 if (!_children) {
28190 p->error_indicator = 1;
28191 PyErr_NoMemory();
28192 D(p->level--);
28193 return NULL;
28194 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028195 Py_ssize_t _children_capacity = 1;
28196 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080028197 { // ',' kwarg_or_starred
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020028198 if (p->error_indicator) {
28199 D(p->level--);
28200 return NULL;
28201 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028202 D(fprintf(stderr, "%*c> _loop0_130[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwarg_or_starred"));
28203 Token * _literal;
28204 KeywordOrStarred* elem;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020028205 while (
Brandt Bucher145bf262021-02-26 14:51:55 -080028206 (_literal = _PyPegen_expect_token(p, 12)) // token=','
28207 &&
28208 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020028209 )
28210 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028211 _res = elem;
28212 if (_res == NULL && PyErr_Occurred()) {
28213 p->error_indicator = 1;
28214 PyMem_Free(_children);
28215 D(p->level--);
28216 return NULL;
28217 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020028218 if (_n == _children_capacity) {
28219 _children_capacity *= 2;
28220 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28221 if (!_new_children) {
28222 p->error_indicator = 1;
28223 PyErr_NoMemory();
28224 D(p->level--);
28225 return NULL;
28226 }
28227 _children = _new_children;
28228 }
28229 _children[_n++] = _res;
28230 _mark = p->mark;
28231 }
28232 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028233 D(fprintf(stderr, "%*c%s _loop0_130[%d-%d]: %s failed!\n", p->level, ' ',
28234 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_starred"));
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020028235 }
28236 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
28237 if (!_seq) {
28238 PyMem_Free(_children);
28239 p->error_indicator = 1;
28240 PyErr_NoMemory();
28241 D(p->level--);
28242 return NULL;
28243 }
28244 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
28245 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080028246 _PyPegen_insert_memo(p, _start_mark, _loop0_130_type, _seq);
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020028247 D(p->level--);
28248 return _seq;
28249}
28250
Brandt Bucher145bf262021-02-26 14:51:55 -080028251// _gather_129: kwarg_or_starred _loop0_130
28252static asdl_seq *
28253_gather_129_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028254{
28255 D(p->level++);
28256 if (p->error_indicator) {
28257 D(p->level--);
28258 return NULL;
28259 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028260 asdl_seq * _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028261 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028262 { // kwarg_or_starred _loop0_130
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028263 if (p->error_indicator) {
28264 D(p->level--);
28265 return NULL;
28266 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028267 D(fprintf(stderr, "%*c> _gather_129[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwarg_or_starred _loop0_130"));
28268 KeywordOrStarred* elem;
28269 asdl_seq * seq;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028270 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080028271 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
28272 &&
28273 (seq = _loop0_130_rule(p)) // _loop0_130
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028274 )
28275 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028276 D(fprintf(stderr, "%*c+ _gather_129[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwarg_or_starred _loop0_130"));
28277 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028278 goto done;
28279 }
28280 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028281 D(fprintf(stderr, "%*c%s _gather_129[%d-%d]: %s failed!\n", p->level, ' ',
28282 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_starred _loop0_130"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028283 }
28284 _res = NULL;
28285 done:
28286 D(p->level--);
28287 return _res;
28288}
28289
Brandt Bucher145bf262021-02-26 14:51:55 -080028290// _loop0_132: ',' kwarg_or_double_starred
28291static asdl_seq *
28292_loop0_132_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028293{
28294 D(p->level++);
28295 if (p->error_indicator) {
28296 D(p->level--);
28297 return NULL;
28298 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028299 void *_res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028300 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028301 int _start_mark = p->mark;
28302 void **_children = PyMem_Malloc(sizeof(void *));
28303 if (!_children) {
28304 p->error_indicator = 1;
28305 PyErr_NoMemory();
28306 D(p->level--);
28307 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028308 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028309 Py_ssize_t _children_capacity = 1;
28310 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080028311 { // ',' kwarg_or_double_starred
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028312 if (p->error_indicator) {
28313 D(p->level--);
28314 return NULL;
28315 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028316 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 +010028317 Token * _literal;
Brandt Bucher145bf262021-02-26 14:51:55 -080028318 KeywordOrStarred* elem;
28319 while (
28320 (_literal = _PyPegen_expect_token(p, 12)) // token=','
28321 &&
28322 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028323 )
28324 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028325 _res = elem;
28326 if (_res == NULL && PyErr_Occurred()) {
28327 p->error_indicator = 1;
28328 PyMem_Free(_children);
28329 D(p->level--);
28330 return NULL;
28331 }
28332 if (_n == _children_capacity) {
28333 _children_capacity *= 2;
28334 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28335 if (!_new_children) {
28336 p->error_indicator = 1;
28337 PyErr_NoMemory();
28338 D(p->level--);
28339 return NULL;
28340 }
28341 _children = _new_children;
28342 }
28343 _children[_n++] = _res;
28344 _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028345 }
28346 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028347 D(fprintf(stderr, "%*c%s _loop0_132[%d-%d]: %s failed!\n", p->level, ' ',
28348 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_double_starred"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028349 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028350 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
28351 if (!_seq) {
28352 PyMem_Free(_children);
28353 p->error_indicator = 1;
28354 PyErr_NoMemory();
28355 D(p->level--);
28356 return NULL;
28357 }
28358 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
28359 PyMem_Free(_children);
28360 _PyPegen_insert_memo(p, _start_mark, _loop0_132_type, _seq);
28361 D(p->level--);
28362 return _seq;
28363}
28364
28365// _gather_131: kwarg_or_double_starred _loop0_132
28366static asdl_seq *
28367_gather_131_rule(Parser *p)
28368{
28369 D(p->level++);
28370 if (p->error_indicator) {
28371 D(p->level--);
28372 return NULL;
28373 }
28374 asdl_seq * _res = NULL;
28375 int _mark = p->mark;
28376 { // kwarg_or_double_starred _loop0_132
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028377 if (p->error_indicator) {
28378 D(p->level--);
28379 return NULL;
28380 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028381 D(fprintf(stderr, "%*c> _gather_131[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwarg_or_double_starred _loop0_132"));
28382 KeywordOrStarred* elem;
28383 asdl_seq * seq;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028384 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080028385 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
28386 &&
28387 (seq = _loop0_132_rule(p)) // _loop0_132
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028388 )
28389 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028390 D(fprintf(stderr, "%*c+ _gather_131[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwarg_or_double_starred _loop0_132"));
28391 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028392 goto done;
28393 }
28394 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028395 D(fprintf(stderr, "%*c%s _gather_131[%d-%d]: %s failed!\n", p->level, ' ',
28396 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_double_starred _loop0_132"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028397 }
28398 _res = NULL;
28399 done:
28400 D(p->level--);
28401 return _res;
28402}
28403
Brandt Bucher145bf262021-02-26 14:51:55 -080028404// _loop0_133: (',' star_target)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028405static asdl_seq *
Pablo Galindo835f14f2021-01-31 22:52:56 +000028406_loop0_133_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028407{
28408 D(p->level++);
28409 if (p->error_indicator) {
28410 D(p->level--);
28411 return NULL;
28412 }
28413 void *_res = NULL;
28414 int _mark = p->mark;
28415 int _start_mark = p->mark;
28416 void **_children = PyMem_Malloc(sizeof(void *));
28417 if (!_children) {
28418 p->error_indicator = 1;
28419 PyErr_NoMemory();
28420 D(p->level--);
28421 return NULL;
28422 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028423 Py_ssize_t _children_capacity = 1;
28424 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080028425 { // (',' star_target)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028426 if (p->error_indicator) {
28427 D(p->level--);
28428 return NULL;
28429 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028430 D(fprintf(stderr, "%*c> _loop0_133[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_target)"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010028431 void *_tmp_188_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028432 while (
Pablo Galindoa77aac42021-04-23 14:27:05 +010028433 (_tmp_188_var = _tmp_188_rule(p)) // ',' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028434 )
28435 {
Pablo Galindoa77aac42021-04-23 14:27:05 +010028436 _res = _tmp_188_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028437 if (_n == _children_capacity) {
28438 _children_capacity *= 2;
28439 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28440 if (!_new_children) {
28441 p->error_indicator = 1;
28442 PyErr_NoMemory();
28443 D(p->level--);
28444 return NULL;
28445 }
28446 _children = _new_children;
28447 }
28448 _children[_n++] = _res;
28449 _mark = p->mark;
28450 }
28451 p->mark = _mark;
Pablo Galindo835f14f2021-01-31 22:52:56 +000028452 D(fprintf(stderr, "%*c%s _loop0_133[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080028453 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' star_target)"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028454 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010028455 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028456 if (!_seq) {
28457 PyMem_Free(_children);
28458 p->error_indicator = 1;
28459 PyErr_NoMemory();
28460 D(p->level--);
28461 return NULL;
28462 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010028463 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028464 PyMem_Free(_children);
Pablo Galindo835f14f2021-01-31 22:52:56 +000028465 _PyPegen_insert_memo(p, _start_mark, _loop0_133_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028466 D(p->level--);
28467 return _seq;
28468}
28469
Brandt Bucher145bf262021-02-26 14:51:55 -080028470// _loop0_135: ',' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028471static asdl_seq *
Pablo Galindo835f14f2021-01-31 22:52:56 +000028472_loop0_135_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028473{
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 int _start_mark = p->mark;
28482 void **_children = PyMem_Malloc(sizeof(void *));
28483 if (!_children) {
28484 p->error_indicator = 1;
28485 PyErr_NoMemory();
28486 D(p->level--);
28487 return NULL;
28488 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028489 Py_ssize_t _children_capacity = 1;
28490 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080028491 { // ',' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028492 if (p->error_indicator) {
28493 D(p->level--);
28494 return NULL;
28495 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028496 D(fprintf(stderr, "%*c> _loop0_135[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target"));
28497 Token * _literal;
28498 expr_ty elem;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028499 while (
Brandt Bucher145bf262021-02-26 14:51:55 -080028500 (_literal = _PyPegen_expect_token(p, 12)) // token=','
28501 &&
28502 (elem = star_target_rule(p)) // star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028503 )
28504 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028505 _res = elem;
28506 if (_res == NULL && PyErr_Occurred()) {
28507 p->error_indicator = 1;
28508 PyMem_Free(_children);
28509 D(p->level--);
28510 return NULL;
28511 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028512 if (_n == _children_capacity) {
28513 _children_capacity *= 2;
28514 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28515 if (!_new_children) {
28516 p->error_indicator = 1;
28517 PyErr_NoMemory();
28518 D(p->level--);
28519 return NULL;
28520 }
28521 _children = _new_children;
28522 }
28523 _children[_n++] = _res;
28524 _mark = p->mark;
28525 }
28526 p->mark = _mark;
Pablo Galindo835f14f2021-01-31 22:52:56 +000028527 D(fprintf(stderr, "%*c%s _loop0_135[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080028528 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028529 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010028530 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028531 if (!_seq) {
28532 PyMem_Free(_children);
28533 p->error_indicator = 1;
28534 PyErr_NoMemory();
28535 D(p->level--);
28536 return NULL;
28537 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010028538 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028539 PyMem_Free(_children);
Pablo Galindo835f14f2021-01-31 22:52:56 +000028540 _PyPegen_insert_memo(p, _start_mark, _loop0_135_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028541 D(p->level--);
28542 return _seq;
28543}
28544
Brandt Bucher145bf262021-02-26 14:51:55 -080028545// _gather_134: star_target _loop0_135
28546static asdl_seq *
28547_gather_134_rule(Parser *p)
28548{
28549 D(p->level++);
28550 if (p->error_indicator) {
28551 D(p->level--);
28552 return NULL;
28553 }
28554 asdl_seq * _res = NULL;
28555 int _mark = p->mark;
28556 { // star_target _loop0_135
28557 if (p->error_indicator) {
28558 D(p->level--);
28559 return NULL;
28560 }
28561 D(fprintf(stderr, "%*c> _gather_134[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target _loop0_135"));
28562 expr_ty elem;
28563 asdl_seq * seq;
28564 if (
28565 (elem = star_target_rule(p)) // star_target
28566 &&
28567 (seq = _loop0_135_rule(p)) // _loop0_135
28568 )
28569 {
28570 D(fprintf(stderr, "%*c+ _gather_134[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target _loop0_135"));
28571 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
28572 goto done;
28573 }
28574 p->mark = _mark;
28575 D(fprintf(stderr, "%*c%s _gather_134[%d-%d]: %s failed!\n", p->level, ' ',
28576 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target _loop0_135"));
28577 }
28578 _res = NULL;
28579 done:
28580 D(p->level--);
28581 return _res;
28582}
28583
28584// _loop1_136: (',' star_target)
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020028585static asdl_seq *
Pablo Galindo835f14f2021-01-31 22:52:56 +000028586_loop1_136_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028587{
28588 D(p->level++);
28589 if (p->error_indicator) {
28590 D(p->level--);
28591 return NULL;
28592 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020028593 void *_res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028594 int _mark = p->mark;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020028595 int _start_mark = p->mark;
28596 void **_children = PyMem_Malloc(sizeof(void *));
28597 if (!_children) {
28598 p->error_indicator = 1;
28599 PyErr_NoMemory();
28600 D(p->level--);
28601 return NULL;
28602 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028603 Py_ssize_t _children_capacity = 1;
28604 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080028605 { // (',' star_target)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028606 if (p->error_indicator) {
28607 D(p->level--);
28608 return NULL;
28609 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028610 D(fprintf(stderr, "%*c> _loop1_136[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_target)"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010028611 void *_tmp_189_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020028612 while (
Pablo Galindoa77aac42021-04-23 14:27:05 +010028613 (_tmp_189_var = _tmp_189_rule(p)) // ',' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028614 )
28615 {
Pablo Galindoa77aac42021-04-23 14:27:05 +010028616 _res = _tmp_189_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020028617 if (_n == _children_capacity) {
28618 _children_capacity *= 2;
28619 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28620 if (!_new_children) {
28621 p->error_indicator = 1;
28622 PyErr_NoMemory();
28623 D(p->level--);
28624 return NULL;
28625 }
28626 _children = _new_children;
28627 }
28628 _children[_n++] = _res;
28629 _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028630 }
28631 p->mark = _mark;
Pablo Galindo835f14f2021-01-31 22:52:56 +000028632 D(fprintf(stderr, "%*c%s _loop1_136[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080028633 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' star_target)"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028634 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020028635 if (_n == 0 || p->error_indicator) {
28636 PyMem_Free(_children);
28637 D(p->level--);
28638 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028639 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020028640 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
28641 if (!_seq) {
28642 PyMem_Free(_children);
28643 p->error_indicator = 1;
28644 PyErr_NoMemory();
28645 D(p->level--);
28646 return NULL;
28647 }
28648 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
28649 PyMem_Free(_children);
Pablo Galindo835f14f2021-01-31 22:52:56 +000028650 _PyPegen_insert_memo(p, _start_mark, _loop1_136_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028651 D(p->level--);
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020028652 return _seq;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028653}
28654
Brandt Bucher145bf262021-02-26 14:51:55 -080028655// _tmp_137: !'*' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028656static void *
Pablo Galindo835f14f2021-01-31 22:52:56 +000028657_tmp_137_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028658{
28659 D(p->level++);
28660 if (p->error_indicator) {
28661 D(p->level--);
28662 return NULL;
28663 }
28664 void * _res = NULL;
28665 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028666 { // !'*' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028667 if (p->error_indicator) {
28668 D(p->level--);
28669 return NULL;
28670 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028671 D(fprintf(stderr, "%*c> _tmp_137[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "!'*' star_target"));
28672 expr_ty star_target_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028673 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080028674 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 16) // token='*'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028675 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080028676 (star_target_var = star_target_rule(p)) // star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028677 )
28678 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028679 D(fprintf(stderr, "%*c+ _tmp_137[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "!'*' star_target"));
28680 _res = star_target_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028681 goto done;
28682 }
28683 p->mark = _mark;
Pablo Galindo835f14f2021-01-31 22:52:56 +000028684 D(fprintf(stderr, "%*c%s _tmp_137[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080028685 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "!'*' star_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028686 }
28687 _res = NULL;
28688 done:
28689 D(p->level--);
28690 return _res;
28691}
28692
Brandt Bucher145bf262021-02-26 14:51:55 -080028693// _loop0_139: ',' del_target
28694static asdl_seq *
28695_loop0_139_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028696{
28697 D(p->level++);
28698 if (p->error_indicator) {
28699 D(p->level--);
28700 return NULL;
28701 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028702 void *_res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028703 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028704 int _start_mark = p->mark;
28705 void **_children = PyMem_Malloc(sizeof(void *));
28706 if (!_children) {
28707 p->error_indicator = 1;
28708 PyErr_NoMemory();
28709 D(p->level--);
28710 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028711 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028712 Py_ssize_t _children_capacity = 1;
28713 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080028714 { // ',' del_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028715 if (p->error_indicator) {
28716 D(p->level--);
28717 return NULL;
28718 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028719 D(fprintf(stderr, "%*c> _loop0_139[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' del_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028720 Token * _literal;
Brandt Bucher145bf262021-02-26 14:51:55 -080028721 expr_ty elem;
28722 while (
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028723 (_literal = _PyPegen_expect_token(p, 12)) // token=','
28724 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080028725 (elem = del_target_rule(p)) // del_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028726 )
28727 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028728 _res = elem;
28729 if (_res == NULL && PyErr_Occurred()) {
28730 p->error_indicator = 1;
28731 PyMem_Free(_children);
28732 D(p->level--);
28733 return NULL;
28734 }
28735 if (_n == _children_capacity) {
28736 _children_capacity *= 2;
28737 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28738 if (!_new_children) {
28739 p->error_indicator = 1;
28740 PyErr_NoMemory();
28741 D(p->level--);
28742 return NULL;
28743 }
28744 _children = _new_children;
28745 }
28746 _children[_n++] = _res;
28747 _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028748 }
28749 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028750 D(fprintf(stderr, "%*c%s _loop0_139[%d-%d]: %s failed!\n", p->level, ' ',
28751 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' del_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028752 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028753 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
28754 if (!_seq) {
28755 PyMem_Free(_children);
28756 p->error_indicator = 1;
28757 PyErr_NoMemory();
28758 D(p->level--);
28759 return NULL;
28760 }
28761 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
28762 PyMem_Free(_children);
28763 _PyPegen_insert_memo(p, _start_mark, _loop0_139_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028764 D(p->level--);
Brandt Bucher145bf262021-02-26 14:51:55 -080028765 return _seq;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028766}
28767
Brandt Bucher145bf262021-02-26 14:51:55 -080028768// _gather_138: del_target _loop0_139
28769static asdl_seq *
28770_gather_138_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028771{
28772 D(p->level++);
28773 if (p->error_indicator) {
28774 D(p->level--);
28775 return NULL;
28776 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028777 asdl_seq * _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028778 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028779 { // del_target _loop0_139
Pablo Galindo58fb1562021-02-02 19:54:22 +000028780 if (p->error_indicator) {
28781 D(p->level--);
28782 return NULL;
28783 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028784 D(fprintf(stderr, "%*c> _gather_138[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "del_target _loop0_139"));
28785 expr_ty elem;
28786 asdl_seq * seq;
Pablo Galindo58fb1562021-02-02 19:54:22 +000028787 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080028788 (elem = del_target_rule(p)) // del_target
28789 &&
28790 (seq = _loop0_139_rule(p)) // _loop0_139
Pablo Galindo58fb1562021-02-02 19:54:22 +000028791 )
28792 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028793 D(fprintf(stderr, "%*c+ _gather_138[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "del_target _loop0_139"));
28794 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindo58fb1562021-02-02 19:54:22 +000028795 goto done;
28796 }
28797 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028798 D(fprintf(stderr, "%*c%s _gather_138[%d-%d]: %s failed!\n", p->level, ' ',
28799 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "del_target _loop0_139"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000028800 }
28801 _res = NULL;
28802 done:
28803 D(p->level--);
28804 return _res;
28805}
28806
Brandt Bucher145bf262021-02-26 14:51:55 -080028807// _loop0_141: ',' target
Pablo Galindo58fb1562021-02-02 19:54:22 +000028808static asdl_seq *
28809_loop0_141_rule(Parser *p)
28810{
28811 D(p->level++);
28812 if (p->error_indicator) {
28813 D(p->level--);
28814 return NULL;
28815 }
28816 void *_res = NULL;
28817 int _mark = p->mark;
28818 int _start_mark = p->mark;
28819 void **_children = PyMem_Malloc(sizeof(void *));
28820 if (!_children) {
28821 p->error_indicator = 1;
28822 PyErr_NoMemory();
28823 D(p->level--);
28824 return NULL;
28825 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028826 Py_ssize_t _children_capacity = 1;
28827 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080028828 { // ',' target
Pablo Galindo58fb1562021-02-02 19:54:22 +000028829 if (p->error_indicator) {
28830 D(p->level--);
28831 return NULL;
28832 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028833 D(fprintf(stderr, "%*c> _loop0_141[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' target"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000028834 Token * _literal;
Brandt Bucher145bf262021-02-26 14:51:55 -080028835 expr_ty elem;
Pablo Galindo58fb1562021-02-02 19:54:22 +000028836 while (
28837 (_literal = _PyPegen_expect_token(p, 12)) // token=','
28838 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080028839 (elem = target_rule(p)) // target
Pablo Galindo58fb1562021-02-02 19:54:22 +000028840 )
28841 {
28842 _res = elem;
28843 if (_res == NULL && PyErr_Occurred()) {
28844 p->error_indicator = 1;
28845 PyMem_Free(_children);
28846 D(p->level--);
28847 return NULL;
28848 }
28849 if (_n == _children_capacity) {
28850 _children_capacity *= 2;
28851 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28852 if (!_new_children) {
28853 p->error_indicator = 1;
28854 PyErr_NoMemory();
28855 D(p->level--);
28856 return NULL;
28857 }
28858 _children = _new_children;
28859 }
28860 _children[_n++] = _res;
28861 _mark = p->mark;
28862 }
28863 p->mark = _mark;
28864 D(fprintf(stderr, "%*c%s _loop0_141[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080028865 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' target"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000028866 }
28867 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
28868 if (!_seq) {
28869 PyMem_Free(_children);
28870 p->error_indicator = 1;
28871 PyErr_NoMemory();
28872 D(p->level--);
28873 return NULL;
28874 }
28875 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
28876 PyMem_Free(_children);
28877 _PyPegen_insert_memo(p, _start_mark, _loop0_141_type, _seq);
28878 D(p->level--);
28879 return _seq;
28880}
28881
Brandt Bucher145bf262021-02-26 14:51:55 -080028882// _gather_140: target _loop0_141
Pablo Galindo58fb1562021-02-02 19:54:22 +000028883static asdl_seq *
28884_gather_140_rule(Parser *p)
28885{
28886 D(p->level++);
28887 if (p->error_indicator) {
28888 D(p->level--);
28889 return NULL;
28890 }
28891 asdl_seq * _res = NULL;
28892 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028893 { // target _loop0_141
Pablo Galindo58fb1562021-02-02 19:54:22 +000028894 if (p->error_indicator) {
28895 D(p->level--);
28896 return NULL;
28897 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028898 D(fprintf(stderr, "%*c> _gather_140[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "target _loop0_141"));
28899 expr_ty elem;
Pablo Galindo58fb1562021-02-02 19:54:22 +000028900 asdl_seq * seq;
28901 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080028902 (elem = target_rule(p)) // target
Pablo Galindo58fb1562021-02-02 19:54:22 +000028903 &&
28904 (seq = _loop0_141_rule(p)) // _loop0_141
28905 )
28906 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028907 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 +000028908 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
28909 goto done;
28910 }
28911 p->mark = _mark;
28912 D(fprintf(stderr, "%*c%s _gather_140[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080028913 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "target _loop0_141"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000028914 }
28915 _res = NULL;
28916 done:
28917 D(p->level--);
28918 return _res;
28919}
28920
Brandt Bucher145bf262021-02-26 14:51:55 -080028921// _tmp_142: args | expression for_if_clauses
28922static void *
28923_tmp_142_rule(Parser *p)
28924{
28925 D(p->level++);
28926 if (p->error_indicator) {
28927 D(p->level--);
28928 return NULL;
28929 }
28930 void * _res = NULL;
28931 int _mark = p->mark;
28932 { // args
28933 if (p->error_indicator) {
28934 D(p->level--);
28935 return NULL;
28936 }
28937 D(fprintf(stderr, "%*c> _tmp_142[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args"));
28938 expr_ty args_var;
28939 if (
28940 (args_var = args_rule(p)) // args
28941 )
28942 {
28943 D(fprintf(stderr, "%*c+ _tmp_142[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args"));
28944 _res = args_var;
28945 goto done;
28946 }
28947 p->mark = _mark;
28948 D(fprintf(stderr, "%*c%s _tmp_142[%d-%d]: %s failed!\n", p->level, ' ',
28949 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args"));
28950 }
28951 { // expression for_if_clauses
28952 if (p->error_indicator) {
28953 D(p->level--);
28954 return NULL;
28955 }
28956 D(fprintf(stderr, "%*c> _tmp_142[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression for_if_clauses"));
28957 expr_ty expression_var;
28958 asdl_comprehension_seq* for_if_clauses_var;
28959 if (
28960 (expression_var = expression_rule(p)) // expression
28961 &&
28962 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
28963 )
28964 {
28965 D(fprintf(stderr, "%*c+ _tmp_142[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression for_if_clauses"));
28966 _res = _PyPegen_dummy_name(p, expression_var, for_if_clauses_var);
28967 goto done;
28968 }
28969 p->mark = _mark;
28970 D(fprintf(stderr, "%*c%s _tmp_142[%d-%d]: %s failed!\n", p->level, ' ',
28971 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression for_if_clauses"));
28972 }
28973 _res = NULL;
28974 done:
28975 D(p->level--);
28976 return _res;
28977}
28978
Pablo Galindob2802482021-04-15 21:38:45 +010028979// _tmp_143: NAME STRING | SOFT_KEYWORD
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028980static void *
28981_tmp_143_rule(Parser *p)
28982{
28983 D(p->level++);
28984 if (p->error_indicator) {
28985 D(p->level--);
28986 return NULL;
28987 }
28988 void * _res = NULL;
28989 int _mark = p->mark;
Pablo Galindob2802482021-04-15 21:38:45 +010028990 { // NAME STRING
28991 if (p->error_indicator) {
28992 D(p->level--);
28993 return NULL;
28994 }
28995 D(fprintf(stderr, "%*c> _tmp_143[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME STRING"));
28996 expr_ty name_var;
28997 expr_ty string_var;
28998 if (
28999 (name_var = _PyPegen_name_token(p)) // NAME
29000 &&
29001 (string_var = _PyPegen_string_token(p)) // STRING
29002 )
29003 {
29004 D(fprintf(stderr, "%*c+ _tmp_143[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME STRING"));
29005 _res = _PyPegen_dummy_name(p, name_var, string_var);
29006 goto done;
29007 }
29008 p->mark = _mark;
29009 D(fprintf(stderr, "%*c%s _tmp_143[%d-%d]: %s failed!\n", p->level, ' ',
29010 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME STRING"));
29011 }
29012 { // SOFT_KEYWORD
29013 if (p->error_indicator) {
29014 D(p->level--);
29015 return NULL;
29016 }
29017 D(fprintf(stderr, "%*c> _tmp_143[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "SOFT_KEYWORD"));
29018 expr_ty soft_keyword_var;
29019 if (
29020 (soft_keyword_var = _PyPegen_soft_keyword_token(p)) // SOFT_KEYWORD
29021 )
29022 {
29023 D(fprintf(stderr, "%*c+ _tmp_143[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "SOFT_KEYWORD"));
29024 _res = soft_keyword_var;
29025 goto done;
29026 }
29027 p->mark = _mark;
29028 D(fprintf(stderr, "%*c%s _tmp_143[%d-%d]: %s failed!\n", p->level, ' ',
29029 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "SOFT_KEYWORD"));
29030 }
29031 _res = NULL;
29032 done:
29033 D(p->level--);
29034 return _res;
29035}
29036
29037// _tmp_144: '=' | ':=' | ','
29038static void *
29039_tmp_144_rule(Parser *p)
29040{
29041 D(p->level++);
29042 if (p->error_indicator) {
29043 D(p->level--);
29044 return NULL;
29045 }
29046 void * _res = NULL;
29047 int _mark = p->mark;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029048 { // '='
29049 if (p->error_indicator) {
29050 D(p->level--);
29051 return NULL;
29052 }
Pablo Galindob2802482021-04-15 21:38:45 +010029053 D(fprintf(stderr, "%*c> _tmp_144[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'='"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029054 Token * _literal;
29055 if (
29056 (_literal = _PyPegen_expect_token(p, 22)) // token='='
29057 )
29058 {
Pablo Galindob2802482021-04-15 21:38:45 +010029059 D(fprintf(stderr, "%*c+ _tmp_144[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'='"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029060 _res = _literal;
29061 goto done;
29062 }
29063 p->mark = _mark;
Pablo Galindob2802482021-04-15 21:38:45 +010029064 D(fprintf(stderr, "%*c%s _tmp_144[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029065 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'='"));
29066 }
29067 { // ':='
29068 if (p->error_indicator) {
29069 D(p->level--);
29070 return NULL;
29071 }
Pablo Galindob2802482021-04-15 21:38:45 +010029072 D(fprintf(stderr, "%*c> _tmp_144[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':='"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029073 Token * _literal;
29074 if (
29075 (_literal = _PyPegen_expect_token(p, 53)) // token=':='
29076 )
29077 {
Pablo Galindob2802482021-04-15 21:38:45 +010029078 D(fprintf(stderr, "%*c+ _tmp_144[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':='"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029079 _res = _literal;
29080 goto done;
29081 }
29082 p->mark = _mark;
Pablo Galindob2802482021-04-15 21:38:45 +010029083 D(fprintf(stderr, "%*c%s _tmp_144[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029084 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':='"));
29085 }
29086 { // ','
29087 if (p->error_indicator) {
29088 D(p->level--);
29089 return NULL;
29090 }
Pablo Galindob2802482021-04-15 21:38:45 +010029091 D(fprintf(stderr, "%*c> _tmp_144[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029092 Token * _literal;
29093 if (
29094 (_literal = _PyPegen_expect_token(p, 12)) // token=','
29095 )
29096 {
Pablo Galindob2802482021-04-15 21:38:45 +010029097 D(fprintf(stderr, "%*c+ _tmp_144[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029098 _res = _literal;
29099 goto done;
29100 }
29101 p->mark = _mark;
Pablo Galindob2802482021-04-15 21:38:45 +010029102 D(fprintf(stderr, "%*c%s _tmp_144[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029103 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','"));
29104 }
29105 _res = NULL;
29106 done:
29107 D(p->level--);
29108 return _res;
29109}
29110
Pablo Galindob2802482021-04-15 21:38:45 +010029111// _tmp_145: list | tuple | genexp | 'True' | 'None' | 'False'
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029112static void *
Pablo Galindob2802482021-04-15 21:38:45 +010029113_tmp_145_rule(Parser *p)
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029114{
29115 D(p->level++);
29116 if (p->error_indicator) {
29117 D(p->level--);
29118 return NULL;
29119 }
29120 void * _res = NULL;
29121 int _mark = p->mark;
29122 { // list
29123 if (p->error_indicator) {
29124 D(p->level--);
29125 return NULL;
29126 }
Pablo Galindob2802482021-04-15 21:38:45 +010029127 D(fprintf(stderr, "%*c> _tmp_145[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "list"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029128 expr_ty list_var;
29129 if (
29130 (list_var = list_rule(p)) // list
29131 )
29132 {
Pablo Galindob2802482021-04-15 21:38:45 +010029133 D(fprintf(stderr, "%*c+ _tmp_145[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "list"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029134 _res = list_var;
29135 goto done;
29136 }
29137 p->mark = _mark;
Pablo Galindob2802482021-04-15 21:38:45 +010029138 D(fprintf(stderr, "%*c%s _tmp_145[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029139 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "list"));
29140 }
29141 { // tuple
29142 if (p->error_indicator) {
29143 D(p->level--);
29144 return NULL;
29145 }
Pablo Galindob2802482021-04-15 21:38:45 +010029146 D(fprintf(stderr, "%*c> _tmp_145[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "tuple"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029147 expr_ty tuple_var;
29148 if (
29149 (tuple_var = tuple_rule(p)) // tuple
29150 )
29151 {
Pablo Galindob2802482021-04-15 21:38:45 +010029152 D(fprintf(stderr, "%*c+ _tmp_145[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "tuple"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029153 _res = tuple_var;
29154 goto done;
29155 }
29156 p->mark = _mark;
Pablo Galindob2802482021-04-15 21:38:45 +010029157 D(fprintf(stderr, "%*c%s _tmp_145[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029158 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "tuple"));
29159 }
29160 { // genexp
29161 if (p->error_indicator) {
29162 D(p->level--);
29163 return NULL;
29164 }
Pablo Galindob2802482021-04-15 21:38:45 +010029165 D(fprintf(stderr, "%*c> _tmp_145[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "genexp"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029166 expr_ty genexp_var;
29167 if (
29168 (genexp_var = genexp_rule(p)) // genexp
29169 )
29170 {
Pablo Galindob2802482021-04-15 21:38:45 +010029171 D(fprintf(stderr, "%*c+ _tmp_145[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "genexp"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029172 _res = genexp_var;
29173 goto done;
29174 }
29175 p->mark = _mark;
Pablo Galindob2802482021-04-15 21:38:45 +010029176 D(fprintf(stderr, "%*c%s _tmp_145[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029177 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "genexp"));
29178 }
29179 { // 'True'
29180 if (p->error_indicator) {
29181 D(p->level--);
29182 return NULL;
29183 }
Pablo Galindob2802482021-04-15 21:38:45 +010029184 D(fprintf(stderr, "%*c> _tmp_145[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029185 Token * _keyword;
29186 if (
29187 (_keyword = _PyPegen_expect_token(p, 524)) // token='True'
29188 )
29189 {
Pablo Galindob2802482021-04-15 21:38:45 +010029190 D(fprintf(stderr, "%*c+ _tmp_145[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029191 _res = _keyword;
29192 goto done;
29193 }
29194 p->mark = _mark;
Pablo Galindob2802482021-04-15 21:38:45 +010029195 D(fprintf(stderr, "%*c%s _tmp_145[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029196 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'True'"));
29197 }
29198 { // 'None'
29199 if (p->error_indicator) {
29200 D(p->level--);
29201 return NULL;
29202 }
Pablo Galindob2802482021-04-15 21:38:45 +010029203 D(fprintf(stderr, "%*c> _tmp_145[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029204 Token * _keyword;
29205 if (
29206 (_keyword = _PyPegen_expect_token(p, 523)) // token='None'
29207 )
29208 {
Pablo Galindob2802482021-04-15 21:38:45 +010029209 D(fprintf(stderr, "%*c+ _tmp_145[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029210 _res = _keyword;
29211 goto done;
29212 }
29213 p->mark = _mark;
Pablo Galindob2802482021-04-15 21:38:45 +010029214 D(fprintf(stderr, "%*c%s _tmp_145[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029215 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'None'"));
29216 }
29217 { // 'False'
29218 if (p->error_indicator) {
29219 D(p->level--);
29220 return NULL;
29221 }
Pablo Galindob2802482021-04-15 21:38:45 +010029222 D(fprintf(stderr, "%*c> _tmp_145[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029223 Token * _keyword;
29224 if (
29225 (_keyword = _PyPegen_expect_token(p, 525)) // token='False'
29226 )
29227 {
Pablo Galindob2802482021-04-15 21:38:45 +010029228 D(fprintf(stderr, "%*c+ _tmp_145[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029229 _res = _keyword;
29230 goto done;
29231 }
29232 p->mark = _mark;
Pablo Galindob2802482021-04-15 21:38:45 +010029233 D(fprintf(stderr, "%*c%s _tmp_145[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029234 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'False'"));
29235 }
29236 _res = NULL;
29237 done:
29238 D(p->level--);
29239 return _res;
29240}
29241
Pablo Galindob2802482021-04-15 21:38:45 +010029242// _tmp_146: '=' | ':=' | ','
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029243static void *
Pablo Galindob2802482021-04-15 21:38:45 +010029244_tmp_146_rule(Parser *p)
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029245{
29246 D(p->level++);
29247 if (p->error_indicator) {
29248 D(p->level--);
29249 return NULL;
29250 }
29251 void * _res = NULL;
29252 int _mark = p->mark;
29253 { // '='
29254 if (p->error_indicator) {
29255 D(p->level--);
29256 return NULL;
29257 }
Pablo Galindob2802482021-04-15 21:38:45 +010029258 D(fprintf(stderr, "%*c> _tmp_146[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'='"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029259 Token * _literal;
29260 if (
29261 (_literal = _PyPegen_expect_token(p, 22)) // token='='
29262 )
29263 {
Pablo Galindob2802482021-04-15 21:38:45 +010029264 D(fprintf(stderr, "%*c+ _tmp_146[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'='"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029265 _res = _literal;
29266 goto done;
29267 }
29268 p->mark = _mark;
Pablo Galindob2802482021-04-15 21:38:45 +010029269 D(fprintf(stderr, "%*c%s _tmp_146[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029270 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'='"));
29271 }
29272 { // ':='
29273 if (p->error_indicator) {
29274 D(p->level--);
29275 return NULL;
29276 }
Pablo Galindob2802482021-04-15 21:38:45 +010029277 D(fprintf(stderr, "%*c> _tmp_146[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':='"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029278 Token * _literal;
29279 if (
29280 (_literal = _PyPegen_expect_token(p, 53)) // token=':='
29281 )
29282 {
Pablo Galindob2802482021-04-15 21:38:45 +010029283 D(fprintf(stderr, "%*c+ _tmp_146[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':='"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029284 _res = _literal;
29285 goto done;
29286 }
29287 p->mark = _mark;
Pablo Galindob2802482021-04-15 21:38:45 +010029288 D(fprintf(stderr, "%*c%s _tmp_146[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029289 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':='"));
29290 }
29291 { // ','
29292 if (p->error_indicator) {
29293 D(p->level--);
29294 return NULL;
29295 }
Pablo Galindob2802482021-04-15 21:38:45 +010029296 D(fprintf(stderr, "%*c> _tmp_146[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029297 Token * _literal;
29298 if (
29299 (_literal = _PyPegen_expect_token(p, 12)) // token=','
29300 )
29301 {
Pablo Galindob2802482021-04-15 21:38:45 +010029302 D(fprintf(stderr, "%*c+ _tmp_146[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029303 _res = _literal;
29304 goto done;
29305 }
29306 p->mark = _mark;
Pablo Galindob2802482021-04-15 21:38:45 +010029307 D(fprintf(stderr, "%*c%s _tmp_146[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029308 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','"));
29309 }
29310 _res = NULL;
29311 done:
29312 D(p->level--);
29313 return _res;
29314}
29315
Pablo Galindob2802482021-04-15 21:38:45 +010029316// _loop0_147: star_named_expressions
Pablo Galindo58fb1562021-02-02 19:54:22 +000029317static asdl_seq *
Pablo Galindob2802482021-04-15 21:38:45 +010029318_loop0_147_rule(Parser *p)
Pablo Galindo58fb1562021-02-02 19:54:22 +000029319{
29320 D(p->level++);
29321 if (p->error_indicator) {
29322 D(p->level--);
29323 return NULL;
29324 }
29325 void *_res = NULL;
29326 int _mark = p->mark;
29327 int _start_mark = p->mark;
29328 void **_children = PyMem_Malloc(sizeof(void *));
29329 if (!_children) {
29330 p->error_indicator = 1;
29331 PyErr_NoMemory();
29332 D(p->level--);
29333 return NULL;
29334 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010029335 Py_ssize_t _children_capacity = 1;
29336 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080029337 { // star_named_expressions
Pablo Galindo58fb1562021-02-02 19:54:22 +000029338 if (p->error_indicator) {
29339 D(p->level--);
29340 return NULL;
29341 }
Pablo Galindob2802482021-04-15 21:38:45 +010029342 D(fprintf(stderr, "%*c> _loop0_147[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_named_expressions"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029343 asdl_expr_seq* star_named_expressions_var;
29344 while (
29345 (star_named_expressions_var = star_named_expressions_rule(p)) // star_named_expressions
29346 )
29347 {
29348 _res = star_named_expressions_var;
29349 if (_n == _children_capacity) {
29350 _children_capacity *= 2;
29351 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
29352 if (!_new_children) {
29353 p->error_indicator = 1;
29354 PyErr_NoMemory();
29355 D(p->level--);
29356 return NULL;
29357 }
29358 _children = _new_children;
29359 }
29360 _children[_n++] = _res;
29361 _mark = p->mark;
29362 }
29363 p->mark = _mark;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029364 D(fprintf(stderr, "%*c%s _loop0_147[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob2802482021-04-15 21:38:45 +010029365 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expressions"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029366 }
29367 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
29368 if (!_seq) {
29369 PyMem_Free(_children);
29370 p->error_indicator = 1;
29371 PyErr_NoMemory();
29372 D(p->level--);
29373 return NULL;
29374 }
29375 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
29376 PyMem_Free(_children);
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029377 _PyPegen_insert_memo(p, _start_mark, _loop0_147_type, _seq);
Brandt Bucher145bf262021-02-26 14:51:55 -080029378 D(p->level--);
29379 return _seq;
29380}
29381
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029382// _loop0_148: (star_targets '=')
Brandt Bucher145bf262021-02-26 14:51:55 -080029383static asdl_seq *
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029384_loop0_148_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080029385{
29386 D(p->level++);
29387 if (p->error_indicator) {
29388 D(p->level--);
29389 return NULL;
29390 }
29391 void *_res = NULL;
29392 int _mark = p->mark;
29393 int _start_mark = p->mark;
29394 void **_children = PyMem_Malloc(sizeof(void *));
29395 if (!_children) {
29396 p->error_indicator = 1;
29397 PyErr_NoMemory();
29398 D(p->level--);
29399 return NULL;
29400 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010029401 Py_ssize_t _children_capacity = 1;
29402 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080029403 { // (star_targets '=')
29404 if (p->error_indicator) {
29405 D(p->level--);
29406 return NULL;
29407 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029408 D(fprintf(stderr, "%*c> _loop0_148[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010029409 void *_tmp_190_var;
Brandt Bucher145bf262021-02-26 14:51:55 -080029410 while (
Pablo Galindoa77aac42021-04-23 14:27:05 +010029411 (_tmp_190_var = _tmp_190_rule(p)) // star_targets '='
Brandt Bucher145bf262021-02-26 14:51:55 -080029412 )
29413 {
Pablo Galindoa77aac42021-04-23 14:27:05 +010029414 _res = _tmp_190_var;
Brandt Bucher145bf262021-02-26 14:51:55 -080029415 if (_n == _children_capacity) {
29416 _children_capacity *= 2;
29417 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
29418 if (!_new_children) {
29419 p->error_indicator = 1;
29420 PyErr_NoMemory();
29421 D(p->level--);
29422 return NULL;
29423 }
29424 _children = _new_children;
29425 }
29426 _children[_n++] = _res;
29427 _mark = p->mark;
29428 }
29429 p->mark = _mark;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029430 D(fprintf(stderr, "%*c%s _loop0_148[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080029431 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(star_targets '=')"));
29432 }
29433 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
29434 if (!_seq) {
29435 PyMem_Free(_children);
29436 p->error_indicator = 1;
29437 PyErr_NoMemory();
29438 D(p->level--);
29439 return NULL;
29440 }
29441 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
29442 PyMem_Free(_children);
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029443 _PyPegen_insert_memo(p, _start_mark, _loop0_148_type, _seq);
Brandt Bucher145bf262021-02-26 14:51:55 -080029444 D(p->level--);
29445 return _seq;
29446}
29447
Pablo Galindob2802482021-04-15 21:38:45 +010029448// _loop0_149: (star_targets '=')
29449static asdl_seq *
29450_loop0_149_rule(Parser *p)
29451{
29452 D(p->level++);
29453 if (p->error_indicator) {
29454 D(p->level--);
29455 return NULL;
29456 }
29457 void *_res = NULL;
29458 int _mark = p->mark;
29459 int _start_mark = p->mark;
29460 void **_children = PyMem_Malloc(sizeof(void *));
29461 if (!_children) {
29462 p->error_indicator = 1;
29463 PyErr_NoMemory();
29464 D(p->level--);
29465 return NULL;
29466 }
29467 Py_ssize_t _children_capacity = 1;
29468 Py_ssize_t _n = 0;
29469 { // (star_targets '=')
29470 if (p->error_indicator) {
29471 D(p->level--);
29472 return NULL;
29473 }
29474 D(fprintf(stderr, "%*c> _loop0_149[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010029475 void *_tmp_191_var;
Pablo Galindob2802482021-04-15 21:38:45 +010029476 while (
Pablo Galindoa77aac42021-04-23 14:27:05 +010029477 (_tmp_191_var = _tmp_191_rule(p)) // star_targets '='
Pablo Galindob2802482021-04-15 21:38:45 +010029478 )
29479 {
Pablo Galindoa77aac42021-04-23 14:27:05 +010029480 _res = _tmp_191_var;
Pablo Galindob2802482021-04-15 21:38:45 +010029481 if (_n == _children_capacity) {
29482 _children_capacity *= 2;
29483 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
29484 if (!_new_children) {
29485 p->error_indicator = 1;
29486 PyErr_NoMemory();
29487 D(p->level--);
29488 return NULL;
29489 }
29490 _children = _new_children;
29491 }
29492 _children[_n++] = _res;
29493 _mark = p->mark;
29494 }
29495 p->mark = _mark;
29496 D(fprintf(stderr, "%*c%s _loop0_149[%d-%d]: %s failed!\n", p->level, ' ',
29497 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(star_targets '=')"));
29498 }
29499 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
29500 if (!_seq) {
29501 PyMem_Free(_children);
29502 p->error_indicator = 1;
29503 PyErr_NoMemory();
29504 D(p->level--);
29505 return NULL;
29506 }
29507 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
29508 PyMem_Free(_children);
29509 _PyPegen_insert_memo(p, _start_mark, _loop0_149_type, _seq);
29510 D(p->level--);
29511 return _seq;
29512}
29513
29514// _tmp_150: yield_expr | star_expressions
Brandt Bucher145bf262021-02-26 14:51:55 -080029515static void *
Pablo Galindob2802482021-04-15 21:38:45 +010029516_tmp_150_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080029517{
29518 D(p->level++);
29519 if (p->error_indicator) {
29520 D(p->level--);
29521 return NULL;
29522 }
29523 void * _res = NULL;
29524 int _mark = p->mark;
29525 { // yield_expr
29526 if (p->error_indicator) {
29527 D(p->level--);
29528 return NULL;
29529 }
Pablo Galindob2802482021-04-15 21:38:45 +010029530 D(fprintf(stderr, "%*c> _tmp_150[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029531 expr_ty yield_expr_var;
29532 if (
29533 (yield_expr_var = yield_expr_rule(p)) // yield_expr
29534 )
29535 {
Pablo Galindob2802482021-04-15 21:38:45 +010029536 D(fprintf(stderr, "%*c+ _tmp_150[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029537 _res = yield_expr_var;
29538 goto done;
29539 }
29540 p->mark = _mark;
Pablo Galindob2802482021-04-15 21:38:45 +010029541 D(fprintf(stderr, "%*c%s _tmp_150[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080029542 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
29543 }
29544 { // star_expressions
29545 if (p->error_indicator) {
29546 D(p->level--);
29547 return NULL;
29548 }
Pablo Galindob2802482021-04-15 21:38:45 +010029549 D(fprintf(stderr, "%*c> _tmp_150[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029550 expr_ty star_expressions_var;
29551 if (
29552 (star_expressions_var = star_expressions_rule(p)) // star_expressions
29553 )
29554 {
Pablo Galindob2802482021-04-15 21:38:45 +010029555 D(fprintf(stderr, "%*c+ _tmp_150[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029556 _res = star_expressions_var;
29557 goto done;
29558 }
29559 p->mark = _mark;
Pablo Galindob2802482021-04-15 21:38:45 +010029560 D(fprintf(stderr, "%*c%s _tmp_150[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080029561 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
29562 }
29563 _res = NULL;
29564 done:
29565 D(p->level--);
29566 return _res;
29567}
29568
Pablo Galindob2802482021-04-15 21:38:45 +010029569// _tmp_151: '[' | '(' | '{'
Brandt Bucher145bf262021-02-26 14:51:55 -080029570static void *
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029571_tmp_151_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080029572{
29573 D(p->level++);
29574 if (p->error_indicator) {
29575 D(p->level--);
29576 return NULL;
29577 }
29578 void * _res = NULL;
29579 int _mark = p->mark;
29580 { // '['
29581 if (p->error_indicator) {
29582 D(p->level--);
29583 return NULL;
29584 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029585 D(fprintf(stderr, "%*c> _tmp_151[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029586 Token * _literal;
29587 if (
29588 (_literal = _PyPegen_expect_token(p, 9)) // token='['
29589 )
29590 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029591 D(fprintf(stderr, "%*c+ _tmp_151[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029592 _res = _literal;
29593 goto done;
29594 }
29595 p->mark = _mark;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029596 D(fprintf(stderr, "%*c%s _tmp_151[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080029597 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['"));
29598 }
Pablo Galindob2802482021-04-15 21:38:45 +010029599 { // '('
29600 if (p->error_indicator) {
29601 D(p->level--);
29602 return NULL;
29603 }
29604 D(fprintf(stderr, "%*c> _tmp_151[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('"));
29605 Token * _literal;
29606 if (
29607 (_literal = _PyPegen_expect_token(p, 7)) // token='('
29608 )
29609 {
29610 D(fprintf(stderr, "%*c+ _tmp_151[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('"));
29611 _res = _literal;
29612 goto done;
29613 }
29614 p->mark = _mark;
29615 D(fprintf(stderr, "%*c%s _tmp_151[%d-%d]: %s failed!\n", p->level, ' ',
29616 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('"));
29617 }
Brandt Bucher145bf262021-02-26 14:51:55 -080029618 { // '{'
29619 if (p->error_indicator) {
29620 D(p->level--);
29621 return NULL;
29622 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029623 D(fprintf(stderr, "%*c> _tmp_151[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{'"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029624 Token * _literal;
29625 if (
29626 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
29627 )
29628 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029629 D(fprintf(stderr, "%*c+ _tmp_151[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{'"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029630 _res = _literal;
29631 goto done;
29632 }
29633 p->mark = _mark;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029634 D(fprintf(stderr, "%*c%s _tmp_151[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080029635 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{'"));
29636 }
29637 _res = NULL;
29638 done:
29639 D(p->level--);
29640 return _res;
29641}
29642
Pablo Galindob2802482021-04-15 21:38:45 +010029643// _tmp_152: '[' | '{'
29644static void *
29645_tmp_152_rule(Parser *p)
29646{
29647 D(p->level++);
29648 if (p->error_indicator) {
29649 D(p->level--);
29650 return NULL;
29651 }
29652 void * _res = NULL;
29653 int _mark = p->mark;
29654 { // '['
29655 if (p->error_indicator) {
29656 D(p->level--);
29657 return NULL;
29658 }
29659 D(fprintf(stderr, "%*c> _tmp_152[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['"));
29660 Token * _literal;
29661 if (
29662 (_literal = _PyPegen_expect_token(p, 9)) // token='['
29663 )
29664 {
29665 D(fprintf(stderr, "%*c+ _tmp_152[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['"));
29666 _res = _literal;
29667 goto done;
29668 }
29669 p->mark = _mark;
29670 D(fprintf(stderr, "%*c%s _tmp_152[%d-%d]: %s failed!\n", p->level, ' ',
29671 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['"));
29672 }
29673 { // '{'
29674 if (p->error_indicator) {
29675 D(p->level--);
29676 return NULL;
29677 }
29678 D(fprintf(stderr, "%*c> _tmp_152[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{'"));
29679 Token * _literal;
29680 if (
29681 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
29682 )
29683 {
29684 D(fprintf(stderr, "%*c+ _tmp_152[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{'"));
29685 _res = _literal;
29686 goto done;
29687 }
29688 p->mark = _mark;
29689 D(fprintf(stderr, "%*c%s _tmp_152[%d-%d]: %s failed!\n", p->level, ' ',
29690 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{'"));
29691 }
29692 _res = NULL;
29693 done:
29694 D(p->level--);
29695 return _res;
29696}
29697
Pablo Galindoa77aac42021-04-23 14:27:05 +010029698// _tmp_153: '[' | '{'
29699static void *
29700_tmp_153_rule(Parser *p)
29701{
29702 D(p->level++);
29703 if (p->error_indicator) {
29704 D(p->level--);
29705 return NULL;
29706 }
29707 void * _res = NULL;
29708 int _mark = p->mark;
29709 { // '['
29710 if (p->error_indicator) {
29711 D(p->level--);
29712 return NULL;
29713 }
29714 D(fprintf(stderr, "%*c> _tmp_153[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['"));
29715 Token * _literal;
29716 if (
29717 (_literal = _PyPegen_expect_token(p, 9)) // token='['
29718 )
29719 {
29720 D(fprintf(stderr, "%*c+ _tmp_153[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['"));
29721 _res = _literal;
29722 goto done;
29723 }
29724 p->mark = _mark;
29725 D(fprintf(stderr, "%*c%s _tmp_153[%d-%d]: %s failed!\n", p->level, ' ',
29726 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['"));
29727 }
29728 { // '{'
29729 if (p->error_indicator) {
29730 D(p->level--);
29731 return NULL;
29732 }
29733 D(fprintf(stderr, "%*c> _tmp_153[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{'"));
29734 Token * _literal;
29735 if (
29736 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
29737 )
29738 {
29739 D(fprintf(stderr, "%*c+ _tmp_153[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{'"));
29740 _res = _literal;
29741 goto done;
29742 }
29743 p->mark = _mark;
29744 D(fprintf(stderr, "%*c%s _tmp_153[%d-%d]: %s failed!\n", p->level, ' ',
29745 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{'"));
29746 }
29747 _res = NULL;
29748 done:
29749 D(p->level--);
29750 return _res;
29751}
29752
29753// _loop0_154: param_no_default
Brandt Bucher145bf262021-02-26 14:51:55 -080029754static asdl_seq *
Pablo Galindoa77aac42021-04-23 14:27:05 +010029755_loop0_154_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080029756{
29757 D(p->level++);
29758 if (p->error_indicator) {
29759 D(p->level--);
29760 return NULL;
29761 }
29762 void *_res = NULL;
29763 int _mark = p->mark;
29764 int _start_mark = p->mark;
29765 void **_children = PyMem_Malloc(sizeof(void *));
29766 if (!_children) {
29767 p->error_indicator = 1;
29768 PyErr_NoMemory();
29769 D(p->level--);
29770 return NULL;
29771 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010029772 Py_ssize_t _children_capacity = 1;
29773 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080029774 { // param_no_default
29775 if (p->error_indicator) {
29776 D(p->level--);
29777 return NULL;
29778 }
Pablo Galindoa77aac42021-04-23 14:27:05 +010029779 D(fprintf(stderr, "%*c> _loop0_154[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029780 arg_ty param_no_default_var;
29781 while (
29782 (param_no_default_var = param_no_default_rule(p)) // param_no_default
29783 )
29784 {
29785 _res = param_no_default_var;
29786 if (_n == _children_capacity) {
29787 _children_capacity *= 2;
29788 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
29789 if (!_new_children) {
29790 p->error_indicator = 1;
29791 PyErr_NoMemory();
29792 D(p->level--);
29793 return NULL;
29794 }
29795 _children = _new_children;
29796 }
29797 _children[_n++] = _res;
29798 _mark = p->mark;
29799 }
29800 p->mark = _mark;
Pablo Galindoa77aac42021-04-23 14:27:05 +010029801 D(fprintf(stderr, "%*c%s _loop0_154[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080029802 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
29803 }
29804 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
29805 if (!_seq) {
29806 PyMem_Free(_children);
29807 p->error_indicator = 1;
29808 PyErr_NoMemory();
29809 D(p->level--);
29810 return NULL;
29811 }
29812 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
29813 PyMem_Free(_children);
Pablo Galindoa77aac42021-04-23 14:27:05 +010029814 _PyPegen_insert_memo(p, _start_mark, _loop0_154_type, _seq);
Brandt Bucher145bf262021-02-26 14:51:55 -080029815 D(p->level--);
29816 return _seq;
29817}
29818
Pablo Galindoa77aac42021-04-23 14:27:05 +010029819// _loop1_155: param_with_default
Brandt Bucher145bf262021-02-26 14:51:55 -080029820static asdl_seq *
Pablo Galindoa77aac42021-04-23 14:27:05 +010029821_loop1_155_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080029822{
29823 D(p->level++);
29824 if (p->error_indicator) {
29825 D(p->level--);
29826 return NULL;
29827 }
29828 void *_res = NULL;
29829 int _mark = p->mark;
29830 int _start_mark = p->mark;
29831 void **_children = PyMem_Malloc(sizeof(void *));
29832 if (!_children) {
29833 p->error_indicator = 1;
29834 PyErr_NoMemory();
29835 D(p->level--);
29836 return NULL;
29837 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010029838 Py_ssize_t _children_capacity = 1;
29839 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080029840 { // param_with_default
29841 if (p->error_indicator) {
29842 D(p->level--);
29843 return NULL;
29844 }
Pablo Galindoa77aac42021-04-23 14:27:05 +010029845 D(fprintf(stderr, "%*c> _loop1_155[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029846 NameDefaultPair* param_with_default_var;
29847 while (
29848 (param_with_default_var = param_with_default_rule(p)) // param_with_default
29849 )
29850 {
29851 _res = param_with_default_var;
29852 if (_n == _children_capacity) {
29853 _children_capacity *= 2;
29854 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
29855 if (!_new_children) {
29856 p->error_indicator = 1;
29857 PyErr_NoMemory();
29858 D(p->level--);
29859 return NULL;
29860 }
29861 _children = _new_children;
29862 }
29863 _children[_n++] = _res;
29864 _mark = p->mark;
29865 }
29866 p->mark = _mark;
Pablo Galindoa77aac42021-04-23 14:27:05 +010029867 D(fprintf(stderr, "%*c%s _loop1_155[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080029868 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
29869 }
29870 if (_n == 0 || p->error_indicator) {
29871 PyMem_Free(_children);
29872 D(p->level--);
29873 return NULL;
29874 }
29875 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
29876 if (!_seq) {
29877 PyMem_Free(_children);
29878 p->error_indicator = 1;
29879 PyErr_NoMemory();
29880 D(p->level--);
29881 return NULL;
29882 }
29883 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
29884 PyMem_Free(_children);
Pablo Galindoa77aac42021-04-23 14:27:05 +010029885 _PyPegen_insert_memo(p, _start_mark, _loop1_155_type, _seq);
Brandt Bucher145bf262021-02-26 14:51:55 -080029886 D(p->level--);
29887 return _seq;
29888}
29889
Pablo Galindoa77aac42021-04-23 14:27:05 +010029890// _loop0_156: lambda_param_no_default
Brandt Bucher145bf262021-02-26 14:51:55 -080029891static asdl_seq *
Pablo Galindoa77aac42021-04-23 14:27:05 +010029892_loop0_156_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080029893{
29894 D(p->level++);
29895 if (p->error_indicator) {
29896 D(p->level--);
29897 return NULL;
29898 }
29899 void *_res = NULL;
29900 int _mark = p->mark;
29901 int _start_mark = p->mark;
29902 void **_children = PyMem_Malloc(sizeof(void *));
29903 if (!_children) {
29904 p->error_indicator = 1;
29905 PyErr_NoMemory();
29906 D(p->level--);
29907 return NULL;
29908 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010029909 Py_ssize_t _children_capacity = 1;
29910 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080029911 { // lambda_param_no_default
29912 if (p->error_indicator) {
29913 D(p->level--);
29914 return NULL;
29915 }
Pablo Galindoa77aac42021-04-23 14:27:05 +010029916 D(fprintf(stderr, "%*c> _loop0_156[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029917 arg_ty lambda_param_no_default_var;
29918 while (
29919 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
29920 )
29921 {
29922 _res = lambda_param_no_default_var;
29923 if (_n == _children_capacity) {
29924 _children_capacity *= 2;
29925 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
29926 if (!_new_children) {
29927 p->error_indicator = 1;
29928 PyErr_NoMemory();
29929 D(p->level--);
29930 return NULL;
29931 }
29932 _children = _new_children;
29933 }
29934 _children[_n++] = _res;
29935 _mark = p->mark;
29936 }
29937 p->mark = _mark;
Pablo Galindoa77aac42021-04-23 14:27:05 +010029938 D(fprintf(stderr, "%*c%s _loop0_156[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080029939 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
29940 }
29941 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
29942 if (!_seq) {
29943 PyMem_Free(_children);
29944 p->error_indicator = 1;
29945 PyErr_NoMemory();
29946 D(p->level--);
29947 return NULL;
29948 }
29949 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
29950 PyMem_Free(_children);
Pablo Galindoa77aac42021-04-23 14:27:05 +010029951 _PyPegen_insert_memo(p, _start_mark, _loop0_156_type, _seq);
Brandt Bucher145bf262021-02-26 14:51:55 -080029952 D(p->level--);
29953 return _seq;
29954}
29955
Pablo Galindoa77aac42021-04-23 14:27:05 +010029956// _loop1_157: lambda_param_with_default
Brandt Bucher145bf262021-02-26 14:51:55 -080029957static asdl_seq *
Pablo Galindoa77aac42021-04-23 14:27:05 +010029958_loop1_157_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080029959{
29960 D(p->level++);
29961 if (p->error_indicator) {
29962 D(p->level--);
29963 return NULL;
29964 }
29965 void *_res = NULL;
29966 int _mark = p->mark;
29967 int _start_mark = p->mark;
29968 void **_children = PyMem_Malloc(sizeof(void *));
29969 if (!_children) {
29970 p->error_indicator = 1;
29971 PyErr_NoMemory();
29972 D(p->level--);
29973 return NULL;
29974 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010029975 Py_ssize_t _children_capacity = 1;
29976 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080029977 { // lambda_param_with_default
29978 if (p->error_indicator) {
29979 D(p->level--);
29980 return NULL;
29981 }
Pablo Galindoa77aac42021-04-23 14:27:05 +010029982 D(fprintf(stderr, "%*c> _loop1_157[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029983 NameDefaultPair* lambda_param_with_default_var;
29984 while (
29985 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
29986 )
29987 {
29988 _res = lambda_param_with_default_var;
29989 if (_n == _children_capacity) {
29990 _children_capacity *= 2;
29991 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
29992 if (!_new_children) {
29993 p->error_indicator = 1;
29994 PyErr_NoMemory();
29995 D(p->level--);
29996 return NULL;
29997 }
29998 _children = _new_children;
29999 }
30000 _children[_n++] = _res;
30001 _mark = p->mark;
30002 }
30003 p->mark = _mark;
Pablo Galindoa77aac42021-04-23 14:27:05 +010030004 D(fprintf(stderr, "%*c%s _loop1_157[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080030005 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
30006 }
30007 if (_n == 0 || p->error_indicator) {
30008 PyMem_Free(_children);
30009 D(p->level--);
30010 return NULL;
30011 }
30012 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
30013 if (!_seq) {
30014 PyMem_Free(_children);
30015 p->error_indicator = 1;
30016 PyErr_NoMemory();
30017 D(p->level--);
30018 return NULL;
30019 }
30020 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
30021 PyMem_Free(_children);
Pablo Galindoa77aac42021-04-23 14:27:05 +010030022 _PyPegen_insert_memo(p, _start_mark, _loop1_157_type, _seq);
Brandt Bucher145bf262021-02-26 14:51:55 -080030023 D(p->level--);
30024 return _seq;
30025}
30026
Pablo Galindoa77aac42021-04-23 14:27:05 +010030027// _tmp_158: ')' | ',' (')' | '**')
Brandt Bucher145bf262021-02-26 14:51:55 -080030028static void *
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030029_tmp_158_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080030030{
30031 D(p->level++);
30032 if (p->error_indicator) {
30033 D(p->level--);
30034 return NULL;
30035 }
30036 void * _res = NULL;
30037 int _mark = p->mark;
Pablo Galindoa77aac42021-04-23 14:27:05 +010030038 { // ')'
Brandt Bucher145bf262021-02-26 14:51:55 -080030039 if (p->error_indicator) {
30040 D(p->level--);
30041 return NULL;
30042 }
Pablo Galindoa77aac42021-04-23 14:27:05 +010030043 D(fprintf(stderr, "%*c> _tmp_158[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
Brandt Bucher145bf262021-02-26 14:51:55 -080030044 Token * _literal;
30045 if (
Pablo Galindoa77aac42021-04-23 14:27:05 +010030046 (_literal = _PyPegen_expect_token(p, 8)) // token=')'
Brandt Bucher145bf262021-02-26 14:51:55 -080030047 )
30048 {
Pablo Galindoa77aac42021-04-23 14:27:05 +010030049 D(fprintf(stderr, "%*c+ _tmp_158[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
Brandt Bucher145bf262021-02-26 14:51:55 -080030050 _res = _literal;
30051 goto done;
30052 }
30053 p->mark = _mark;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030054 D(fprintf(stderr, "%*c%s _tmp_158[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindoa77aac42021-04-23 14:27:05 +010030055 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
Brandt Bucher145bf262021-02-26 14:51:55 -080030056 }
Pablo Galindoa77aac42021-04-23 14:27:05 +010030057 { // ',' (')' | '**')
Pablo Galindob2802482021-04-15 21:38:45 +010030058 if (p->error_indicator) {
30059 D(p->level--);
30060 return NULL;
30061 }
Pablo Galindoa77aac42021-04-23 14:27:05 +010030062 D(fprintf(stderr, "%*c> _tmp_158[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (')' | '**')"));
Pablo Galindob2802482021-04-15 21:38:45 +010030063 Token * _literal;
Pablo Galindo56c95df2021-04-21 15:28:21 +010030064 void *_tmp_192_var;
Pablo Galindob2802482021-04-15 21:38:45 +010030065 if (
30066 (_literal = _PyPegen_expect_token(p, 12)) // token=','
30067 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010030068 (_tmp_192_var = _tmp_192_rule(p)) // ')' | '**'
Pablo Galindob2802482021-04-15 21:38:45 +010030069 )
30070 {
Pablo Galindoa77aac42021-04-23 14:27:05 +010030071 D(fprintf(stderr, "%*c+ _tmp_158[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' (')' | '**')"));
Pablo Galindo56c95df2021-04-21 15:28:21 +010030072 _res = _PyPegen_dummy_name(p, _literal, _tmp_192_var);
Pablo Galindob2802482021-04-15 21:38:45 +010030073 goto done;
30074 }
30075 p->mark = _mark;
30076 D(fprintf(stderr, "%*c%s _tmp_158[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindoa77aac42021-04-23 14:27:05 +010030077 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (')' | '**')"));
Pablo Galindob2802482021-04-15 21:38:45 +010030078 }
Brandt Bucher145bf262021-02-26 14:51:55 -080030079 _res = NULL;
30080 done:
30081 D(p->level--);
30082 return _res;
30083}
30084
Pablo Galindoa77aac42021-04-23 14:27:05 +010030085// _tmp_159: ':' | ',' (':' | '**')
Pablo Galindob2802482021-04-15 21:38:45 +010030086static void *
30087_tmp_159_rule(Parser *p)
30088{
30089 D(p->level++);
30090 if (p->error_indicator) {
30091 D(p->level--);
30092 return NULL;
30093 }
30094 void * _res = NULL;
30095 int _mark = p->mark;
Pablo Galindob2802482021-04-15 21:38:45 +010030096 { // ':'
30097 if (p->error_indicator) {
30098 D(p->level--);
30099 return NULL;
30100 }
30101 D(fprintf(stderr, "%*c> _tmp_159[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
30102 Token * _literal;
30103 if (
30104 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
30105 )
30106 {
30107 D(fprintf(stderr, "%*c+ _tmp_159[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
30108 _res = _literal;
30109 goto done;
30110 }
30111 p->mark = _mark;
30112 D(fprintf(stderr, "%*c%s _tmp_159[%d-%d]: %s failed!\n", p->level, ' ',
30113 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
30114 }
Pablo Galindoa77aac42021-04-23 14:27:05 +010030115 { // ',' (':' | '**')
Brandt Bucher145bf262021-02-26 14:51:55 -080030116 if (p->error_indicator) {
30117 D(p->level--);
30118 return NULL;
30119 }
Pablo Galindoa77aac42021-04-23 14:27:05 +010030120 D(fprintf(stderr, "%*c> _tmp_159[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (':' | '**')"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000030121 Token * _literal;
Pablo Galindoa77aac42021-04-23 14:27:05 +010030122 void *_tmp_193_var;
30123 if (
Pablo Galindo58fb1562021-02-02 19:54:22 +000030124 (_literal = _PyPegen_expect_token(p, 12)) // token=','
30125 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010030126 (_tmp_193_var = _tmp_193_rule(p)) // ':' | '**'
Pablo Galindo58fb1562021-02-02 19:54:22 +000030127 )
30128 {
Pablo Galindoa77aac42021-04-23 14:27:05 +010030129 D(fprintf(stderr, "%*c+ _tmp_159[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' (':' | '**')"));
30130 _res = _PyPegen_dummy_name(p, _literal, _tmp_193_var);
Brandt Bucher145bf262021-02-26 14:51:55 -080030131 goto done;
30132 }
30133 p->mark = _mark;
Pablo Galindoa77aac42021-04-23 14:27:05 +010030134 D(fprintf(stderr, "%*c%s _tmp_159[%d-%d]: %s failed!\n", p->level, ' ',
30135 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (':' | '**')"));
Brandt Bucher145bf262021-02-26 14:51:55 -080030136 }
30137 _res = NULL;
30138 done:
30139 D(p->level--);
30140 return _res;
30141}
30142
Pablo Galindoa77aac42021-04-23 14:27:05 +010030143// _tmp_160: ',' | ')' | ':'
Pablo Galindo56c95df2021-04-21 15:28:21 +010030144static void *
Pablo Galindoa77aac42021-04-23 14:27:05 +010030145_tmp_160_rule(Parser *p)
Pablo Galindo56c95df2021-04-21 15:28:21 +010030146{
30147 D(p->level++);
30148 if (p->error_indicator) {
30149 D(p->level--);
30150 return NULL;
30151 }
30152 void * _res = NULL;
30153 int _mark = p->mark;
Pablo Galindoa77aac42021-04-23 14:27:05 +010030154 { // ','
Pablo Galindo56c95df2021-04-21 15:28:21 +010030155 if (p->error_indicator) {
30156 D(p->level--);
30157 return NULL;
30158 }
Pablo Galindoa77aac42021-04-23 14:27:05 +010030159 D(fprintf(stderr, "%*c> _tmp_160[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','"));
30160 Token * _literal;
Pablo Galindo56c95df2021-04-21 15:28:21 +010030161 if (
Pablo Galindoa77aac42021-04-23 14:27:05 +010030162 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindo56c95df2021-04-21 15:28:21 +010030163 )
30164 {
Pablo Galindoa77aac42021-04-23 14:27:05 +010030165 D(fprintf(stderr, "%*c+ _tmp_160[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','"));
30166 _res = _literal;
Pablo Galindo56c95df2021-04-21 15:28:21 +010030167 goto done;
30168 }
30169 p->mark = _mark;
Pablo Galindoa77aac42021-04-23 14:27:05 +010030170 D(fprintf(stderr, "%*c%s _tmp_160[%d-%d]: %s failed!\n", p->level, ' ',
30171 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','"));
30172 }
30173 { // ')'
30174 if (p->error_indicator) {
30175 D(p->level--);
30176 return NULL;
30177 }
30178 D(fprintf(stderr, "%*c> _tmp_160[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
30179 Token * _literal;
30180 if (
30181 (_literal = _PyPegen_expect_token(p, 8)) // token=')'
30182 )
30183 {
30184 D(fprintf(stderr, "%*c+ _tmp_160[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
30185 _res = _literal;
30186 goto done;
30187 }
30188 p->mark = _mark;
30189 D(fprintf(stderr, "%*c%s _tmp_160[%d-%d]: %s failed!\n", p->level, ' ',
30190 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
30191 }
30192 { // ':'
30193 if (p->error_indicator) {
30194 D(p->level--);
30195 return NULL;
30196 }
30197 D(fprintf(stderr, "%*c> _tmp_160[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
30198 Token * _literal;
30199 if (
30200 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
30201 )
30202 {
30203 D(fprintf(stderr, "%*c+ _tmp_160[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
30204 _res = _literal;
30205 goto done;
30206 }
30207 p->mark = _mark;
30208 D(fprintf(stderr, "%*c%s _tmp_160[%d-%d]: %s failed!\n", p->level, ' ',
30209 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
30210 }
30211 _res = NULL;
30212 done:
30213 D(p->level--);
30214 return _res;
30215}
30216
30217// _loop0_162: ',' (expression ['as' star_target])
30218static asdl_seq *
30219_loop0_162_rule(Parser *p)
30220{
30221 D(p->level++);
30222 if (p->error_indicator) {
30223 D(p->level--);
30224 return NULL;
30225 }
30226 void *_res = NULL;
30227 int _mark = p->mark;
30228 int _start_mark = p->mark;
30229 void **_children = PyMem_Malloc(sizeof(void *));
30230 if (!_children) {
30231 p->error_indicator = 1;
30232 PyErr_NoMemory();
30233 D(p->level--);
30234 return NULL;
30235 }
30236 Py_ssize_t _children_capacity = 1;
30237 Py_ssize_t _n = 0;
30238 { // ',' (expression ['as' star_target])
30239 if (p->error_indicator) {
30240 D(p->level--);
30241 return NULL;
30242 }
30243 D(fprintf(stderr, "%*c> _loop0_162[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (expression ['as' star_target])"));
30244 Token * _literal;
30245 void *elem;
30246 while (
30247 (_literal = _PyPegen_expect_token(p, 12)) // token=','
30248 &&
30249 (elem = _tmp_194_rule(p)) // expression ['as' star_target]
30250 )
30251 {
30252 _res = elem;
30253 if (_res == NULL && PyErr_Occurred()) {
30254 p->error_indicator = 1;
30255 PyMem_Free(_children);
30256 D(p->level--);
30257 return NULL;
30258 }
30259 if (_n == _children_capacity) {
30260 _children_capacity *= 2;
30261 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
30262 if (!_new_children) {
30263 p->error_indicator = 1;
30264 PyErr_NoMemory();
30265 D(p->level--);
30266 return NULL;
30267 }
30268 _children = _new_children;
30269 }
30270 _children[_n++] = _res;
30271 _mark = p->mark;
30272 }
30273 p->mark = _mark;
30274 D(fprintf(stderr, "%*c%s _loop0_162[%d-%d]: %s failed!\n", p->level, ' ',
30275 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (expression ['as' star_target])"));
30276 }
30277 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
30278 if (!_seq) {
30279 PyMem_Free(_children);
30280 p->error_indicator = 1;
30281 PyErr_NoMemory();
30282 D(p->level--);
30283 return NULL;
30284 }
30285 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
30286 PyMem_Free(_children);
30287 _PyPegen_insert_memo(p, _start_mark, _loop0_162_type, _seq);
30288 D(p->level--);
30289 return _seq;
30290}
30291
30292// _gather_161: (expression ['as' star_target]) _loop0_162
30293static asdl_seq *
30294_gather_161_rule(Parser *p)
30295{
30296 D(p->level++);
30297 if (p->error_indicator) {
30298 D(p->level--);
30299 return NULL;
30300 }
30301 asdl_seq * _res = NULL;
30302 int _mark = p->mark;
30303 { // (expression ['as' star_target]) _loop0_162
30304 if (p->error_indicator) {
30305 D(p->level--);
30306 return NULL;
30307 }
30308 D(fprintf(stderr, "%*c> _gather_161[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(expression ['as' star_target]) _loop0_162"));
30309 void *elem;
30310 asdl_seq * seq;
30311 if (
30312 (elem = _tmp_194_rule(p)) // expression ['as' star_target]
30313 &&
30314 (seq = _loop0_162_rule(p)) // _loop0_162
30315 )
30316 {
30317 D(fprintf(stderr, "%*c+ _gather_161[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(expression ['as' star_target]) _loop0_162"));
30318 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
30319 goto done;
30320 }
30321 p->mark = _mark;
30322 D(fprintf(stderr, "%*c%s _gather_161[%d-%d]: %s failed!\n", p->level, ' ',
30323 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expression ['as' star_target]) _loop0_162"));
30324 }
30325 _res = NULL;
30326 done:
30327 D(p->level--);
30328 return _res;
30329}
30330
30331// _loop0_164: ',' (expressions ['as' star_target])
30332static asdl_seq *
30333_loop0_164_rule(Parser *p)
30334{
30335 D(p->level++);
30336 if (p->error_indicator) {
30337 D(p->level--);
30338 return NULL;
30339 }
30340 void *_res = NULL;
30341 int _mark = p->mark;
30342 int _start_mark = p->mark;
30343 void **_children = PyMem_Malloc(sizeof(void *));
30344 if (!_children) {
30345 p->error_indicator = 1;
30346 PyErr_NoMemory();
30347 D(p->level--);
30348 return NULL;
30349 }
30350 Py_ssize_t _children_capacity = 1;
30351 Py_ssize_t _n = 0;
30352 { // ',' (expressions ['as' star_target])
30353 if (p->error_indicator) {
30354 D(p->level--);
30355 return NULL;
30356 }
30357 D(fprintf(stderr, "%*c> _loop0_164[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (expressions ['as' star_target])"));
30358 Token * _literal;
30359 void *elem;
30360 while (
30361 (_literal = _PyPegen_expect_token(p, 12)) // token=','
30362 &&
30363 (elem = _tmp_195_rule(p)) // expressions ['as' star_target]
30364 )
30365 {
30366 _res = elem;
30367 if (_res == NULL && PyErr_Occurred()) {
30368 p->error_indicator = 1;
30369 PyMem_Free(_children);
30370 D(p->level--);
30371 return NULL;
30372 }
30373 if (_n == _children_capacity) {
30374 _children_capacity *= 2;
30375 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
30376 if (!_new_children) {
30377 p->error_indicator = 1;
30378 PyErr_NoMemory();
30379 D(p->level--);
30380 return NULL;
30381 }
30382 _children = _new_children;
30383 }
30384 _children[_n++] = _res;
30385 _mark = p->mark;
30386 }
30387 p->mark = _mark;
30388 D(fprintf(stderr, "%*c%s _loop0_164[%d-%d]: %s failed!\n", p->level, ' ',
30389 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (expressions ['as' star_target])"));
30390 }
30391 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
30392 if (!_seq) {
30393 PyMem_Free(_children);
30394 p->error_indicator = 1;
30395 PyErr_NoMemory();
30396 D(p->level--);
30397 return NULL;
30398 }
30399 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
30400 PyMem_Free(_children);
30401 _PyPegen_insert_memo(p, _start_mark, _loop0_164_type, _seq);
30402 D(p->level--);
30403 return _seq;
30404}
30405
30406// _gather_163: (expressions ['as' star_target]) _loop0_164
30407static asdl_seq *
30408_gather_163_rule(Parser *p)
30409{
30410 D(p->level++);
30411 if (p->error_indicator) {
30412 D(p->level--);
30413 return NULL;
30414 }
30415 asdl_seq * _res = NULL;
30416 int _mark = p->mark;
30417 { // (expressions ['as' star_target]) _loop0_164
30418 if (p->error_indicator) {
30419 D(p->level--);
30420 return NULL;
30421 }
30422 D(fprintf(stderr, "%*c> _gather_163[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(expressions ['as' star_target]) _loop0_164"));
30423 void *elem;
30424 asdl_seq * seq;
30425 if (
30426 (elem = _tmp_195_rule(p)) // expressions ['as' star_target]
30427 &&
30428 (seq = _loop0_164_rule(p)) // _loop0_164
30429 )
30430 {
30431 D(fprintf(stderr, "%*c+ _gather_163[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(expressions ['as' star_target]) _loop0_164"));
30432 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
30433 goto done;
30434 }
30435 p->mark = _mark;
30436 D(fprintf(stderr, "%*c%s _gather_163[%d-%d]: %s failed!\n", p->level, ' ',
30437 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expressions ['as' star_target]) _loop0_164"));
30438 }
30439 _res = NULL;
30440 done:
30441 D(p->level--);
30442 return _res;
30443}
30444
30445// _loop0_166: ',' (expression ['as' star_target])
30446static asdl_seq *
30447_loop0_166_rule(Parser *p)
30448{
30449 D(p->level++);
30450 if (p->error_indicator) {
30451 D(p->level--);
30452 return NULL;
30453 }
30454 void *_res = NULL;
30455 int _mark = p->mark;
30456 int _start_mark = p->mark;
30457 void **_children = PyMem_Malloc(sizeof(void *));
30458 if (!_children) {
30459 p->error_indicator = 1;
30460 PyErr_NoMemory();
30461 D(p->level--);
30462 return NULL;
30463 }
30464 Py_ssize_t _children_capacity = 1;
30465 Py_ssize_t _n = 0;
30466 { // ',' (expression ['as' star_target])
30467 if (p->error_indicator) {
30468 D(p->level--);
30469 return NULL;
30470 }
30471 D(fprintf(stderr, "%*c> _loop0_166[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (expression ['as' star_target])"));
30472 Token * _literal;
30473 void *elem;
30474 while (
30475 (_literal = _PyPegen_expect_token(p, 12)) // token=','
30476 &&
30477 (elem = _tmp_196_rule(p)) // expression ['as' star_target]
30478 )
30479 {
30480 _res = elem;
30481 if (_res == NULL && PyErr_Occurred()) {
30482 p->error_indicator = 1;
30483 PyMem_Free(_children);
30484 D(p->level--);
30485 return NULL;
30486 }
30487 if (_n == _children_capacity) {
30488 _children_capacity *= 2;
30489 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
30490 if (!_new_children) {
30491 p->error_indicator = 1;
30492 PyErr_NoMemory();
30493 D(p->level--);
30494 return NULL;
30495 }
30496 _children = _new_children;
30497 }
30498 _children[_n++] = _res;
30499 _mark = p->mark;
30500 }
30501 p->mark = _mark;
30502 D(fprintf(stderr, "%*c%s _loop0_166[%d-%d]: %s failed!\n", p->level, ' ',
30503 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (expression ['as' star_target])"));
30504 }
30505 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
30506 if (!_seq) {
30507 PyMem_Free(_children);
30508 p->error_indicator = 1;
30509 PyErr_NoMemory();
30510 D(p->level--);
30511 return NULL;
30512 }
30513 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
30514 PyMem_Free(_children);
30515 _PyPegen_insert_memo(p, _start_mark, _loop0_166_type, _seq);
30516 D(p->level--);
30517 return _seq;
30518}
30519
30520// _gather_165: (expression ['as' star_target]) _loop0_166
30521static asdl_seq *
30522_gather_165_rule(Parser *p)
30523{
30524 D(p->level++);
30525 if (p->error_indicator) {
30526 D(p->level--);
30527 return NULL;
30528 }
30529 asdl_seq * _res = NULL;
30530 int _mark = p->mark;
30531 { // (expression ['as' star_target]) _loop0_166
30532 if (p->error_indicator) {
30533 D(p->level--);
30534 return NULL;
30535 }
30536 D(fprintf(stderr, "%*c> _gather_165[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(expression ['as' star_target]) _loop0_166"));
30537 void *elem;
30538 asdl_seq * seq;
30539 if (
30540 (elem = _tmp_196_rule(p)) // expression ['as' star_target]
30541 &&
30542 (seq = _loop0_166_rule(p)) // _loop0_166
30543 )
30544 {
30545 D(fprintf(stderr, "%*c+ _gather_165[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(expression ['as' star_target]) _loop0_166"));
30546 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
30547 goto done;
30548 }
30549 p->mark = _mark;
30550 D(fprintf(stderr, "%*c%s _gather_165[%d-%d]: %s failed!\n", p->level, ' ',
30551 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expression ['as' star_target]) _loop0_166"));
30552 }
30553 _res = NULL;
30554 done:
30555 D(p->level--);
30556 return _res;
30557}
30558
30559// _loop0_168: ',' (expressions ['as' star_target])
30560static asdl_seq *
30561_loop0_168_rule(Parser *p)
30562{
30563 D(p->level++);
30564 if (p->error_indicator) {
30565 D(p->level--);
30566 return NULL;
30567 }
30568 void *_res = NULL;
30569 int _mark = p->mark;
30570 int _start_mark = p->mark;
30571 void **_children = PyMem_Malloc(sizeof(void *));
30572 if (!_children) {
30573 p->error_indicator = 1;
30574 PyErr_NoMemory();
30575 D(p->level--);
30576 return NULL;
30577 }
30578 Py_ssize_t _children_capacity = 1;
30579 Py_ssize_t _n = 0;
30580 { // ',' (expressions ['as' star_target])
30581 if (p->error_indicator) {
30582 D(p->level--);
30583 return NULL;
30584 }
30585 D(fprintf(stderr, "%*c> _loop0_168[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (expressions ['as' star_target])"));
30586 Token * _literal;
30587 void *elem;
30588 while (
30589 (_literal = _PyPegen_expect_token(p, 12)) // token=','
30590 &&
30591 (elem = _tmp_197_rule(p)) // expressions ['as' star_target]
30592 )
30593 {
30594 _res = elem;
30595 if (_res == NULL && PyErr_Occurred()) {
30596 p->error_indicator = 1;
30597 PyMem_Free(_children);
30598 D(p->level--);
30599 return NULL;
30600 }
30601 if (_n == _children_capacity) {
30602 _children_capacity *= 2;
30603 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
30604 if (!_new_children) {
30605 p->error_indicator = 1;
30606 PyErr_NoMemory();
30607 D(p->level--);
30608 return NULL;
30609 }
30610 _children = _new_children;
30611 }
30612 _children[_n++] = _res;
30613 _mark = p->mark;
30614 }
30615 p->mark = _mark;
30616 D(fprintf(stderr, "%*c%s _loop0_168[%d-%d]: %s failed!\n", p->level, ' ',
30617 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (expressions ['as' star_target])"));
30618 }
30619 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
30620 if (!_seq) {
30621 PyMem_Free(_children);
30622 p->error_indicator = 1;
30623 PyErr_NoMemory();
30624 D(p->level--);
30625 return NULL;
30626 }
30627 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
30628 PyMem_Free(_children);
30629 _PyPegen_insert_memo(p, _start_mark, _loop0_168_type, _seq);
30630 D(p->level--);
30631 return _seq;
30632}
30633
30634// _gather_167: (expressions ['as' star_target]) _loop0_168
30635static asdl_seq *
30636_gather_167_rule(Parser *p)
30637{
30638 D(p->level++);
30639 if (p->error_indicator) {
30640 D(p->level--);
30641 return NULL;
30642 }
30643 asdl_seq * _res = NULL;
30644 int _mark = p->mark;
30645 { // (expressions ['as' star_target]) _loop0_168
30646 if (p->error_indicator) {
30647 D(p->level--);
30648 return NULL;
30649 }
30650 D(fprintf(stderr, "%*c> _gather_167[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(expressions ['as' star_target]) _loop0_168"));
30651 void *elem;
30652 asdl_seq * seq;
30653 if (
30654 (elem = _tmp_197_rule(p)) // expressions ['as' star_target]
30655 &&
30656 (seq = _loop0_168_rule(p)) // _loop0_168
30657 )
30658 {
30659 D(fprintf(stderr, "%*c+ _gather_167[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(expressions ['as' star_target]) _loop0_168"));
30660 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
30661 goto done;
30662 }
30663 p->mark = _mark;
30664 D(fprintf(stderr, "%*c%s _gather_167[%d-%d]: %s failed!\n", p->level, ' ',
30665 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expressions ['as' star_target]) _loop0_168"));
Pablo Galindo56c95df2021-04-21 15:28:21 +010030666 }
30667 _res = NULL;
30668 done:
30669 D(p->level--);
30670 return _res;
30671}
30672
30673// _tmp_169: 'as' NAME
30674static void *
30675_tmp_169_rule(Parser *p)
30676{
30677 D(p->level++);
30678 if (p->error_indicator) {
30679 D(p->level--);
30680 return NULL;
30681 }
30682 void * _res = NULL;
30683 int _mark = p->mark;
30684 { // 'as' NAME
30685 if (p->error_indicator) {
30686 D(p->level--);
30687 return NULL;
30688 }
30689 D(fprintf(stderr, "%*c> _tmp_169[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
30690 Token * _keyword;
30691 expr_ty name_var;
30692 if (
30693 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
30694 &&
30695 (name_var = _PyPegen_name_token(p)) // NAME
30696 )
30697 {
30698 D(fprintf(stderr, "%*c+ _tmp_169[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
30699 _res = _PyPegen_dummy_name(p, _keyword, name_var);
30700 goto done;
30701 }
30702 p->mark = _mark;
30703 D(fprintf(stderr, "%*c%s _tmp_169[%d-%d]: %s failed!\n", p->level, ' ',
30704 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
30705 }
30706 _res = NULL;
30707 done:
30708 D(p->level--);
30709 return _res;
30710}
30711
30712// _tmp_170: 'as' NAME
30713static void *
30714_tmp_170_rule(Parser *p)
30715{
30716 D(p->level++);
30717 if (p->error_indicator) {
30718 D(p->level--);
30719 return NULL;
30720 }
30721 void * _res = NULL;
30722 int _mark = p->mark;
30723 { // 'as' NAME
30724 if (p->error_indicator) {
30725 D(p->level--);
30726 return NULL;
30727 }
30728 D(fprintf(stderr, "%*c> _tmp_170[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
30729 Token * _keyword;
30730 expr_ty name_var;
30731 if (
30732 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
30733 &&
30734 (name_var = _PyPegen_name_token(p)) // NAME
30735 )
30736 {
30737 D(fprintf(stderr, "%*c+ _tmp_170[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
30738 _res = _PyPegen_dummy_name(p, _keyword, name_var);
30739 goto done;
30740 }
30741 p->mark = _mark;
30742 D(fprintf(stderr, "%*c%s _tmp_170[%d-%d]: %s failed!\n", p->level, ' ',
30743 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
30744 }
30745 _res = NULL;
30746 done:
30747 D(p->level--);
30748 return _res;
30749}
30750
Pablo Galindoa77aac42021-04-23 14:27:05 +010030751// _tmp_171: 'as' NAME
Pablo Galindo56c95df2021-04-21 15:28:21 +010030752static void *
30753_tmp_171_rule(Parser *p)
30754{
30755 D(p->level++);
30756 if (p->error_indicator) {
30757 D(p->level--);
30758 return NULL;
30759 }
30760 void * _res = NULL;
30761 int _mark = p->mark;
Pablo Galindoa77aac42021-04-23 14:27:05 +010030762 { // 'as' NAME
30763 if (p->error_indicator) {
30764 D(p->level--);
30765 return NULL;
30766 }
30767 D(fprintf(stderr, "%*c> _tmp_171[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
30768 Token * _keyword;
30769 expr_ty name_var;
30770 if (
30771 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
30772 &&
30773 (name_var = _PyPegen_name_token(p)) // NAME
30774 )
30775 {
30776 D(fprintf(stderr, "%*c+ _tmp_171[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
30777 _res = _PyPegen_dummy_name(p, _keyword, name_var);
30778 goto done;
30779 }
30780 p->mark = _mark;
30781 D(fprintf(stderr, "%*c%s _tmp_171[%d-%d]: %s failed!\n", p->level, ' ',
30782 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
30783 }
30784 _res = NULL;
30785 done:
30786 D(p->level--);
30787 return _res;
30788}
30789
30790// _tmp_172: '->' expression
30791static void *
30792_tmp_172_rule(Parser *p)
30793{
30794 D(p->level++);
30795 if (p->error_indicator) {
30796 D(p->level--);
30797 return NULL;
30798 }
30799 void * _res = NULL;
30800 int _mark = p->mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +010030801 { // '->' expression
30802 if (p->error_indicator) {
30803 D(p->level--);
30804 return NULL;
30805 }
Pablo Galindoa77aac42021-04-23 14:27:05 +010030806 D(fprintf(stderr, "%*c> _tmp_172[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'->' expression"));
Pablo Galindo56c95df2021-04-21 15:28:21 +010030807 Token * _literal;
30808 expr_ty expression_var;
30809 if (
30810 (_literal = _PyPegen_expect_token(p, 51)) // token='->'
30811 &&
30812 (expression_var = expression_rule(p)) // expression
30813 )
30814 {
Pablo Galindoa77aac42021-04-23 14:27:05 +010030815 D(fprintf(stderr, "%*c+ _tmp_172[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'->' expression"));
Pablo Galindo56c95df2021-04-21 15:28:21 +010030816 _res = _PyPegen_dummy_name(p, _literal, expression_var);
30817 goto done;
30818 }
30819 p->mark = _mark;
Pablo Galindoa77aac42021-04-23 14:27:05 +010030820 D(fprintf(stderr, "%*c%s _tmp_172[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo56c95df2021-04-21 15:28:21 +010030821 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'->' expression"));
30822 }
30823 _res = NULL;
30824 done:
30825 D(p->level--);
30826 return _res;
30827}
30828
Pablo Galindoa77aac42021-04-23 14:27:05 +010030829// _tmp_173: '(' arguments? ')'
Pablo Galindo56c95df2021-04-21 15:28:21 +010030830static void *
Pablo Galindoa77aac42021-04-23 14:27:05 +010030831_tmp_173_rule(Parser *p)
Pablo Galindo56c95df2021-04-21 15:28:21 +010030832{
30833 D(p->level++);
30834 if (p->error_indicator) {
30835 D(p->level--);
30836 return NULL;
30837 }
30838 void * _res = NULL;
30839 int _mark = p->mark;
30840 { // '(' arguments? ')'
30841 if (p->error_indicator) {
30842 D(p->level--);
30843 return NULL;
30844 }
Pablo Galindoa77aac42021-04-23 14:27:05 +010030845 D(fprintf(stderr, "%*c> _tmp_173[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'"));
Pablo Galindo56c95df2021-04-21 15:28:21 +010030846 Token * _literal;
30847 Token * _literal_1;
30848 void *_opt_var;
30849 UNUSED(_opt_var); // Silence compiler warnings
30850 if (
30851 (_literal = _PyPegen_expect_token(p, 7)) // token='('
30852 &&
30853 (_opt_var = arguments_rule(p), 1) // arguments?
30854 &&
30855 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
30856 )
30857 {
Pablo Galindoa77aac42021-04-23 14:27:05 +010030858 D(fprintf(stderr, "%*c+ _tmp_173[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'"));
Pablo Galindo56c95df2021-04-21 15:28:21 +010030859 _res = _PyPegen_dummy_name(p, _literal, _opt_var, _literal_1);
30860 goto done;
30861 }
30862 p->mark = _mark;
Pablo Galindoa77aac42021-04-23 14:27:05 +010030863 D(fprintf(stderr, "%*c%s _tmp_173[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo56c95df2021-04-21 15:28:21 +010030864 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' arguments? ')'"));
30865 }
30866 _res = NULL;
30867 done:
30868 D(p->level--);
30869 return _res;
30870}
30871
Pablo Galindoa77aac42021-04-23 14:27:05 +010030872// _loop0_175: ',' double_starred_kvpair
Pablo Galindo56c95df2021-04-21 15:28:21 +010030873static asdl_seq *
Pablo Galindoa77aac42021-04-23 14:27:05 +010030874_loop0_175_rule(Parser *p)
Pablo Galindo56c95df2021-04-21 15:28:21 +010030875{
30876 D(p->level++);
30877 if (p->error_indicator) {
30878 D(p->level--);
30879 return NULL;
30880 }
30881 void *_res = NULL;
30882 int _mark = p->mark;
30883 int _start_mark = p->mark;
30884 void **_children = PyMem_Malloc(sizeof(void *));
30885 if (!_children) {
30886 p->error_indicator = 1;
30887 PyErr_NoMemory();
30888 D(p->level--);
30889 return NULL;
30890 }
30891 Py_ssize_t _children_capacity = 1;
30892 Py_ssize_t _n = 0;
Pablo Galindoda743502021-04-15 14:06:39 +010030893 { // ',' double_starred_kvpair
30894 if (p->error_indicator) {
30895 D(p->level--);
30896 return NULL;
30897 }
Pablo Galindoa77aac42021-04-23 14:27:05 +010030898 D(fprintf(stderr, "%*c> _loop0_175[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' double_starred_kvpair"));
Pablo Galindoda743502021-04-15 14:06:39 +010030899 Token * _literal;
30900 KeyValuePair* elem;
30901 while (
30902 (_literal = _PyPegen_expect_token(p, 12)) // token=','
30903 &&
30904 (elem = double_starred_kvpair_rule(p)) // double_starred_kvpair
30905 )
30906 {
30907 _res = elem;
30908 if (_res == NULL && PyErr_Occurred()) {
30909 p->error_indicator = 1;
30910 PyMem_Free(_children);
30911 D(p->level--);
30912 return NULL;
30913 }
30914 if (_n == _children_capacity) {
30915 _children_capacity *= 2;
30916 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
30917 if (!_new_children) {
30918 p->error_indicator = 1;
30919 PyErr_NoMemory();
30920 D(p->level--);
30921 return NULL;
30922 }
30923 _children = _new_children;
30924 }
30925 _children[_n++] = _res;
30926 _mark = p->mark;
30927 }
30928 p->mark = _mark;
Pablo Galindoa77aac42021-04-23 14:27:05 +010030929 D(fprintf(stderr, "%*c%s _loop0_175[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindoda743502021-04-15 14:06:39 +010030930 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' double_starred_kvpair"));
30931 }
30932 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
30933 if (!_seq) {
30934 PyMem_Free(_children);
30935 p->error_indicator = 1;
30936 PyErr_NoMemory();
30937 D(p->level--);
30938 return NULL;
30939 }
30940 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
30941 PyMem_Free(_children);
Pablo Galindoa77aac42021-04-23 14:27:05 +010030942 _PyPegen_insert_memo(p, _start_mark, _loop0_175_type, _seq);
Pablo Galindoda743502021-04-15 14:06:39 +010030943 D(p->level--);
30944 return _seq;
30945}
30946
Pablo Galindoa77aac42021-04-23 14:27:05 +010030947// _gather_174: double_starred_kvpair _loop0_175
Pablo Galindoda743502021-04-15 14:06:39 +010030948static asdl_seq *
Pablo Galindoa77aac42021-04-23 14:27:05 +010030949_gather_174_rule(Parser *p)
Pablo Galindoda743502021-04-15 14:06:39 +010030950{
30951 D(p->level++);
30952 if (p->error_indicator) {
30953 D(p->level--);
30954 return NULL;
30955 }
30956 asdl_seq * _res = NULL;
30957 int _mark = p->mark;
Pablo Galindoa77aac42021-04-23 14:27:05 +010030958 { // double_starred_kvpair _loop0_175
Pablo Galindoda743502021-04-15 14:06:39 +010030959 if (p->error_indicator) {
30960 D(p->level--);
30961 return NULL;
30962 }
Pablo Galindoa77aac42021-04-23 14:27:05 +010030963 D(fprintf(stderr, "%*c> _gather_174[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "double_starred_kvpair _loop0_175"));
Pablo Galindoda743502021-04-15 14:06:39 +010030964 KeyValuePair* elem;
30965 asdl_seq * seq;
30966 if (
30967 (elem = double_starred_kvpair_rule(p)) // double_starred_kvpair
30968 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010030969 (seq = _loop0_175_rule(p)) // _loop0_175
Pablo Galindoda743502021-04-15 14:06:39 +010030970 )
30971 {
Pablo Galindoa77aac42021-04-23 14:27:05 +010030972 D(fprintf(stderr, "%*c+ _gather_174[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "double_starred_kvpair _loop0_175"));
Pablo Galindoda743502021-04-15 14:06:39 +010030973 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
30974 goto done;
30975 }
30976 p->mark = _mark;
Pablo Galindoa77aac42021-04-23 14:27:05 +010030977 D(fprintf(stderr, "%*c%s _gather_174[%d-%d]: %s failed!\n", p->level, ' ',
30978 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "double_starred_kvpair _loop0_175"));
Pablo Galindoda743502021-04-15 14:06:39 +010030979 }
30980 _res = NULL;
30981 done:
30982 D(p->level--);
30983 return _res;
30984}
30985
Pablo Galindoa77aac42021-04-23 14:27:05 +010030986// _tmp_176: '}' | ','
Pablo Galindo206cbda2021-02-07 18:42:21 +000030987static void *
Pablo Galindoa77aac42021-04-23 14:27:05 +010030988_tmp_176_rule(Parser *p)
Pablo Galindoda743502021-04-15 14:06:39 +010030989{
30990 D(p->level++);
30991 if (p->error_indicator) {
30992 D(p->level--);
30993 return NULL;
30994 }
30995 void * _res = NULL;
30996 int _mark = p->mark;
30997 { // '}'
30998 if (p->error_indicator) {
30999 D(p->level--);
31000 return NULL;
31001 }
Pablo Galindoa77aac42021-04-23 14:27:05 +010031002 D(fprintf(stderr, "%*c> _tmp_176[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'}'"));
Pablo Galindoda743502021-04-15 14:06:39 +010031003 Token * _literal;
31004 if (
31005 (_literal = _PyPegen_expect_token(p, 26)) // token='}'
31006 )
31007 {
Pablo Galindoa77aac42021-04-23 14:27:05 +010031008 D(fprintf(stderr, "%*c+ _tmp_176[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'}'"));
Pablo Galindoda743502021-04-15 14:06:39 +010031009 _res = _literal;
31010 goto done;
31011 }
31012 p->mark = _mark;
Pablo Galindoa77aac42021-04-23 14:27:05 +010031013 D(fprintf(stderr, "%*c%s _tmp_176[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindoda743502021-04-15 14:06:39 +010031014 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'}'"));
31015 }
31016 { // ','
31017 if (p->error_indicator) {
31018 D(p->level--);
31019 return NULL;
31020 }
Pablo Galindoa77aac42021-04-23 14:27:05 +010031021 D(fprintf(stderr, "%*c> _tmp_176[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','"));
Pablo Galindoda743502021-04-15 14:06:39 +010031022 Token * _literal;
31023 if (
31024 (_literal = _PyPegen_expect_token(p, 12)) // token=','
31025 )
31026 {
Pablo Galindoa77aac42021-04-23 14:27:05 +010031027 D(fprintf(stderr, "%*c+ _tmp_176[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','"));
Pablo Galindoda743502021-04-15 14:06:39 +010031028 _res = _literal;
31029 goto done;
31030 }
31031 p->mark = _mark;
Pablo Galindoa77aac42021-04-23 14:27:05 +010031032 D(fprintf(stderr, "%*c%s _tmp_176[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindoda743502021-04-15 14:06:39 +010031033 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','"));
31034 }
31035 _res = NULL;
31036 done:
31037 D(p->level--);
31038 return _res;
31039}
31040
Pablo Galindoa77aac42021-04-23 14:27:05 +010031041// _tmp_177: star_targets '='
Pablo Galindoda743502021-04-15 14:06:39 +010031042static void *
Pablo Galindoa77aac42021-04-23 14:27:05 +010031043_tmp_177_rule(Parser *p)
Pablo Galindo206cbda2021-02-07 18:42:21 +000031044{
31045 D(p->level++);
31046 if (p->error_indicator) {
31047 D(p->level--);
31048 return NULL;
31049 }
31050 void * _res = NULL;
31051 int _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031052 { // star_targets '='
31053 if (p->error_indicator) {
31054 D(p->level--);
31055 return NULL;
31056 }
Pablo Galindoa77aac42021-04-23 14:27:05 +010031057 D(fprintf(stderr, "%*c> _tmp_177[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031058 Token * _literal;
31059 expr_ty z;
31060 if (
31061 (z = star_targets_rule(p)) // star_targets
31062 &&
31063 (_literal = _PyPegen_expect_token(p, 22)) // token='='
31064 )
31065 {
Pablo Galindoa77aac42021-04-23 14:27:05 +010031066 D(fprintf(stderr, "%*c+ _tmp_177[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031067 _res = z;
31068 if (_res == NULL && PyErr_Occurred()) {
31069 p->error_indicator = 1;
31070 D(p->level--);
31071 return NULL;
31072 }
31073 goto done;
31074 }
31075 p->mark = _mark;
Pablo Galindoa77aac42021-04-23 14:27:05 +010031076 D(fprintf(stderr, "%*c%s _tmp_177[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031077 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='"));
31078 }
31079 _res = NULL;
31080 done:
31081 D(p->level--);
31082 return _res;
31083}
31084
Pablo Galindo56c95df2021-04-21 15:28:21 +010031085// _tmp_178: '.' | '...'
Pablo Galindo206cbda2021-02-07 18:42:21 +000031086static void *
Pablo Galindo56c95df2021-04-21 15:28:21 +010031087_tmp_178_rule(Parser *p)
Pablo Galindo206cbda2021-02-07 18:42:21 +000031088{
31089 D(p->level++);
31090 if (p->error_indicator) {
31091 D(p->level--);
31092 return NULL;
31093 }
31094 void * _res = NULL;
31095 int _mark = p->mark;
Pablo Galindob2802482021-04-15 21:38:45 +010031096 { // '.'
31097 if (p->error_indicator) {
31098 D(p->level--);
31099 return NULL;
31100 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010031101 D(fprintf(stderr, "%*c> _tmp_178[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
Pablo Galindob2802482021-04-15 21:38:45 +010031102 Token * _literal;
31103 if (
31104 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
31105 )
31106 {
Pablo Galindo56c95df2021-04-21 15:28:21 +010031107 D(fprintf(stderr, "%*c+ _tmp_178[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
Pablo Galindob2802482021-04-15 21:38:45 +010031108 _res = _literal;
31109 goto done;
31110 }
31111 p->mark = _mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +010031112 D(fprintf(stderr, "%*c%s _tmp_178[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob2802482021-04-15 21:38:45 +010031113 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
31114 }
31115 { // '...'
31116 if (p->error_indicator) {
31117 D(p->level--);
31118 return NULL;
31119 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010031120 D(fprintf(stderr, "%*c> _tmp_178[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'"));
Pablo Galindob2802482021-04-15 21:38:45 +010031121 Token * _literal;
31122 if (
31123 (_literal = _PyPegen_expect_token(p, 52)) // token='...'
31124 )
31125 {
Pablo Galindo56c95df2021-04-21 15:28:21 +010031126 D(fprintf(stderr, "%*c+ _tmp_178[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'"));
Pablo Galindob2802482021-04-15 21:38:45 +010031127 _res = _literal;
31128 goto done;
31129 }
31130 p->mark = _mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +010031131 D(fprintf(stderr, "%*c%s _tmp_178[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob2802482021-04-15 21:38:45 +010031132 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'"));
31133 }
31134 _res = NULL;
31135 done:
31136 D(p->level--);
31137 return _res;
31138}
31139
Pablo Galindoa77aac42021-04-23 14:27:05 +010031140// _tmp_179: '.' | '...'
Pablo Galindob2802482021-04-15 21:38:45 +010031141static void *
Pablo Galindo56c95df2021-04-21 15:28:21 +010031142_tmp_179_rule(Parser *p)
Pablo Galindob2802482021-04-15 21:38:45 +010031143{
31144 D(p->level++);
31145 if (p->error_indicator) {
31146 D(p->level--);
31147 return NULL;
31148 }
31149 void * _res = NULL;
31150 int _mark = p->mark;
Pablo Galindoa77aac42021-04-23 14:27:05 +010031151 { // '.'
31152 if (p->error_indicator) {
31153 D(p->level--);
31154 return NULL;
31155 }
31156 D(fprintf(stderr, "%*c> _tmp_179[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
31157 Token * _literal;
31158 if (
31159 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
31160 )
31161 {
31162 D(fprintf(stderr, "%*c+ _tmp_179[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
31163 _res = _literal;
31164 goto done;
31165 }
31166 p->mark = _mark;
31167 D(fprintf(stderr, "%*c%s _tmp_179[%d-%d]: %s failed!\n", p->level, ' ',
31168 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
31169 }
31170 { // '...'
31171 if (p->error_indicator) {
31172 D(p->level--);
31173 return NULL;
31174 }
31175 D(fprintf(stderr, "%*c> _tmp_179[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'"));
31176 Token * _literal;
31177 if (
31178 (_literal = _PyPegen_expect_token(p, 52)) // token='...'
31179 )
31180 {
31181 D(fprintf(stderr, "%*c+ _tmp_179[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'"));
31182 _res = _literal;
31183 goto done;
31184 }
31185 p->mark = _mark;
31186 D(fprintf(stderr, "%*c%s _tmp_179[%d-%d]: %s failed!\n", p->level, ' ',
31187 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'"));
31188 }
31189 _res = NULL;
31190 done:
31191 D(p->level--);
31192 return _res;
31193}
31194
31195// _tmp_180: '@' named_expression NEWLINE
31196static void *
31197_tmp_180_rule(Parser *p)
31198{
31199 D(p->level++);
31200 if (p->error_indicator) {
31201 D(p->level--);
31202 return NULL;
31203 }
31204 void * _res = NULL;
31205 int _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031206 { // '@' named_expression NEWLINE
31207 if (p->error_indicator) {
31208 D(p->level--);
31209 return NULL;
31210 }
Pablo Galindoa77aac42021-04-23 14:27:05 +010031211 D(fprintf(stderr, "%*c> _tmp_180[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@' named_expression NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031212 Token * _literal;
31213 expr_ty f;
31214 Token * newline_var;
31215 if (
31216 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
31217 &&
31218 (f = named_expression_rule(p)) // named_expression
31219 &&
31220 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
31221 )
31222 {
Pablo Galindoa77aac42021-04-23 14:27:05 +010031223 D(fprintf(stderr, "%*c+ _tmp_180[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@' named_expression NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031224 _res = f;
31225 if (_res == NULL && PyErr_Occurred()) {
31226 p->error_indicator = 1;
31227 D(p->level--);
31228 return NULL;
31229 }
31230 goto done;
31231 }
31232 p->mark = _mark;
Pablo Galindoa77aac42021-04-23 14:27:05 +010031233 D(fprintf(stderr, "%*c%s _tmp_180[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031234 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@' named_expression NEWLINE"));
31235 }
31236 _res = NULL;
31237 done:
31238 D(p->level--);
31239 return _res;
31240}
31241
Pablo Galindoa77aac42021-04-23 14:27:05 +010031242// _tmp_181: ',' star_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031243static void *
Pablo Galindoa77aac42021-04-23 14:27:05 +010031244_tmp_181_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031245{
31246 D(p->level++);
31247 if (p->error_indicator) {
31248 D(p->level--);
31249 return NULL;
31250 }
31251 void * _res = NULL;
31252 int _mark = p->mark;
31253 { // ',' star_expression
31254 if (p->error_indicator) {
31255 D(p->level--);
31256 return NULL;
31257 }
Pablo Galindoa77aac42021-04-23 14:27:05 +010031258 D(fprintf(stderr, "%*c> _tmp_181[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031259 Token * _literal;
31260 expr_ty c;
31261 if (
31262 (_literal = _PyPegen_expect_token(p, 12)) // token=','
31263 &&
31264 (c = star_expression_rule(p)) // star_expression
31265 )
31266 {
Pablo Galindoa77aac42021-04-23 14:27:05 +010031267 D(fprintf(stderr, "%*c+ _tmp_181[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031268 _res = c;
31269 if (_res == NULL && PyErr_Occurred()) {
31270 p->error_indicator = 1;
31271 D(p->level--);
31272 return NULL;
31273 }
31274 goto done;
31275 }
31276 p->mark = _mark;
Pablo Galindoa77aac42021-04-23 14:27:05 +010031277 D(fprintf(stderr, "%*c%s _tmp_181[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031278 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_expression"));
31279 }
31280 _res = NULL;
31281 done:
31282 D(p->level--);
31283 return _res;
31284}
31285
Pablo Galindoa77aac42021-04-23 14:27:05 +010031286// _tmp_182: ',' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031287static void *
Pablo Galindoa77aac42021-04-23 14:27:05 +010031288_tmp_182_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031289{
31290 D(p->level++);
31291 if (p->error_indicator) {
31292 D(p->level--);
31293 return NULL;
31294 }
31295 void * _res = NULL;
31296 int _mark = p->mark;
31297 { // ',' expression
31298 if (p->error_indicator) {
31299 D(p->level--);
31300 return NULL;
31301 }
Pablo Galindoa77aac42021-04-23 14:27:05 +010031302 D(fprintf(stderr, "%*c> _tmp_182[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031303 Token * _literal;
31304 expr_ty c;
31305 if (
31306 (_literal = _PyPegen_expect_token(p, 12)) // token=','
31307 &&
31308 (c = expression_rule(p)) // expression
31309 )
31310 {
Pablo Galindoa77aac42021-04-23 14:27:05 +010031311 D(fprintf(stderr, "%*c+ _tmp_182[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031312 _res = c;
31313 if (_res == NULL && PyErr_Occurred()) {
31314 p->error_indicator = 1;
31315 D(p->level--);
31316 return NULL;
31317 }
31318 goto done;
31319 }
31320 p->mark = _mark;
Pablo Galindoa77aac42021-04-23 14:27:05 +010031321 D(fprintf(stderr, "%*c%s _tmp_182[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031322 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
31323 }
31324 _res = NULL;
31325 done:
31326 D(p->level--);
31327 return _res;
31328}
31329
Pablo Galindoa77aac42021-04-23 14:27:05 +010031330// _tmp_183: 'or' conjunction
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031331static void *
Pablo Galindoa77aac42021-04-23 14:27:05 +010031332_tmp_183_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031333{
31334 D(p->level++);
31335 if (p->error_indicator) {
31336 D(p->level--);
31337 return NULL;
31338 }
31339 void * _res = NULL;
31340 int _mark = p->mark;
31341 { // 'or' conjunction
31342 if (p->error_indicator) {
31343 D(p->level--);
31344 return NULL;
31345 }
Pablo Galindoa77aac42021-04-23 14:27:05 +010031346 D(fprintf(stderr, "%*c> _tmp_183[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'or' conjunction"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031347 Token * _keyword;
31348 expr_ty c;
31349 if (
31350 (_keyword = _PyPegen_expect_token(p, 531)) // token='or'
31351 &&
31352 (c = conjunction_rule(p)) // conjunction
31353 )
31354 {
Pablo Galindoa77aac42021-04-23 14:27:05 +010031355 D(fprintf(stderr, "%*c+ _tmp_183[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'or' conjunction"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031356 _res = c;
31357 if (_res == NULL && PyErr_Occurred()) {
31358 p->error_indicator = 1;
31359 D(p->level--);
31360 return NULL;
31361 }
31362 goto done;
31363 }
31364 p->mark = _mark;
Pablo Galindoa77aac42021-04-23 14:27:05 +010031365 D(fprintf(stderr, "%*c%s _tmp_183[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031366 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'or' conjunction"));
31367 }
31368 _res = NULL;
31369 done:
31370 D(p->level--);
31371 return _res;
31372}
31373
Pablo Galindoa77aac42021-04-23 14:27:05 +010031374// _tmp_184: 'and' inversion
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031375static void *
Pablo Galindoa77aac42021-04-23 14:27:05 +010031376_tmp_184_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031377{
31378 D(p->level++);
31379 if (p->error_indicator) {
31380 D(p->level--);
31381 return NULL;
31382 }
31383 void * _res = NULL;
31384 int _mark = p->mark;
31385 { // 'and' inversion
31386 if (p->error_indicator) {
31387 D(p->level--);
31388 return NULL;
31389 }
Pablo Galindoa77aac42021-04-23 14:27:05 +010031390 D(fprintf(stderr, "%*c> _tmp_184[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'and' inversion"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031391 Token * _keyword;
31392 expr_ty c;
31393 if (
31394 (_keyword = _PyPegen_expect_token(p, 532)) // token='and'
31395 &&
31396 (c = inversion_rule(p)) // inversion
31397 )
31398 {
Pablo Galindoa77aac42021-04-23 14:27:05 +010031399 D(fprintf(stderr, "%*c+ _tmp_184[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'and' inversion"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031400 _res = c;
31401 if (_res == NULL && PyErr_Occurred()) {
31402 p->error_indicator = 1;
31403 D(p->level--);
31404 return NULL;
31405 }
31406 goto done;
31407 }
31408 p->mark = _mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +010031409 D(fprintf(stderr, "%*c%s _tmp_184[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindoa77aac42021-04-23 14:27:05 +010031410 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'and' inversion"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000031411 }
31412 _res = NULL;
31413 done:
31414 D(p->level--);
31415 return _res;
31416}
31417
Pablo Galindo56c95df2021-04-21 15:28:21 +010031418// _tmp_185: 'if' disjunction
Pablo Galindo206cbda2021-02-07 18:42:21 +000031419static void *
Pablo Galindo56c95df2021-04-21 15:28:21 +010031420_tmp_185_rule(Parser *p)
Pablo Galindo206cbda2021-02-07 18:42:21 +000031421{
31422 D(p->level++);
31423 if (p->error_indicator) {
31424 D(p->level--);
31425 return NULL;
31426 }
31427 void * _res = NULL;
31428 int _mark = p->mark;
Pablo Galindob2802482021-04-15 21:38:45 +010031429 { // 'if' disjunction
31430 if (p->error_indicator) {
31431 D(p->level--);
31432 return NULL;
31433 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010031434 D(fprintf(stderr, "%*c> _tmp_185[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
Pablo Galindob2802482021-04-15 21:38:45 +010031435 Token * _keyword;
31436 expr_ty z;
31437 if (
31438 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
31439 &&
31440 (z = disjunction_rule(p)) // disjunction
31441 )
31442 {
Pablo Galindo56c95df2021-04-21 15:28:21 +010031443 D(fprintf(stderr, "%*c+ _tmp_185[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
Pablo Galindob2802482021-04-15 21:38:45 +010031444 _res = z;
31445 if (_res == NULL && PyErr_Occurred()) {
31446 p->error_indicator = 1;
31447 D(p->level--);
31448 return NULL;
31449 }
31450 goto done;
31451 }
31452 p->mark = _mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +010031453 D(fprintf(stderr, "%*c%s _tmp_185[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob2802482021-04-15 21:38:45 +010031454 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' disjunction"));
31455 }
31456 _res = NULL;
31457 done:
31458 D(p->level--);
31459 return _res;
31460}
31461
Pablo Galindoa77aac42021-04-23 14:27:05 +010031462// _tmp_186: 'if' disjunction
Pablo Galindob2802482021-04-15 21:38:45 +010031463static void *
Pablo Galindo56c95df2021-04-21 15:28:21 +010031464_tmp_186_rule(Parser *p)
Pablo Galindob2802482021-04-15 21:38:45 +010031465{
31466 D(p->level++);
31467 if (p->error_indicator) {
31468 D(p->level--);
31469 return NULL;
31470 }
31471 void * _res = NULL;
31472 int _mark = p->mark;
Pablo Galindoa77aac42021-04-23 14:27:05 +010031473 { // 'if' disjunction
31474 if (p->error_indicator) {
31475 D(p->level--);
31476 return NULL;
31477 }
31478 D(fprintf(stderr, "%*c> _tmp_186[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
31479 Token * _keyword;
31480 expr_ty z;
31481 if (
31482 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
31483 &&
31484 (z = disjunction_rule(p)) // disjunction
31485 )
31486 {
31487 D(fprintf(stderr, "%*c+ _tmp_186[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
31488 _res = z;
31489 if (_res == NULL && PyErr_Occurred()) {
31490 p->error_indicator = 1;
31491 D(p->level--);
31492 return NULL;
31493 }
31494 goto done;
31495 }
31496 p->mark = _mark;
31497 D(fprintf(stderr, "%*c%s _tmp_186[%d-%d]: %s failed!\n", p->level, ' ',
31498 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' disjunction"));
31499 }
31500 _res = NULL;
31501 done:
31502 D(p->level--);
31503 return _res;
31504}
31505
31506// _tmp_187: starred_expression | direct_named_expression !'='
31507static void *
31508_tmp_187_rule(Parser *p)
31509{
31510 D(p->level++);
31511 if (p->error_indicator) {
31512 D(p->level--);
31513 return NULL;
31514 }
31515 void * _res = NULL;
31516 int _mark = p->mark;
Pablo Galindo4a97b152020-09-02 17:44:19 +010031517 { // starred_expression
31518 if (p->error_indicator) {
31519 D(p->level--);
31520 return NULL;
31521 }
Pablo Galindoa77aac42021-04-23 14:27:05 +010031522 D(fprintf(stderr, "%*c> _tmp_187[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "starred_expression"));
Pablo Galindo4a97b152020-09-02 17:44:19 +010031523 expr_ty starred_expression_var;
31524 if (
31525 (starred_expression_var = starred_expression_rule(p)) // starred_expression
31526 )
31527 {
Pablo Galindoa77aac42021-04-23 14:27:05 +010031528 D(fprintf(stderr, "%*c+ _tmp_187[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "starred_expression"));
Pablo Galindo4a97b152020-09-02 17:44:19 +010031529 _res = starred_expression_var;
31530 goto done;
31531 }
31532 p->mark = _mark;
Pablo Galindoa77aac42021-04-23 14:27:05 +010031533 D(fprintf(stderr, "%*c%s _tmp_187[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo4a97b152020-09-02 17:44:19 +010031534 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "starred_expression"));
31535 }
Pablo Galindod9151cb2021-04-13 02:32:33 +010031536 { // direct_named_expression !'='
Pablo Galindo4a97b152020-09-02 17:44:19 +010031537 if (p->error_indicator) {
31538 D(p->level--);
31539 return NULL;
31540 }
Pablo Galindoa77aac42021-04-23 14:27:05 +010031541 D(fprintf(stderr, "%*c> _tmp_187[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "direct_named_expression !'='"));
Pablo Galindod9151cb2021-04-13 02:32:33 +010031542 expr_ty direct_named_expression_var;
Pablo Galindo4a97b152020-09-02 17:44:19 +010031543 if (
Pablo Galindod9151cb2021-04-13 02:32:33 +010031544 (direct_named_expression_var = direct_named_expression_rule(p)) // direct_named_expression
Pablo Galindo4a97b152020-09-02 17:44:19 +010031545 &&
31546 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 22) // token='='
31547 )
31548 {
Pablo Galindoa77aac42021-04-23 14:27:05 +010031549 D(fprintf(stderr, "%*c+ _tmp_187[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "direct_named_expression !'='"));
Pablo Galindod9151cb2021-04-13 02:32:33 +010031550 _res = direct_named_expression_var;
Pablo Galindo4a97b152020-09-02 17:44:19 +010031551 goto done;
31552 }
31553 p->mark = _mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +010031554 D(fprintf(stderr, "%*c%s _tmp_187[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindoa77aac42021-04-23 14:27:05 +010031555 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "direct_named_expression !'='"));
Pablo Galindoda743502021-04-15 14:06:39 +010031556 }
31557 _res = NULL;
31558 done:
31559 D(p->level--);
31560 return _res;
31561}
31562
Pablo Galindo56c95df2021-04-21 15:28:21 +010031563// _tmp_188: ',' star_target
Pablo Galindoda743502021-04-15 14:06:39 +010031564static void *
Pablo Galindo56c95df2021-04-21 15:28:21 +010031565_tmp_188_rule(Parser *p)
Pablo Galindoda743502021-04-15 14:06:39 +010031566{
31567 D(p->level++);
31568 if (p->error_indicator) {
31569 D(p->level--);
31570 return NULL;
31571 }
31572 void * _res = NULL;
31573 int _mark = p->mark;
Pablo Galindob2802482021-04-15 21:38:45 +010031574 { // ',' star_target
Pablo Galindob86ed8e2021-04-12 16:59:30 +010031575 if (p->error_indicator) {
31576 D(p->level--);
31577 return NULL;
31578 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010031579 D(fprintf(stderr, "%*c> _tmp_188[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010031580 Token * _literal;
Pablo Galindob2802482021-04-15 21:38:45 +010031581 expr_ty c;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010031582 if (
Pablo Galindob2802482021-04-15 21:38:45 +010031583 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindob86ed8e2021-04-12 16:59:30 +010031584 &&
Pablo Galindob2802482021-04-15 21:38:45 +010031585 (c = star_target_rule(p)) // star_target
Pablo Galindob86ed8e2021-04-12 16:59:30 +010031586 )
31587 {
Pablo Galindo56c95df2021-04-21 15:28:21 +010031588 D(fprintf(stderr, "%*c+ _tmp_188[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_target"));
Pablo Galindob2802482021-04-15 21:38:45 +010031589 _res = c;
31590 if (_res == NULL && PyErr_Occurred()) {
31591 p->error_indicator = 1;
31592 D(p->level--);
31593 return NULL;
31594 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010031595 goto done;
31596 }
31597 p->mark = _mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +010031598 D(fprintf(stderr, "%*c%s _tmp_188[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob2802482021-04-15 21:38:45 +010031599 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_target"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010031600 }
31601 _res = NULL;
31602 done:
31603 D(p->level--);
31604 return _res;
31605}
31606
Pablo Galindoa77aac42021-04-23 14:27:05 +010031607// _tmp_189: ',' star_target
Pablo Galindob86ed8e2021-04-12 16:59:30 +010031608static void *
Pablo Galindo56c95df2021-04-21 15:28:21 +010031609_tmp_189_rule(Parser *p)
Pablo Galindoda743502021-04-15 14:06:39 +010031610{
31611 D(p->level++);
31612 if (p->error_indicator) {
31613 D(p->level--);
31614 return NULL;
31615 }
31616 void * _res = NULL;
31617 int _mark = p->mark;
Pablo Galindoa77aac42021-04-23 14:27:05 +010031618 { // ',' star_target
Pablo Galindoda743502021-04-15 14:06:39 +010031619 if (p->error_indicator) {
31620 D(p->level--);
31621 return NULL;
31622 }
Pablo Galindoa77aac42021-04-23 14:27:05 +010031623 D(fprintf(stderr, "%*c> _tmp_189[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target"));
Pablo Galindoda743502021-04-15 14:06:39 +010031624 Token * _literal;
Pablo Galindoa77aac42021-04-23 14:27:05 +010031625 expr_ty c;
Pablo Galindoda743502021-04-15 14:06:39 +010031626 if (
Pablo Galindoa77aac42021-04-23 14:27:05 +010031627 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoda743502021-04-15 14:06:39 +010031628 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010031629 (c = star_target_rule(p)) // star_target
Pablo Galindoda743502021-04-15 14:06:39 +010031630 )
31631 {
Pablo Galindoa77aac42021-04-23 14:27:05 +010031632 D(fprintf(stderr, "%*c+ _tmp_189[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_target"));
31633 _res = c;
31634 if (_res == NULL && PyErr_Occurred()) {
31635 p->error_indicator = 1;
31636 D(p->level--);
31637 return NULL;
31638 }
Pablo Galindoda743502021-04-15 14:06:39 +010031639 goto done;
31640 }
31641 p->mark = _mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +010031642 D(fprintf(stderr, "%*c%s _tmp_189[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindoa77aac42021-04-23 14:27:05 +010031643 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_target"));
Pablo Galindoda743502021-04-15 14:06:39 +010031644 }
31645 _res = NULL;
31646 done:
31647 D(p->level--);
31648 return _res;
31649}
31650
Pablo Galindo56c95df2021-04-21 15:28:21 +010031651// _tmp_190: star_targets '='
Pablo Galindoda743502021-04-15 14:06:39 +010031652static void *
Pablo Galindo56c95df2021-04-21 15:28:21 +010031653_tmp_190_rule(Parser *p)
Pablo Galindo835f14f2021-01-31 22:52:56 +000031654{
31655 D(p->level++);
31656 if (p->error_indicator) {
31657 D(p->level--);
31658 return NULL;
31659 }
31660 void * _res = NULL;
31661 int _mark = p->mark;
Pablo Galindob2802482021-04-15 21:38:45 +010031662 { // star_targets '='
31663 if (p->error_indicator) {
31664 D(p->level--);
31665 return NULL;
31666 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010031667 D(fprintf(stderr, "%*c> _tmp_190[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
Pablo Galindob2802482021-04-15 21:38:45 +010031668 Token * _literal;
31669 expr_ty star_targets_var;
31670 if (
31671 (star_targets_var = star_targets_rule(p)) // star_targets
31672 &&
31673 (_literal = _PyPegen_expect_token(p, 22)) // token='='
31674 )
31675 {
Pablo Galindo56c95df2021-04-21 15:28:21 +010031676 D(fprintf(stderr, "%*c+ _tmp_190[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
Pablo Galindob2802482021-04-15 21:38:45 +010031677 _res = _PyPegen_dummy_name(p, star_targets_var, _literal);
31678 goto done;
31679 }
31680 p->mark = _mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +010031681 D(fprintf(stderr, "%*c%s _tmp_190[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob2802482021-04-15 21:38:45 +010031682 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='"));
31683 }
31684 _res = NULL;
31685 done:
31686 D(p->level--);
31687 return _res;
31688}
31689
Pablo Galindoa77aac42021-04-23 14:27:05 +010031690// _tmp_191: star_targets '='
Pablo Galindob2802482021-04-15 21:38:45 +010031691static void *
Pablo Galindo56c95df2021-04-21 15:28:21 +010031692_tmp_191_rule(Parser *p)
Pablo Galindob2802482021-04-15 21:38:45 +010031693{
31694 D(p->level++);
31695 if (p->error_indicator) {
31696 D(p->level--);
31697 return NULL;
31698 }
31699 void * _res = NULL;
31700 int _mark = p->mark;
Pablo Galindoa77aac42021-04-23 14:27:05 +010031701 { // star_targets '='
31702 if (p->error_indicator) {
31703 D(p->level--);
31704 return NULL;
31705 }
31706 D(fprintf(stderr, "%*c> _tmp_191[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
31707 Token * _literal;
31708 expr_ty star_targets_var;
31709 if (
31710 (star_targets_var = star_targets_rule(p)) // star_targets
31711 &&
31712 (_literal = _PyPegen_expect_token(p, 22)) // token='='
31713 )
31714 {
31715 D(fprintf(stderr, "%*c+ _tmp_191[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
31716 _res = _PyPegen_dummy_name(p, star_targets_var, _literal);
31717 goto done;
31718 }
31719 p->mark = _mark;
31720 D(fprintf(stderr, "%*c%s _tmp_191[%d-%d]: %s failed!\n", p->level, ' ',
31721 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='"));
31722 }
31723 _res = NULL;
31724 done:
31725 D(p->level--);
31726 return _res;
31727}
31728
31729// _tmp_192: ')' | '**'
31730static void *
31731_tmp_192_rule(Parser *p)
31732{
31733 D(p->level++);
31734 if (p->error_indicator) {
31735 D(p->level--);
31736 return NULL;
31737 }
31738 void * _res = NULL;
31739 int _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031740 { // ')'
31741 if (p->error_indicator) {
31742 D(p->level--);
31743 return NULL;
31744 }
Pablo Galindoa77aac42021-04-23 14:27:05 +010031745 D(fprintf(stderr, "%*c> _tmp_192[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031746 Token * _literal;
31747 if (
31748 (_literal = _PyPegen_expect_token(p, 8)) // token=')'
31749 )
31750 {
Pablo Galindoa77aac42021-04-23 14:27:05 +010031751 D(fprintf(stderr, "%*c+ _tmp_192[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
Pablo Galindob2802482021-04-15 21:38:45 +010031752 _res = _literal;
31753 goto done;
31754 }
31755 p->mark = _mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +010031756 D(fprintf(stderr, "%*c%s _tmp_192[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindoa77aac42021-04-23 14:27:05 +010031757 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
Pablo Galindob2802482021-04-15 21:38:45 +010031758 }
31759 { // '**'
31760 if (p->error_indicator) {
31761 D(p->level--);
31762 return NULL;
31763 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010031764 D(fprintf(stderr, "%*c> _tmp_192[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**'"));
Pablo Galindob2802482021-04-15 21:38:45 +010031765 Token * _literal;
31766 if (
31767 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
31768 )
31769 {
Pablo Galindo56c95df2021-04-21 15:28:21 +010031770 D(fprintf(stderr, "%*c+ _tmp_192[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**'"));
Pablo Galindob2802482021-04-15 21:38:45 +010031771 _res = _literal;
31772 goto done;
31773 }
31774 p->mark = _mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +010031775 D(fprintf(stderr, "%*c%s _tmp_192[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob2802482021-04-15 21:38:45 +010031776 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**'"));
31777 }
31778 _res = NULL;
31779 done:
31780 D(p->level--);
31781 return _res;
31782}
31783
Pablo Galindoa77aac42021-04-23 14:27:05 +010031784// _tmp_193: ':' | '**'
Pablo Galindob2802482021-04-15 21:38:45 +010031785static void *
Pablo Galindo56c95df2021-04-21 15:28:21 +010031786_tmp_193_rule(Parser *p)
Pablo Galindob2802482021-04-15 21:38:45 +010031787{
31788 D(p->level++);
31789 if (p->error_indicator) {
31790 D(p->level--);
31791 return NULL;
31792 }
31793 void * _res = NULL;
31794 int _mark = p->mark;
Pablo Galindoa77aac42021-04-23 14:27:05 +010031795 { // ':'
Pablo Galindo58fb1562021-02-02 19:54:22 +000031796 if (p->error_indicator) {
31797 D(p->level--);
31798 return NULL;
31799 }
Pablo Galindoa77aac42021-04-23 14:27:05 +010031800 D(fprintf(stderr, "%*c> _tmp_193[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
31801 Token * _literal;
Pablo Galindo58fb1562021-02-02 19:54:22 +000031802 if (
Pablo Galindoa77aac42021-04-23 14:27:05 +010031803 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindo58fb1562021-02-02 19:54:22 +000031804 )
31805 {
Pablo Galindoa77aac42021-04-23 14:27:05 +010031806 D(fprintf(stderr, "%*c+ _tmp_193[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
31807 _res = _literal;
Pablo Galindo58fb1562021-02-02 19:54:22 +000031808 goto done;
31809 }
31810 p->mark = _mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +010031811 D(fprintf(stderr, "%*c%s _tmp_193[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindoa77aac42021-04-23 14:27:05 +010031812 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
31813 }
31814 { // '**'
31815 if (p->error_indicator) {
31816 D(p->level--);
31817 return NULL;
31818 }
31819 D(fprintf(stderr, "%*c> _tmp_193[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**'"));
31820 Token * _literal;
31821 if (
31822 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
31823 )
31824 {
31825 D(fprintf(stderr, "%*c+ _tmp_193[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**'"));
31826 _res = _literal;
31827 goto done;
31828 }
31829 p->mark = _mark;
31830 D(fprintf(stderr, "%*c%s _tmp_193[%d-%d]: %s failed!\n", p->level, ' ',
31831 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**'"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000031832 }
31833 _res = NULL;
31834 done:
31835 D(p->level--);
31836 return _res;
31837}
31838
Pablo Galindoa77aac42021-04-23 14:27:05 +010031839// _tmp_194: expression ['as' star_target]
Pablo Galindo58fb1562021-02-02 19:54:22 +000031840static void *
Pablo Galindo56c95df2021-04-21 15:28:21 +010031841_tmp_194_rule(Parser *p)
Pablo Galindo58fb1562021-02-02 19:54:22 +000031842{
31843 D(p->level++);
31844 if (p->error_indicator) {
31845 D(p->level--);
31846 return NULL;
31847 }
31848 void * _res = NULL;
31849 int _mark = p->mark;
Pablo Galindoa77aac42021-04-23 14:27:05 +010031850 { // expression ['as' star_target]
31851 if (p->error_indicator) {
31852 D(p->level--);
31853 return NULL;
31854 }
31855 D(fprintf(stderr, "%*c> _tmp_194[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]"));
31856 void *_opt_var;
31857 UNUSED(_opt_var); // Silence compiler warnings
31858 expr_ty expression_var;
31859 if (
31860 (expression_var = expression_rule(p)) // expression
31861 &&
31862 (_opt_var = _tmp_198_rule(p), 1) // ['as' star_target]
31863 )
31864 {
31865 D(fprintf(stderr, "%*c+ _tmp_194[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]"));
31866 _res = _PyPegen_dummy_name(p, expression_var, _opt_var);
31867 goto done;
31868 }
31869 p->mark = _mark;
31870 D(fprintf(stderr, "%*c%s _tmp_194[%d-%d]: %s failed!\n", p->level, ' ',
31871 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ['as' star_target]"));
31872 }
31873 _res = NULL;
31874 done:
31875 D(p->level--);
31876 return _res;
31877}
31878
31879// _tmp_195: expressions ['as' star_target]
31880static void *
31881_tmp_195_rule(Parser *p)
31882{
31883 D(p->level++);
31884 if (p->error_indicator) {
31885 D(p->level--);
31886 return NULL;
31887 }
31888 void * _res = NULL;
31889 int _mark = p->mark;
Pablo Galindo58fb1562021-02-02 19:54:22 +000031890 { // expressions ['as' star_target]
31891 if (p->error_indicator) {
31892 D(p->level--);
31893 return NULL;
31894 }
Pablo Galindoa77aac42021-04-23 14:27:05 +010031895 D(fprintf(stderr, "%*c> _tmp_195[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000031896 void *_opt_var;
31897 UNUSED(_opt_var); // Silence compiler warnings
31898 expr_ty expressions_var;
31899 if (
31900 (expressions_var = expressions_rule(p)) // expressions
31901 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010031902 (_opt_var = _tmp_199_rule(p), 1) // ['as' star_target]
Pablo Galindo58fb1562021-02-02 19:54:22 +000031903 )
31904 {
Pablo Galindoa77aac42021-04-23 14:27:05 +010031905 D(fprintf(stderr, "%*c+ _tmp_195[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000031906 _res = _PyPegen_dummy_name(p, expressions_var, _opt_var);
31907 goto done;
31908 }
31909 p->mark = _mark;
Pablo Galindoa77aac42021-04-23 14:27:05 +010031910 D(fprintf(stderr, "%*c%s _tmp_195[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob2802482021-04-15 21:38:45 +010031911 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expressions ['as' star_target]"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000031912 }
31913 _res = NULL;
31914 done:
31915 D(p->level--);
31916 return _res;
31917}
31918
Pablo Galindoa77aac42021-04-23 14:27:05 +010031919// _tmp_196: expression ['as' star_target]
Pablo Galindo58fb1562021-02-02 19:54:22 +000031920static void *
Pablo Galindoa77aac42021-04-23 14:27:05 +010031921_tmp_196_rule(Parser *p)
Pablo Galindo56c95df2021-04-21 15:28:21 +010031922{
31923 D(p->level++);
31924 if (p->error_indicator) {
31925 D(p->level--);
31926 return NULL;
31927 }
31928 void * _res = NULL;
31929 int _mark = p->mark;
31930 { // expression ['as' star_target]
31931 if (p->error_indicator) {
31932 D(p->level--);
31933 return NULL;
31934 }
Pablo Galindoa77aac42021-04-23 14:27:05 +010031935 D(fprintf(stderr, "%*c> _tmp_196[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]"));
Pablo Galindo56c95df2021-04-21 15:28:21 +010031936 void *_opt_var;
31937 UNUSED(_opt_var); // Silence compiler warnings
31938 expr_ty expression_var;
31939 if (
31940 (expression_var = expression_rule(p)) // expression
31941 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010031942 (_opt_var = _tmp_200_rule(p), 1) // ['as' star_target]
Pablo Galindo56c95df2021-04-21 15:28:21 +010031943 )
31944 {
Pablo Galindoa77aac42021-04-23 14:27:05 +010031945 D(fprintf(stderr, "%*c+ _tmp_196[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]"));
Pablo Galindo56c95df2021-04-21 15:28:21 +010031946 _res = _PyPegen_dummy_name(p, expression_var, _opt_var);
31947 goto done;
31948 }
31949 p->mark = _mark;
Pablo Galindoa77aac42021-04-23 14:27:05 +010031950 D(fprintf(stderr, "%*c%s _tmp_196[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo56c95df2021-04-21 15:28:21 +010031951 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ['as' star_target]"));
31952 }
31953 _res = NULL;
31954 done:
31955 D(p->level--);
31956 return _res;
31957}
31958
Pablo Galindoa77aac42021-04-23 14:27:05 +010031959// _tmp_197: expressions ['as' star_target]
Pablo Galindo56c95df2021-04-21 15:28:21 +010031960static void *
Pablo Galindoa77aac42021-04-23 14:27:05 +010031961_tmp_197_rule(Parser *p)
Pablo Galindo56c95df2021-04-21 15:28:21 +010031962{
31963 D(p->level++);
31964 if (p->error_indicator) {
31965 D(p->level--);
31966 return NULL;
31967 }
31968 void * _res = NULL;
31969 int _mark = p->mark;
31970 { // expressions ['as' star_target]
31971 if (p->error_indicator) {
31972 D(p->level--);
31973 return NULL;
31974 }
Pablo Galindoa77aac42021-04-23 14:27:05 +010031975 D(fprintf(stderr, "%*c> _tmp_197[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]"));
Pablo Galindo56c95df2021-04-21 15:28:21 +010031976 void *_opt_var;
31977 UNUSED(_opt_var); // Silence compiler warnings
31978 expr_ty expressions_var;
31979 if (
31980 (expressions_var = expressions_rule(p)) // expressions
31981 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010031982 (_opt_var = _tmp_201_rule(p), 1) // ['as' star_target]
Pablo Galindo56c95df2021-04-21 15:28:21 +010031983 )
31984 {
Pablo Galindoa77aac42021-04-23 14:27:05 +010031985 D(fprintf(stderr, "%*c+ _tmp_197[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]"));
Pablo Galindo56c95df2021-04-21 15:28:21 +010031986 _res = _PyPegen_dummy_name(p, expressions_var, _opt_var);
31987 goto done;
31988 }
31989 p->mark = _mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +010031990 D(fprintf(stderr, "%*c%s _tmp_197[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindoa77aac42021-04-23 14:27:05 +010031991 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expressions ['as' star_target]"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000031992 }
31993 _res = NULL;
31994 done:
31995 D(p->level--);
31996 return _res;
31997}
31998
Pablo Galindo56c95df2021-04-21 15:28:21 +010031999// _tmp_198: 'as' star_target
Pablo Galindob2802482021-04-15 21:38:45 +010032000static void *
Pablo Galindo56c95df2021-04-21 15:28:21 +010032001_tmp_198_rule(Parser *p)
Pablo Galindob2802482021-04-15 21:38:45 +010032002{
32003 D(p->level++);
32004 if (p->error_indicator) {
32005 D(p->level--);
32006 return NULL;
32007 }
32008 void * _res = NULL;
32009 int _mark = p->mark;
32010 { // 'as' star_target
32011 if (p->error_indicator) {
32012 D(p->level--);
32013 return NULL;
32014 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010032015 D(fprintf(stderr, "%*c> _tmp_198[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
Pablo Galindob2802482021-04-15 21:38:45 +010032016 Token * _keyword;
32017 expr_ty star_target_var;
32018 if (
32019 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
32020 &&
32021 (star_target_var = star_target_rule(p)) // star_target
32022 )
32023 {
Pablo Galindo56c95df2021-04-21 15:28:21 +010032024 D(fprintf(stderr, "%*c+ _tmp_198[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
Pablo Galindob2802482021-04-15 21:38:45 +010032025 _res = _PyPegen_dummy_name(p, _keyword, star_target_var);
32026 goto done;
32027 }
32028 p->mark = _mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +010032029 D(fprintf(stderr, "%*c%s _tmp_198[%d-%d]: %s failed!\n", p->level, ' ',
32030 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' star_target"));
32031 }
32032 _res = NULL;
32033 done:
32034 D(p->level--);
32035 return _res;
32036}
32037
32038// _tmp_199: 'as' star_target
32039static void *
32040_tmp_199_rule(Parser *p)
32041{
32042 D(p->level++);
32043 if (p->error_indicator) {
32044 D(p->level--);
32045 return NULL;
32046 }
32047 void * _res = NULL;
32048 int _mark = p->mark;
32049 { // 'as' star_target
32050 if (p->error_indicator) {
32051 D(p->level--);
32052 return NULL;
32053 }
32054 D(fprintf(stderr, "%*c> _tmp_199[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
32055 Token * _keyword;
32056 expr_ty star_target_var;
32057 if (
32058 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
32059 &&
32060 (star_target_var = star_target_rule(p)) // star_target
32061 )
32062 {
32063 D(fprintf(stderr, "%*c+ _tmp_199[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
32064 _res = _PyPegen_dummy_name(p, _keyword, star_target_var);
32065 goto done;
32066 }
32067 p->mark = _mark;
32068 D(fprintf(stderr, "%*c%s _tmp_199[%d-%d]: %s failed!\n", p->level, ' ',
32069 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' star_target"));
32070 }
32071 _res = NULL;
32072 done:
32073 D(p->level--);
32074 return _res;
32075}
32076
32077// _tmp_200: 'as' star_target
32078static void *
32079_tmp_200_rule(Parser *p)
32080{
32081 D(p->level++);
32082 if (p->error_indicator) {
32083 D(p->level--);
32084 return NULL;
32085 }
32086 void * _res = NULL;
32087 int _mark = p->mark;
32088 { // 'as' star_target
32089 if (p->error_indicator) {
32090 D(p->level--);
32091 return NULL;
32092 }
32093 D(fprintf(stderr, "%*c> _tmp_200[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
32094 Token * _keyword;
32095 expr_ty star_target_var;
32096 if (
32097 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
32098 &&
32099 (star_target_var = star_target_rule(p)) // star_target
32100 )
32101 {
32102 D(fprintf(stderr, "%*c+ _tmp_200[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
32103 _res = _PyPegen_dummy_name(p, _keyword, star_target_var);
32104 goto done;
32105 }
32106 p->mark = _mark;
32107 D(fprintf(stderr, "%*c%s _tmp_200[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob2802482021-04-15 21:38:45 +010032108 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' star_target"));
32109 }
32110 _res = NULL;
32111 done:
32112 D(p->level--);
32113 return _res;
32114}
32115
Pablo Galindoa77aac42021-04-23 14:27:05 +010032116// _tmp_201: 'as' star_target
32117static void *
32118_tmp_201_rule(Parser *p)
32119{
32120 D(p->level++);
32121 if (p->error_indicator) {
32122 D(p->level--);
32123 return NULL;
32124 }
32125 void * _res = NULL;
32126 int _mark = p->mark;
32127 { // 'as' star_target
32128 if (p->error_indicator) {
32129 D(p->level--);
32130 return NULL;
32131 }
32132 D(fprintf(stderr, "%*c> _tmp_201[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
32133 Token * _keyword;
32134 expr_ty star_target_var;
32135 if (
32136 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
32137 &&
32138 (star_target_var = star_target_rule(p)) // star_target
32139 )
32140 {
32141 D(fprintf(stderr, "%*c+ _tmp_201[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
32142 _res = _PyPegen_dummy_name(p, _keyword, star_target_var);
32143 goto done;
32144 }
32145 p->mark = _mark;
32146 D(fprintf(stderr, "%*c%s _tmp_201[%d-%d]: %s failed!\n", p->level, ' ',
32147 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' star_target"));
32148 }
32149 _res = NULL;
32150 done:
32151 D(p->level--);
32152 return _res;
32153}
32154
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032155void *
32156_PyPegen_parse(Parser *p)
32157{
32158 // Initialize keywords
32159 p->keywords = reserved_keywords;
32160 p->n_keyword_lists = n_keyword_lists;
Pablo Galindob2802482021-04-15 21:38:45 +010032161 p->soft_keywords = soft_keywords;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032162
32163 // Run parser
32164 void *result = NULL;
32165 if (p->start_rule == Py_file_input) {
32166 result = file_rule(p);
32167 } else if (p->start_rule == Py_single_input) {
32168 result = interactive_rule(p);
32169 } else if (p->start_rule == Py_eval_input) {
32170 result = eval_rule(p);
32171 } else if (p->start_rule == Py_func_type_input) {
32172 result = func_type_rule(p);
32173 } else if (p->start_rule == Py_fstring_input) {
32174 result = fstring_rule(p);
32175 }
32176
32177 return result;
32178}
32179
32180// The end